.tmThemeファイルでは、スコープキーが要素の強調表示方法を定義します。
<dict>
<key>name</key>
<string>HTML: Attribute Values</string>
<key>scope</key>
<string>meta.tag string.quoted, meta.tag string.quoted constant.character.entity</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#FFFFFF</string>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2aa198</string>
</dict>
</dict>
これらのアプリでサポートされているすべてのスコープのリストはどこにあるので、独自のスタイルを作成できますか?
残念ながら、そのような包括的なリストはありません。
ただし、SublimeText 2でShift + Ctrl + Pを押すと、画面下部のステータスバーに、カーソル位置の直後の文字に適用されるすべてのスコープキーの包括的なリストが表示されます。
このメソッドを使用して、SublimeText内から必要なもののスコープキーを見つけることができます。
TextMate Language Grammar Guideの「命名規則」セクションの現在のバージョンからコピー/貼り付け(ただしHTMLをMarkdownに変換):
comment
—コメント用。line
—行コメント。コメントの開始文字のタイプをスコープから抽出できるように、さらに特化しています。double-slash
_ — _// comment
_double-dash
_ — _-- comment
_number-sign
_ — _# comment
_percentage
— _% comment
_block
— _/* … */
_や_<!-- … -->
_。などの複数行コメントdocumentation
—埋め込みドキュメント。constant
—さまざまな形式の定数。numeric
—数値を表すもの。 _42
_、_1.3f
_、_0x4AB1U
_。character
—文字を表すもの。 _<
_、_\e
_、_\031
_。escape
— _\e
_のようなエスケープシーケンスは_constant.character.escape
_になります。language
— true
、false
、nil
、YES
、NO
などの「特別な」言語によって提供される定数(通常)。other
—その他の定数。 CSSの色。entity
—エンティティは、ドキュメントのより大きな部分(章、クラス、関数、タグなど)を参照します。エンティティ全体を_entity.*
_としてスコープ指定しません(そのために_meta.*
_を使用します)。ただし、より大きなエンティティの「プレースホルダ」には_entity.*
_を使用します。エンティティが章の場合、章のタイトルには_entity.name.section
_を使用します。name
—より大きなエンティティに名前を付けています。function
—関数の名前。type
—型宣言またはクラスの名前。tag
—タグ名。section
—名前はセクション/見出しの名前です。other
—その他のエンティティ。inherited-class
_ —スーパークラス/ベースクラス名。attribute-name
_ —属性の名前(主にタグ内)。invalid
—「無効」なもの。illegal
—違法、たとえばHTMLのアンパサンドまたはより小文字(エンティティ/タグの一部ではない)。deprecated
—非推奨のもの(例:廃止予定のAPI関数を使用するか、厳密なHTMLでスタイル設定を使用します。keyword
—キーワード(これらが他のグループに該当しない場合)。control
—主にcontinue
、while
、return
などのフロー制御に関連しています。operator
—演算子はテキスト(or
など)または文字のいずれかです。other
—その他のキーワード。markup
—これはマークアップ言語用であり、通常はテキストのより大きなサブセットに適用されます。underline
—下線付きテキスト。link
—これはリンク用です。便宜上、これは_markup.underline
_から派生しているため、特に_markup.underline.link
_をターゲットとするテーマルールがない場合は、下線スタイルを継承します。bold
—太字のテキスト(強力で類似したテキストは、この名前から派生させることが望ましい)。heading
—セクションヘッダー。オプションで、次の要素として見出しレベルを指定します。たとえば、HTMLの_markup.heading.2.html
_の場合は_<h2>…</h2>
_です。italic
—イタリックテキスト(強調され、類似しているテキストは、この名前から派生させることが望ましい)。list
—リストアイテム。numbered
—番号付きリスト項目。unnumbered
—番号なしのリスト項目。quote
—引用された(ブロック引用された)テキスト。raw
—逐語的なテキスト。コードリスト。通常、_markup.raw
_のスペルチェックは無効になっています。other
—その他のマークアップ構造。meta
—メタスコープは通常、ドキュメントのより大きな部分をマークアップするために使用されます。たとえば、関数を宣言する行全体は_meta.function
_であり、サブセットは_storage.type
_、_entity.name.function
_、_variable.parameter
_などであり、後者のみがスタイルされます。スコープのメタ部分は、スタイルが設定されたより一般的な要素を制限するためにのみ使用される場合がありますが、ほとんどの場合、メタスコープは、バンドルアイテムのアクティブ化のスコープセレクターで使用されます。たとえばObjective-Cには、クラスと実装のインターフェイス宣言にメタスコープがあり、同じタブトリガーをコンテキストに応じて異なる方法で展開できます。storage
—「ストレージ」に関連するもの。type
—何かのタイプ、class
、function
、int
、var
など.modifier
— static
、final
、abstract
などのストレージ修飾子.string
—文字列。quoted
—引用符付きの文字列。single
—一重引用符で囲まれた文字列:_'foo'
_。double
—二重引用符で囲まれた文字列:_"foo"
_。triple
—三重引用符付き文字列:_"""Python"""
_。other
—他のタイプの引用:_$'Shell'
_、_%s{...}
_。unquoted
— here-docsやhere-stringsなどの場合。interpolated
—「評価された」文字列:date
、$(pwd)
。regexp
—正規表現:/(\w+)/
。other
—他のタイプの文字列(ほとんど使用されません)。support
—フレームワークまたはライブラリによって提供されるものは、support
。の下にある必要があります。function
—フレームワーク/ライブラリによって提供される関数。たとえば、Objective-CのNSLog
は_support.function
_です。class
—フレームワーク/ライブラリがクラスを提供する場合。type
—フレームワーク/ライブラリによって提供される型。これはおそらく、typedef
(およびstruct
)を持つCから派生した言語でのみ使用されます。他のほとんどの言語では、クラスとして新しい型が導入されます。constant
—フレームワーク/ライブラリによって提供される定数(マジック値)。variable
—フレームワーク/ライブラリによって提供される変数。たとえば、AppKitのNSApp
です。other
—上記は完全なものですが、それ以外の場合は_support.other
_を使用します。variable
—変数。すべての言語がこれらの簡単な識別(つまりマークアップ)を許可するわけではありません。parameter
—変数がパラメーターとして宣言されている場合。language
— this
、super
、self
などの予約済み言語変数.other
— _$some_variables
_などの他の変数。これを行うために使用できる崇高なテキストパッケージがいくつかあります。
https://sublime.wbond.net/ に移動し、[インストール]をクリックして、指示に従って崇高なテキストパッケージマネージャーをインストールします。
ステータスバーに現在のスコープを表示する崇高なテキストパッケージがいくつかあります。
崇高なテキストパッケージマネージャーでパッケージをインストールするには、崇高なテキストのコマンドパレット(ctrl+shift+p
)コマンドを選択しますPackage Control: Install Package
をクリックし、上記のパッケージのいずれかを選択します。
スコープは、構文ごとに異なるtmLanguageファイルからのものです。スコープの命名規則のリストは http://manual.macromates.com/en/language_grammars にあります。
既に投稿されている優れた回答に加えて、 TMTheme Editor のScopes Statsタブには、すべてのスコープの有用なリストが表示されます236のカラーテーマがあり、最も一般的にサポートされているスコープが上部にあります。
以下の崇高なサイトのリファレンスガイドをご覧ください:
各構文は独自のスコープに名前を付けることができますが、それらは このリスト に基づいています。たとえば、構文でfunction
がstorage.type.function.js
スコープであることを指定している場合があります。テーマがそれを直接サポートしている場合は、その色を使用します。サポートしていない場合は、storage.type.function
、次にstorage.type
、最後にstorage
がテーマ内の色を探します。
独自のスタイルを作成しているので、 ScopeStatus (CTRL+SHIFT+P、次に[パッケージのインストール]、[ScopeStatus]の順にクリックします)。集中したい構文を使用してファイルを見て、 CTRL+SHIFT+P、次に「スコープ:ステータスバーに表示」。これで、カーソルをさまざまな要素に移動して、要素の範囲を確認し、それらを使用して色を定義できます。
テーマをチェックして、何が行われているかを確認します。「設定」->「パッケージの参照」に移動して、パッケージが保存されているフォルダーを開きます。フォルダーと「配色」フォルダーの下にある「テーマ-フェニックス」をインストールしました。テーマファイルの1つで、さまざまなスコープに使用される16色を見つけました。
keyword.operator.class, constant.other, source.php.embedded.line
variable, support.other.variable, string.other.link, entity.name.tag, entity.other.attribute-name, meta.tag, declaration.tag
constant.numeric, constant.language, support.constant, constant.character, variable.parameter, punctuation.section.embedded, keyword.other.unit
entity.name.class, entity.name.type.class, support.type, support.class
string, constant.other.symbol, entity.other.inherited-class, markup.heading
keyword.operator, constant.other.color
entity.name.function, meta.function-call, support.function, keyword.other.special-method, meta.block-level
keyword, storage, storage.type, entity.name.tag.css
invalid
meta.separator
invalid.deprecated
markup.inserted.diff, markup.deleted.diff, meta.diff.header.to-file, meta.diff.header.from-file
markup.inserted.diff, meta.diff.header.to-file
markup.deleted.diff, meta.diff.header.from-file
meta.diff.header.from-file, meta.diff.header.to-file
meta.diff.range
最初のグループのkeyword.operator.classが独自の色を持つか、meta.diff.rangeと同じになる可能性があるため、テーマごとに設定が異なる場合があります。