19

我正在开发 Cocoa 应用程序,它应该能够分析和突出以 Objective-C、SQL、JavaScript、Python 等语言编写的源代码。文本也应该是可编辑的(例如,通过使用 NSTextView)。

请告知在 Mac OS X 10.5 中实现此类功能的最佳方法是什么。

无需支持自动完成和其他额外功能。通过关键字、字符串、#includes 和数字进行简单格式化,但性能很酷。

此外,如果支持按语言进行配置,那就太好了。

谢谢!

4

5 回答 5

16

在准备一个需要类似东西的项目时,我发现了以下内容(但没有深入评估它们):

  • /Developer/Examples/OpenGL/Cocoa/GLSLEditorSample 实现语法高亮。
  • IDEKit,“一个提供程序员源代码编辑的开源框架,包括语法着色、弹出功能和分割帧”。这已经有一段时间没有更新了(它吹捧 10.2 和 10.3 的兼容性,并附带一个 Project Builder 项目——可以使用 Xcode 2.5 进行转换)。
  • UKSyntaxColoredTextDocument
于 2009-04-16T17:54:52.210 回答
6

我会同意 Ahruman 的建议 - 特别是查看 Uli 的 UKSyntaxColoredTextDocument,因为这将为您指明需要学习哪些课程等的正确方向。

这是另一个很好的信息来源:

http://www.cocoadev.com/index.pl?ImplementSyntaxHighlighting

祝你好运 - 语法突出显示很难正确,但一路上很有趣!

于 2009-04-16T23:08:48.417 回答
2

我最近不得不为 Cocoa 寻找语法高亮解决方案,在 Stack Overflow 上搜索后,Google 和 GitHub 找不到任何现代、易于重用且仍在积极开发中的东西。

如今,似乎大多数语法荧光笔都是为网络编写的。幸运的是,将它们嵌入到 WebView 中以在任何 Cocoa 应用程序中使用实际上非常容易。与编辑器的通信可以通过 WebKit 的WebScriptObject 协议来完成。

这是流行的 JavaScript 文本编辑器CodeMirror for Cocoa 的示例包装器: https ://github.com/swisspol/CodeMirrorView

于 2013-12-30T20:50:56.760 回答
1

您可以使用 Python 编写的 Pygments 来生成源代码的 HTML 表示,然后可以在 Web 视图中呈现。

(请注意,如下面的评论中所反映的 - 这个答案是针对原始问题的,没有提到可编辑的文本。)

于 2009-04-16T07:54:33.000 回答
1

您可以考虑使用此处 [1] 中描述的(德语)的 flex。您可以在此处找到此方法的示例 [2]。

[1] http://www.osxentwicklerforum.de/thread.php?postid=14764 [2] http://objectiveous.github.com/davenport/

于 2009-04-18T19:56:25.070 回答