web-dev-qa-db-ja.com

Atomテキストエディタでファイルタイプごとにデフォルトの構文を作成するにはどうすればよいですか?

.ejsファイルにhtml構文を持たせたいのですが、常にプレーンテキストとしてファイルを開きます。

崇高に「現在の拡張子ですべて開く...」を選択してから、構文を選択できます。

sublime text3 syntax

左下隅の構文を変更できることがわかりますsyntax change

特定の構文で特定のタイプのファイルをどのように開きますか?

47
NathanBrakk

簡単モード:含む

あなたの言語が本当に単なるHTMLである場合、これを処理するための簡単なパッケージをセットアップできます。

langugage-ejsというパッケージを作成し、grammars/ejs.csonに、関心のあるパターンを持つHTMLを含めることができます。

'fileTypes': [
  'ejs'
]

'name': 'Embedded JavaScript'

'patterns': [
  {
    'include': 'source.html'
  }
]

'scopeName': 'source.ejs'

language-ipynb は確かにJSONを拡張することでこれを行います。

テンプレートタグはどうですか?

ただし、実際には、HTMLの上にテンプレートタグがあり、エディターに認識させる必要があります。私が見つけることができる最良の例は erb(Embedded Ruby templates) です。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'
  }
]
...
6
Kyle Kelley

これは Atom core になり、そのファイルタイプパッケージはもう必要ありません。

私が働いている場所では、特定の種類のPHPファイルに.phlを使用しています。 Atomについてこれを伝えるには、config.csonを次のように編集します。

core:
    customFileTypes:
      "text.html.php": [
        "phl"
      ]
    themes: [
// snip

このファイルは~/.atom/config.csonで見つけることができます。または[設定]ウィンドウから[構成フォルダーを開く]ボタンをクリックします。

この機能の GitHubの問題 で人々が犯した多くのエラーから明らかなように、間違いを犯すのは簡単です。

104
timseal

個々のファイルには、グラマーセレクターを使用できます。 Ctrl+Shift+L そのファイルで使用している言語を設定します。自動検出と同じではありませんが、デフォルトを設定したくないファイルを使用している場合に役立ちます。

5
Jesse

編集:この答えを書いて以来、この機能はAtom coreに追加されました。 詳細については、この回答

ファイルタイプAtomパッケージ

https://atom.io/packages/file-types

タイトルの質問に正確に応えます。既存の言語の新しいファイル拡張子を定義するには、config.csonファイル。

5
Ábel Hegedüs

このために新しいパッケージがリリースされているようです。 https://atom.io/packages/language-ejs

3
Dan

たとえば、すべての.jsxファイルをjavascript構文で開く場合は、これをconfig.csonに追加する必要があります

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

これにより、すべての.jsxファイルがjs構文で開くようにマップされます。

3
Sachin

Dave Andersenが埋もれたコメントで言及しているように、追加のパッケージなしでこれを行うことが可能であり、文書化されています here

2
Evan Siroky