Очевидно, что лексер CoffeeScript скомпилирован в Scintilla, но не используется SciTE. Я имею в виду, что нет файла coffeescript.properties
или любого другого файла, который ссылался бы на лексер. Вы пытаетесь создать свой собственный и установить лексер для используемого расширения файла 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 .
--- Ферда