2009-04-16 35 views
18

我正在研究Cocoa應用程序,它應該能夠分析和突出顯示用Objective-C,SQL,JavaScript,Python等語言編寫的源代碼。文本也應該是可編輯的(例如,使用NSTextView) 。在Cocoa中實現源代碼語法高亮的最佳方式是什麼?

請告知什麼是在Mac OS X 10.5中實現此功能的最佳方式。

沒有必要支持自動完成和其他額外功能。按關鍵字,字符串,#includes和數字進行簡單格式化,但具有很酷的性能即可。

另外,如果支持通過語言進行配置,那將會很棒。

謝謝!

+0

智能語法高亮可以很艱難 - 這就是爲什麼蘋果做的鐺前端到LLVM這麼多的工作的一部分。你可能想看看它。 – user57368 2009-04-16 03:26:12

回答

16

在編制項目,將需要類似的東西,我發現以下(但沒有深入評估它們):

  • /Developer/Examples/OpenGL/Cocoa/GLSLEditorSample實現語法高亮顯示。
  • IDEKit「這是一個提供程序員源代碼編輯功能的開源框架,包括語法着色,彈出窗口功能和分割框架。這一段時間還沒有更新(它可以兼容10.2和10.3,並且帶有Project Builder項目 - 可以使用Xcode 2.5進行轉換)。
  • UKSyntaxColoredTextDocument
+4

Gandreas殺死了這個回購站,但我從一箇舊的SVN回購站點(https://github.com/CodaFi/IDEKit)回收了一份工作副本(0.3,最近的)。我有Xcode 4.x支持和ARC。 – CodaFi 2012-09-30 06:27:21

1

您可以使用python編寫的Pygments來生成源代碼的HTML表示,然後可以在Web視圖中顯示該源代碼。

(注意,這反映在下面的評論 - 這答案是原來的問題,這並沒有提及可編輯文本)

+0

謝謝馬修。對不起,但我忘了包括一個更多的要求。源代碼應該是可編輯的(例如,放置在NSTextView中)。是否可以使用Pygments將突出顯示合併到NSTextView中以實現此目標? – Stream 2009-04-16 08:06:34

+0

除了生成HTML之外,我還沒有做過任何其他pygments,但我知道它可以標記爲其他格式。這可能是其中的一個可以作爲顯示NSTextView的基礎。 – 2009-04-16 14:04:17

6

我想第二個Ahruman的建議 - 特別是看Uli的UKSyntaxColoredTextDocument,因爲這將指出你正確的方向,你將不得不瞭解哪些類。

這是信息的另一個極好來源:

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

好運 - 語法高亮是很難得到正確的,但很多沿途的樂趣!

2

我不得不尋找一個語法高亮顯示最近的可可液和搜索上的堆棧溢出,谷歌和GitHub上找不到任何現代後,很容易重新使用並仍在積極開發中。

現在大多數語法熒光筆都是爲網絡編寫的。幸運的是,將它們嵌入到WebView中以便在任何Cocoa應用程序中使用都非常簡單。可以通過WebKit的WebScriptObject protocol與編輯進行通信。

下面是對流行的JavaScript的文本編輯器CodeMirror爲例包裝可可: https://github.com/swisspol/CodeMirrorView

相關問題