代码之家  ›  专栏  ›  技术社区  ›  Vadim

在COCO中实现源代码语法突出显示的最佳方法是什么?[关闭]

  •  18
  • Vadim  · 技术社区  · 16 年前

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

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

    不需要支持自动完成和其他额外功能。通过关键字、字符串、包括和数字进行简单的格式化,但性能很好。

    此外,如果支持按语言进行配置,那将是非常好的。

    谢谢!

    5 回复  |  直到 10 年前
        1
  •  16
  •   Jens Ayton    16 年前

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

    • /developer/examples/opengl/coco/glsleditorsample实现语法突出显示。
    • IDEKit ,_一个开源框架,提供程序员源代码编辑,包括语法着色、弹出函数和拆分框架__。这已经有一段时间没有更新了(它吹嘘10.2和10.3的兼容性,并且附带了一个项目生成器项目,可以用Xcode 2.5转换)。
    • UKSyntaxColoredTextDocument .
        2
  •  6
  •   Dunk    16 年前

    我同意阿鲁曼的建议——特别是看乌利的UKsyntaxColoredTextDocument,因为它会为你指明正确的方向,告诉你要学习哪些类等等。

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

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

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

        3
  •  2
  •   Pol    11 年前

    我最近不得不为Cocoa寻找一个语法突出显示的解决方案,在搜索栈溢出之后,Google和Github找不到任何现代的、易于重用的东西,而且还在积极开发中。

    如今,大多数语法亮点似乎都是为网络编写的。幸运的是,它实际上很容易将它们嵌入到Web视图中,以便在任何Cocoa应用程序中使用。与编辑器的通信可以通过WebKit WebScriptObject protocol .

    下面是一个流行的JavaScript文本编辑器的示例包装器 CodeMirror 可可: https://github.com/swisspol/CodeMirrorView

        4
  •  1
  •   Matthew Schinckel    16 年前

    您可以使用pygment(用python编写)生成源代码的HTML表示,然后可以在Web视图中显示。

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

        5
  •  1
  •   user57038    16 年前

    您可以考虑使用这里描述的flex(德语版)[1]。您可以在这里找到这种方法的一个例子[2]。

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