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