我有一个导出 Objective-C 和 Swift 代码的应用程序。
在这个自动生成代码的预览窗口中,我想用 Xcode 的默认主题使用相同的颜色格式化文本,即绿色表示注释,蓝色表示数字,红色表示字符串,紫色表示类名等。
诸如 PaintCode 之类的应用程序设法实现了这一点。有谁知道图书馆或其他生产方式。
您将需要一个词法分析器将文本分成几部分:标识符、符号、字符串和数字文字、注释等。进一步阅读Wikipedia 上的词法分析器。
然后你必须知道在它们上应用什么颜色,包括不同类型的标识符:关键字、函数、变量、类型等。对于这些,你可以管理某种列表并查找它们。
对于解析,一个好的起点是NSScanner
或简单地逐个字符地遍历文本。这就是我们在 PaintCode 中的做法。
对于着色本身,只需使用NSAttributedString
and NSForegroundColorAttributeName
。无需进入核心文本。