Jak utworzyć domyślną składnię według typu pliku w edytorze tekstu Atom?
Chcę Mojego .pliki ejs mają składnię html, jednak zawsze otwiera pliki jako zwykły tekst.
W sublime możesz wybrać " Open all with current extension as..."następnie wybierz składnię.
Widzę, że można zmienić składnię w lewym dolnym rogu
Jak otwierać pliki z określonym typem z określoną składnią?
7 answers
Easy mode: include
Jeśli twój język naprawdę jest tylko HTML, możesz skonfigurować prosty pakiet do obsługi tego.
Utwórz pakiet o nazwie langugage-ejs
i w grammars/ejs.cson
możesz dołączyć HTML jako mający wzorce, na których Ci zależy:
'fileTypes': [
'ejs'
]
'name': 'Embedded JavaScript'
'patterns': [
{
'include': 'source.html'
}
]
'scopeName': 'source.ejs'
Język-ipynb z pewnością robi to rozszerzając JSON.
A co z moimi tagami szablonów?
W rzeczywistości jednak, masz znaczniki szablonów na wierzchu HTML, które chcesz, aby edytor rozpoznał. Najlepszy przykład I can find jest dla erb (Embedded Ruby templates). To źródła z HTML, ale także dodaje do innych tagów, jak pokazano w tym fragmencie:
...
'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'
}
]
...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-17 23:21:36
To jest teraz W Atom core , nie potrzebujesz już tego pakietu typów plików.
Gdzie pracuję, używamy .phl dla określonego rodzaju pliku PHP. Aby powiedzieć Atom o tym, edytujconfig.cson
tak:
core:
customFileTypes:
"text.html.php": [
"phl"
]
themes: [
// snip
Możesz znaleźć ten plik w ~/.atom/config.cson
, lub w oknie ustawień kliknij przycisk "Otwórz Folder konfiguracyjny".
Łatwo się pomylić, o czym świadczy wiele błędów, które ludzie popełnili w wydaniu GitHub dla tej funkcji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-04 11:05:33
Edit: odkąd napisałem tę odpowiedź, ta funkcjonalność została dodana do Atom core, Zobacz Ta odpowiedź Po szczegóły.
Pakiet Atom typów plików
(https://atom.io/packages/file-types )
Robi dokładnie to, o co prosi pytanie tytułowe: możesz zdefiniować nowe rozszerzenia plików dla istniejących języków za pomocą prostej edycji pliku config.cson
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:29
Dla poszczególnych plików można użyć selektora gramatyki; Ctrl+Shift+L aby ustawić język, którego używasz na tym pliku. To nie to samo, co automatyczne wykrywanie, ale przydatne w przypadku, gdy używasz pliku, dla którego nie chcesz ustawić domyślnej wartości.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-07 18:25:14
Wygląda na to, że został wydany zupełnie nowy pakiet. https://atom.io/packages/language-ejs .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-12 20:32:22
Na przykład, jeśli chcesz otworzyć wszystkie pliki .jsx
ze składnią javascript, musisz dodać to do swojego config.cson
"*":
core:
customFileTypes:
"source.js": [
"jsx"
]
To wszystko mapuje .pliki jsx do otwierania za pomocą składni js.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-18 07:04:01
Jak wspomina Dave Andersen w Zakopanym komentarzu, teraz Można to zrobić bez żadnych dodatkowych pakietów i jest to udokumentowane tutaj .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-19 00:52:02