我注意到在LexCoffeeScript.cxx源代码中有一个SciTE文件;但是,SciTE在其语言菜单中似乎没有CoffeeScript菜单选项。
手动添加选项没有帮助--仍然没有任何语法着色。
是否有任何方法来启用内置的lexer (而不是求助于外部的)?
发布于 2012-04-11 19:58:00
显然,CoffeeScript词汇是用Scintilla编译的,但没有被SciTE使用。我的意思是,没有任何coffeescript.properties文件或任何其他文件将引用雷克萨斯。您可以尝试创建自己的文件扩展名,并为coffeescript设置文件扩展名的lexer。
# 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文件都由来自SciTEGlobal.properties的行import *自动加载。您还可以将Coffeescript|coffee||\添加到menu.language以获得Languages中的新菜单项和/或将*.coffee添加到source.files以查看文件打开对话框中的扩展。
奇怪的是,作者没有提供.properties文件和lexer。它可以是可以使用的JavaScript雷克萨斯替代。你可以在SciTE邮件列表上询问此事。
-费尔达
发布于 2014-04-03 16:17:56
弗尔达的回答是对的。
下面是一个示例coffeescript.properties文件,可以开始并节省一些时间.
# Define SciTE settings for Coffeescript files.
file.patterns.coffeescript=*.coffee
filter.coffeescript=Coffeescript (coffee)|$(file.patterns.coffeescript)|
lexer.$(file.patterns.coffeescript)=coffeescript
keywordclass.coffeescript=abstract boolean break byte case catch char class \
const continue debugger default delete do double else enum export extends \
final finally float for function goto if implements import in instanceof \
int interface long native new package private protected public \
return short static super switch synchronized this throw throws \
transient try typeof var void volatile while with
keywords.$(file.patterns.coffeescript)=$(keywordclass.coffeescript)
keywordclass2.coffeescript=$
keywords2.$(file.patterns.coffeescript)=$(keywordclass2.coffeescript)
# White space
style.coffeescript.0=fore:#808080
# Comment: ### ###
style.coffeescript.1=$(colour.code.comment.box),$(font.code.comment.box)
# Line Comment: #
style.coffeescript.2=$(colour.code.comment.line),$(font.code.comment.line)
# Doc comment: block comments beginning with /** or /*!
style.coffeescript.3=$(colour.code.comment.doc),$(font.code.comment.doc)
# Number
style.coffeescript.4=$(colour.number)
# Keyword
style.coffeescript.5=$(colour.keyword),bold
# Double quoted string
style.coffeescript.6=$(colour.string)
# Single quoted string
style.coffeescript.7=$(colour.char)
# UUIDs (only in IDL)
style.coffeescript.8=fore:#804080
# Preprocessor
style.coffeescript.9=$(colour.preproc)
# Operators
style.coffeescript.10=fore:#FF6600,bold
# Identifiers
style.coffeescript.11=fore:#FF1493
# End of line where string is not closed
style.coffeescript.12=fore:#000000,$(font.monospace),back:#E0C0E0,eolfilled
# Verbatim strings
style.coffeescript.13=fore:#007F00,$(font.monospace),back:#E0FFE0,eolfilled
# Regular expressions for JavaScript
style.coffeescript.14=fore:#3F7F3F,$(font.monospace),back:#E0F0FF,eolfilled
# Doc Comment Line: line comments beginning with /// or //!.
style.coffeescript.15=$(colour.code.comment.doc),$(font.code.comment.doc)
# Keywords2
style.coffeescript.16=fore:#B00040
# Comment keyword
style.coffeescript.17=fore:#3060A0,$(font.code.comment.doc)
# Comment keyword error
style.coffeescript.18=fore:#804020,$(font.code.comment.doc)
# Raw strings
style.coffeescript.20=$(colour.string),back:#FFF3FF,eolfilled
# Triple-quoted strings
style.coffeescript.21=$(font.monospace),fore:#007F00,back:#E0FFE0,eolfilled
# Hash-quoted strings for Pike
style.coffeescript.22=$(font.monospace),fore:#007F00,back:#E7FFD7,eolfilled
# Verbose Regex
style.coffeescript.23=fore:#659900
# Verbose Regex Comment
style.coffeescript.24=$(colour.code.comment.doc)发布于 2012-02-26 14:19:57
您需要将这一行放在您的SciTEGlobal.properties文件中。它可以通过单击SciTE中的“选项”菜单中的“Open Global Options File”来打开。
import lexers/[dir]其中[dir]是LexCoffeeScript.cxx文件在/usr/share/scite/中的词汇目录中的位置。
UPDATE自己尝试过这一点,我安装的SciTE没有任何CoffeeScript cxx文件,所以我从这里下载了scintillua包,这个包是用lua coffeescript打包的。按照上面的说明来安装它,它可以正常工作。
https://stackoverflow.com/questions/8807083
复制相似问题