customFileTypes
~/.atom/config.cson
ファイルを編集する。
"*": core: customFileTypes: "source.ruby.rails": [ "rb" ] "source.shell": [ "envrc" ".env" ".env.example" ]
配列内に拡張子もしくはファイル名を指定する。ワイルドカードや正規表現は使用できない。CSON 形式では要素間のコンマは不要。
参考:
Atom Editor の拡張子による言語選択をカスタマイズする – Qiita
Atom のデフォルト syntax を変更する | ObjecTips
How do I make Atom recognize a file with extension X as language Y? | Atom Discussion [Official]
Make file type -> language mapping locally configurable · Issue #1718 · atom/atom – GitHub
How do I make a default syntax by filetype in Atom text editor? – Stack Overflow
file-types パッケージ
config.cson
の customFileTypes
で設定できるようになったため、拡張子にシンタックスを割り当てるためにわざわざパッケージを追加する必要はなくなった。正規表現によるシンタックスの割り当てをしたい場合は file-types パッケージを使う必要がある。
参考:
拡張子を追加し、ハイライトカラーを割り当てる方法 | とーますメモ
Atom で .mtml を HTML のシンタックスカラーに設定 | bit part blog
コーディング作業を加速する Atom 活用法 | satoyan419.com
scope name
カーソル位置の scope name を調べる。
Mac:Cmd
+ Alt
+ P
参考:
Atom で特定の言語のために新しい文法 grammar を作る – Qiita
Atom scope name list – GitHub Gist
How to find the current scope | Atom Discussion [Official]
Canonical list of syntax scope names? | Atom Discussion [Official]
独自の grammar を作成する
参考:
Atom で特定の言語のために新しい文法 grammar を作る – Qiita
How To Develop a Package for GitHub’s Atom Code Editor | SitePoint
Guide to writing an Atom language grammar – GitHub Gist
Creating a Grammar | Atom Flight Manual [Official]
How do I edit a language grammar / syntax in Atom? | Atom Discussion
Where to put grammar cson file? | Atom Discussion
Help creating a grammar from scratch | Atom Discussion
Syntax Highlighting Guide for Atom – Stack Overflow
新規ファイルの grammar を指定する
参考:
Atom で新規ファイルのデフォルトの Syntax をなんとかする | Trial and Spiral
$self / $base
$self
:include
したファイルで定義されている grammar を再帰的に含める。$base
:別ファイルで参照されてinclude
された場合、参照元の grammar を含める。
grammar A の定義
# A.cson scope: 'source.A' patterns: [ { begin: 'begin' end: 'end' patterns: [{ include: '$self' }] # => include `source.A` between `begin` and `end` } { begin: 'begin_ex' end: 'end_ex' patterns: [{ include: '$base' }] } ]
grammar B の定義
# B.cson scope: 'source.B' pattrens: [ { begin: 'begin_A' end: 'end_A' patterns: [{ include 'source.A' }] # => include `source.A` between `begin_A` and `end_A` # => include `source.A` as $self between `begin` and `end` # => include `source.B` as $base between `begin_ex` and `end_ex` } ]
別ファイルから include
した場合に $self
と $base
では挙動が変わる。$self
を指定した場合は常に元のファイルの grammer がインクルードされるのに対して、$base
を指定した場合は、include を使用した現在のファイルの grammar が $base
としてインクルードされる。($base
はインクルードする grammar を動的に決定する。)
参考:
Complex multiline rule – Guide to writing an Atom language grammar – GitHub Gist
Project Manager
参考:
Default scope names | Atom Discussion [Official]
project-manager | Atom Packages
Grammar Selector
現在のファイルに適用する grammar を選択するために標準で用意されているユーザーインターフェイス。
参考:
Grammar | Atom flight manual [Official]
atom/grammar-selector: Pick a grammar for the current editor – GitHub
Ruby Heredoc
参考:
Heredoc improperly highlighted. · Issue #75 · atom/language-ruby – GitHub
その他の情報
参考:
Atom で Langage パッケージの対象拡張子を増やしたい – Qiita
Change syntax highlighting based on file extension | Atom Discussion [Official]
How do I make a default syntax by filetype in Atom text editor? – Stack Overflow