我注意到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/