Syntax coloring for Cocoa app

2019-02-02 04:07发布

问题:

I'm planning to do a Cocoa app that requires code syntax to be colored (in all common languages). Instead of writing my own code highlighter/parser, are there any pre-made solutions available?

Thanks

回答1:

You might be able to use something like Geshi, but there're also the resources listed here: http://www.cocoadev.com/index.pl?SyntaxHighlighting

Edit

More links:

  • http://www.stiefels.net/2008/01/22/syntax-highlighting-for-nstextview-with-flex/
  • Syntax Highlighting in Cocoa TextView? Experiences? Suggestions? Ideas?
  • http://forums.macnn.com/79/developer-center/81949/how-to-realize-syntax-highlighting-cocoa/
  • http://www.cocoabuilder.com/archive/message/cocoa/2004/8/24/115460
  • http://parsekit.com/okudakit/


回答2:

An excellent solution is Uli Kusterer's UKSyntaxColoredTextDocument. It is fast and has several built-in syntax parsers. It's easy to add new languages.

It's free for non-commercial use and very cheap if you want it for a commercial app.



回答3:

You can also use the JavaScript library SyntaxHighlighter and embed it into a WebView into your app.



回答4:

After quite a bit of research trying to solve a similar problem, the simplest approach I found by far is to use a JavaScript library for syntax highlighting combined with a WebView. Spending time writing a syntax highlighter, a fairly complex task, is probably not what you'd want to spend time on.

I settled on using the popular CodeMirror and wrote an open source wrapper for Cocoa: https://github.com/swisspol/CodeMirrorView. You can use similar approaches to wrap other JavaScript based code editors in Cocoa apps.



回答5:

You can use highlight that is used in QLColorCode :) (however, it's not a Framework that you include in your code, but a command-line utility)

EDIT: Ah yeah, use Geshi, it's probably better :D