2012-01-10 2 views
9

Я заметил, что в исходном коде SciTE есть файл LexCoffeeScript.cxx; однако SciTE, похоже, не имеет опции меню CoffeeScript в меню «Языки».Включение лексики CoffeeScript в SciTE?

Добавление опции вручную не помогает - по-прежнему нет никакой синтаксической раскраски.

Есть ли способ включить встроенный lexer (вместо того, чтобы прибегать к внешнему)?

ответ

0

Вам необходимо поместить эту строку в ваш файл SciTEGlobal.properties. Что можно открыть в меню «Параметры» в SciTE, нажав Open Global Options File.

import lexers/[dir] 

Где [dir] является расположение LexCoffeeScript.cxx файла в каталоге лексических в /usr/share/scite/.

UPDATE Пробовал это я, моя установка SciTE не имеет файл CoffeeScript Cxx поэтому я скачал пакет scintillua из here, который упаковывается с lua CoffeeScript лексером. Следуя приведенной выше инструкции по ее установке, он отлично работает.

+0

К сожалению, вы импортируете * C++ * файл из SciTE? Вы уверены, что это способ сделать это? – Mehrdad

+0

@Mehrdad Обновил свой ответ тем, что я сделал. Я не смог найти файл .cxx в моем источнике. – Jivings

+0

Да, и это не работает (или имеет смысл). Вы сами пробовали? – Mehrdad

3

Очевидно, что лексер 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-лексер JavaScript. Вы можете спросить об этом в SciTE mailing list.

--- Ферда

1

ответ Ферда является правильным на.

Вот образец файла 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) 

 Смежные вопросы

  • Нет связанных вопросов^_^