我正在研究Cocoa應用程序,它應該能夠分析和突出顯示用Objective-C,SQL,JavaScript,Python等語言編寫的源代碼。文本也應該是可編輯的(例如,使用NSTextView) 。在Cocoa中實現源代碼語法高亮的最佳方式是什麼?
請告知什麼是在Mac OS X 10.5中實現此功能的最佳方式。
沒有必要支持自動完成和其他額外功能。按關鍵字,字符串,#includes和數字進行簡單格式化,但具有很酷的性能即可。
另外,如果支持通過語言進行配置,那將會很棒。
謝謝!
我正在研究Cocoa應用程序,它應該能夠分析和突出顯示用Objective-C,SQL,JavaScript,Python等語言編寫的源代碼。文本也應該是可編輯的(例如,使用NSTextView) 。在Cocoa中實現源代碼語法高亮的最佳方式是什麼?
請告知什麼是在Mac OS X 10.5中實現此功能的最佳方式。
沒有必要支持自動完成和其他額外功能。按關鍵字,字符串,#includes和數字進行簡單格式化,但具有很酷的性能即可。
另外,如果支持通過語言進行配置,那將會很棒。
謝謝!
在編制項目,將需要類似的東西,我發現以下(但沒有深入評估它們):
Gandreas殺死了這個回購站,但我從一箇舊的SVN回購站點(https://github.com/CodaFi/IDEKit)回收了一份工作副本(0.3,最近的)。我有Xcode 4.x支持和ARC。 – CodaFi 2012-09-30 06:27:21
您可以使用python編寫的Pygments來生成源代碼的HTML表示,然後可以在Web視圖中顯示該源代碼。
(注意,這反映在下面的評論 - 這答案是原來的問題,這並沒有提及可編輯文本)
謝謝馬修。對不起,但我忘了包括一個更多的要求。源代碼應該是可編輯的(例如,放置在NSTextView中)。是否可以使用Pygments將突出顯示合併到NSTextView中以實現此目標? – Stream 2009-04-16 08:06:34
除了生成HTML之外,我還沒有做過任何其他pygments,但我知道它可以標記爲其他格式。這可能是其中的一個可以作爲顯示NSTextView的基礎。 – 2009-04-16 14:04:17
我想第二個Ahruman的建議 - 特別是看Uli的UKSyntaxColoredTextDocument,因爲這將指出你正確的方向,你將不得不瞭解哪些類。
這是信息的另一個極好來源:
http://www.cocoadev.com/index.pl?ImplementSyntaxHighlighting
好運 - 語法高亮是很難得到正確的,但很多沿途的樂趣!
您可能會考慮使用flex(德語)這裏[1]。你可以在這裏找到這種方法的例子[2]。
[1] http://www.osxentwicklerforum.de/thread.php?postid=14764 [2] http://objectiveous.github.com/davenport/
我不得不尋找一個語法高亮顯示最近的可可液和搜索上的堆棧溢出,谷歌和GitHub上找不到任何現代後,很容易重新使用並仍在積極開發中。
現在大多數語法熒光筆都是爲網絡編寫的。幸運的是,將它們嵌入到WebView中以便在任何Cocoa應用程序中使用都非常簡單。可以通過WebKit的WebScriptObject protocol與編輯進行通信。
下面是對流行的JavaScript的文本編輯器CodeMirror爲例包裝可可: https://github.com/swisspol/CodeMirrorView
智能語法高亮可以很艱難 - 這就是爲什麼蘋果做的鐺前端到LLVM這麼多的工作的一部分。你可能想看看它。 – user57368 2009-04-16 03:26:12