Подтвердить что ты не робот

Как создать синтаксис по умолчанию в filetype в текстовом редакторе Atom?

Я хочу, чтобы в моих файлах .ejs был синтаксис html, он всегда открывает файлы как обычный текст.

В возвышенном состоянии вы можете выбрать "Открыть все с текущим расширением как...", затем выбрать свой синтаксис.

sublime text3 syntax

Я вижу, что вы можете изменить синтаксис в левом нижнем углу syntax change

Как вы открываете файлы определенного типа с определенным синтаксисом?

4b9b3361

Ответ 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, чтобы указать, какой язык вы используете в этом файле. Не то же самое, что автоматическое обнаружение, но полезно для тех случаев, когда вы используете файл, который вы не хотите устанавливать по умолчанию.

Ответ 6

Например, если вы хотите открыть все .jsx файлы с синтаксисом javascript, вам нужно добавить это в свой config.cson

"*":
  core:
    customFileTypes:
      "source.js": [
         "jsx"
      ]

Это отображает все файлы .jsx для открытия с помощью синтаксиса js.

Ответ 7

Как отмечает Дэйв Андерсен в похожем комментарии, теперь это можно сделать без каких-либо дополнительных пакетов, и он документировал здесь.