Как создать синтаксис по умолчанию в filetype в текстовом редакторе Atom?
Я хочу, чтобы в моих файлах .ejs был синтаксис html, он всегда открывает файлы как обычный текст.
В возвышенном состоянии вы можете выбрать "Открыть все с текущим расширением как...", затем выбрать свой синтаксис.
![sublime text3 syntax]()
Я вижу, что вы можете изменить синтаксис в левом нижнем углу ![syntax change]()
Как вы открываете файлы определенного типа с определенным синтаксисом?
Ответы
Ответ 1
Простой режим: включить
Если ваш язык действительно является просто HTML, вы можете настроить простой пакет, чтобы справиться с этим.
Создайте пакет под названием langugage-ejs
и в grammars/ejs.cson
вы можете включить HTML как имеющий шаблоны, о которых вы заботитесь:
'fileTypes': [
'ejs'
]
'name': 'Embedded JavaScript'
'patterns': [
{
'include': 'source.html'
}
]
'scopeName': 'source.ejs'
language-ipynb, конечно, делает это, расширяя JSON.
Как насчет моих тегов шаблона?
В действительности, у вас есть теги шаблонов поверх HTML, которые вы хотите, чтобы редактор распознал. Лучший пример, который я могу найти, - это erb (встроенные шаблоны Ruby). Это источники из HTML, но также добавляет другие теги, как показано в этом фрагменте:
...
'patterns': [
{
'begin': '<%+#'
'captures':
'0':
'name': 'punctuation.definition.comment.erb'
'end': '%>'
'name': 'comment.block.erb'
}
{
'begin': '<%+(?!>)[-=]?'
'captures':
'0':
'name': 'punctuation.section.embedded.ruby'
'end': '-?%>'
'name': 'source.ruby.rails.embedded.html'
'patterns': [
{
'captures':
'1':
'name': 'punctuation.definition.comment.ruby'
'match': '(#).*?(?=-?%>)'
'name': 'comment.line.number-sign.ruby'
}
{
'include': 'source.ruby.rails'
}
]
}
{
'include': 'text.html.basic'
}
]
...
Ответ 2
Теперь это в ядре Atom, вам больше не нужен этот пакет типов файлов.
Где я работаю, мы используем .phl для определенного типа файла PHP. Чтобы сообщить Atom об этом, отредактируйте config.cson
так:
core:
customFileTypes:
"text.html.php": [
"phl"
]
themes: [
// snip
Вы можете найти этот файл в ~/.atom/config.cson
или в окне "Настройки" нажмите кнопку "Открыть папку конфигурации".
Легко ошибиться, о чем свидетельствуют многочисленные ошибки, сделанные людьми из проблемы GitHub для этой функции.
Ответ 3
Изменить: с момента написания этого ответа эта функциональность была добавлена в ядро Atom, см. этот ответ для деталей.
типы файлов Atom пакет
(https://atom.io/packages/file-types)
Он делает именно то, что задает вопрос в заголовке: вы можете определить новые расширения файлов для существующих языков с простым редактированием файла config.cson
.
Ответ 4
Для отдельных файлов вы можете использовать Grammar Selector; Ctrl + Shift + L, чтобы указать, какой язык вы используете в этом файле. Не то же самое, что автоматическое обнаружение, но полезно для тех случаев, когда вы используете файл, который вы не хотите устанавливать по умолчанию.
Ответ 5
Похоже, что для этого выпущен совершенно новый пакет. https://atom.io/packages/language-ejs.
Ответ 6
Например, если вы хотите открыть все .jsx
файлы с синтаксисом javascript, вам нужно добавить это в свой config.cson
"*":
core:
customFileTypes:
"source.js": [
"jsx"
]
Это отображает все файлы .jsx для открытия с помощью синтаксиса js.
Ответ 7
Как отмечает Дэйв Андерсен в похожем комментарии, теперь это можно сделать без каких-либо дополнительных пакетов, и он документировал здесь.