我正在开发 Cocoa 应用程序,它应该能够分析和突出以 Objective-C、SQL、JavaScript、Python 等语言编写的源代码。文本也应该是可编辑的(例如,通过使用 NSTextView)。
请告知在 Mac OS X 10.5 中实现此类功能的最佳方法是什么。
无需支持自动完成和其他额外功能。通过关键字、字符串、#includes 和数字进行简单格式化,但性能很酷。
此外,如果支持按语言进行配置,那就太好了。
谢谢!
我正在开发 Cocoa 应用程序,它应该能够分析和突出以 Objective-C、SQL、JavaScript、Python 等语言编写的源代码。文本也应该是可编辑的(例如,通过使用 NSTextView)。
请告知在 Mac OS X 10.5 中实现此类功能的最佳方法是什么。
无需支持自动完成和其他额外功能。通过关键字、字符串、#includes 和数字进行简单格式化,但性能很酷。
此外,如果支持按语言进行配置,那就太好了。
谢谢!
在准备一个需要类似东西的项目时,我发现了以下内容(但没有深入评估它们):
我会同意 Ahruman 的建议 - 特别是查看 Uli 的 UKSyntaxColoredTextDocument,因为这将为您指明需要学习哪些课程等的正确方向。
这是另一个很好的信息来源:
http://www.cocoadev.com/index.pl?ImplementSyntaxHighlighting
祝你好运 - 语法突出显示很难正确,但一路上很有趣!
我最近不得不为 Cocoa 寻找语法高亮解决方案,在 Stack Overflow 上搜索后,Google 和 GitHub 找不到任何现代、易于重用且仍在积极开发中的东西。
如今,似乎大多数语法荧光笔都是为网络编写的。幸运的是,将它们嵌入到 WebView 中以在任何 Cocoa 应用程序中使用实际上非常容易。与编辑器的通信可以通过 WebKit 的WebScriptObject 协议来完成。
这是流行的 JavaScript 文本编辑器CodeMirror for Cocoa 的示例包装器: https ://github.com/swisspol/CodeMirrorView
您可以使用 Python 编写的 Pygments 来生成源代码的 HTML 表示,然后可以在 Web 视图中呈现。
(请注意,如下面的评论中所反映的 - 这个答案是针对原始问题的,没有提到可编辑的文本。)
您可以考虑使用此处 [1] 中描述的(德语)的 flex。您可以在此处找到此方法的示例 [2]。
[1] http://www.osxentwicklerforum.de/thread.php?postid=14764 [2] http://objectiveous.github.com/davenport/