我注意到SciTE源代码中有一个LexCoffeeScript.cxx文件;但是,SciTE的“语言”菜单中似乎没有CoffeeScript菜单选项。

手动添加选项没有帮助-仍然没有任何语法颜色。

有什么方法可以启用内置词法分析器(而不是使用外部词法分析器)吗?

最佳答案

显然,CoffeeScript词法分析器是在Scintilla中编译的,但SciTE并未使用。我的意思是,没有coffeescript.properties文件或任何其他引用该词法分析器的文件。您可以尝试创建自己的文件并将lexer设置为用于coffeescript的文件扩展名:

# Define SciTE settings for Coffeescript files.
file.patterns.coffeescript=*.coffee
filter.coffeescript=Coffeescript (coffee)|$(file.patterns.coffeescript)|
lexer.$(file.patterns.coffeescript)=coffeescript
...

然后,您将定义词法分析器支持的关键字,颜色样式和其他内容-查看其来源。您可以通过cpp.properties获得灵感,例如(用于C/C++和类似语言的词法分析器称为cpp。)以下是受支持的词法状态:
val SCE_COFFEESCRIPT_DEFAULT=0
val SCE_COFFEESCRIPT_COMMENT=1
val SCE_COFFEESCRIPT_COMMENTLINE=2
val SCE_COFFEESCRIPT_COMMENTDOC=3
val SCE_COFFEESCRIPT_NUMBER=4
val SCE_COFFEESCRIPT_WORD=5
val SCE_COFFEESCRIPT_STRING=6
val SCE_COFFEESCRIPT_CHARACTER=7
val SCE_COFFEESCRIPT_UUID=8
val SCE_COFFEESCRIPT_PREPROCESSOR=9
val SCE_COFFEESCRIPT_OPERATOR=10
val SCE_COFFEESCRIPT_IDENTIFIER=11
val SCE_COFFEESCRIPT_STRINGEOL=12
val SCE_COFFEESCRIPT_VERBATIM=13
val SCE_COFFEESCRIPT_REGEX=14
val SCE_COFFEESCRIPT_COMMENTLINEDOC=15
val SCE_COFFEESCRIPT_WORD2=16
val SCE_COFFEESCRIPT_COMMENTDOCKEYWORD=17
val SCE_COFFEESCRIPT_COMMENTDOCKEYWORDERROR=18
val SCE_COFFEESCRIPT_GLOBALCLASS=19
val SCE_COFFEESCRIPT_STRINGRAW=20
val SCE_COFFEESCRIPT_TRIPLEVERBATIM=21
val SCE_COFFEESCRIPT_HASHQUOTEDSTRING=22
val SCE_COFFEESCRIPT_COMMENTBLOCK=22
val SCE_COFFEESCRIPT_VERBOSE_REGEX=23
val SCE_COFFEESCRIPT_VERBOSE_REGEX_COMMENT=24

所有.properties文件都由import *中的SciTEGlobal.properties行自动加载。您还可以在Coffeescript|coffee||\中添加menu.language,以在Languages中获得新的菜单项,并且/或者在*.coffee中获得source.files,以在“文件打开”对话框中查看扩展名。

作者没有提供词法分析器的.properties文件,这很奇怪。可能可以改为使用JavaScript词法分析器。您可以在SciTE mailing list中询问它。

-费尔达

关于coffeescript - 在SciTE中启用CoffeeScript词法分析器吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8807083/

10-08 23:29