56

.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>

独自のスタイルを作成できるように、これらのアプリでサポートされているすべてのスコープのリストはどこにありますか?

4

7 に答える 7

85

TextMate 言語文法ガイドの「命名規則」セクションの現在のバージョンからコピー/貼り付け (ただし、HTML を Markdown に変換) :

  • comment— コメント用。
    • line— 行コメント。スコープからコメント開始文字のタイプを抽出できるように、さらに特殊化します。
      • double-slash// comment
      • double-dash-- comment
      • number-sign# comment
      • percentage% comment
      • character — 他のタイプの行コメント。
    • block/* … */—や などの複数行のコメント<!-- … -->
      • documentation— 埋め込まれたドキュメント。
  • constant— さまざまな形式の定数。
    • numeric— 数字を42表す1.3fもの0x4AB1U
    • character&lt;— 文字を表す\eもの\031
      • escape— のようなエスケープ シーケンス\econstant.character.escape.
    • languagetrue— 、falsenilYESNOなどの「特別な」言語によって提供される (一般に) 定数。
    • 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— キーワード (これらが他のグループに分類されない場合)。
    • controlcontinue— 主にwhilereturn、 などのフロー制御に関連します。
    • operator— 演算子は、テキスト (例: or) または文字のいずれかです。
    • other— その他のキーワード。
  • markup— これはマークアップ言語用であり、通常、テキストのより大きなサブセットに適用されます。
    • underline— 下線付きテキスト。
      • link— これはリンク用です。便宜上、これは派生元でmarkup.underlineあるため、具体的に対象とするテーマ ルールがない場合はmarkup.underline.link、下線スタイルを継承します。
    • bold— 太字のテキスト (強力で類似したテキストは、できればこの名前から派生させる必要があります)。
    • heading— セクションヘッダー。markup.heading.2.html必要に応じて<h2>…&lt;/h2>、HTMLなどの次の要素として見出しレベルを指定します。
    • italic— イタリック体のテキスト (強調され、類似しているテキストは、できればこの名前から派生する必要があります)。
    • list— リスト項目。
      • numbered— 番号付きリスト項目。
      • unnumbered— 番号のないリスト項目。
    • quote— 引用された (場合によってはブロック引用された) テキスト。
    • raw— コードリストなど、逐語的なテキスト。通常、 のスペル チェックは無効になっていmarkup.rawます。
    • other— その他のマークアップ構造。
  • meta— 一般に、メタ スコープは、ドキュメントのより大きな部分をマークアップするために使用されます。たとえば、関数を宣言する行全体は にmeta.functionなり、サブセットはstorage.type、などになりentity.name.functionvariable.parameter後者のみがスタイルされます。スコープのメタ部分は、スタイル設定されたより一般的な要素を制限するためだけに使用されることがありますが、ほとんどの場合、メタ スコープは、バンドル アイテムをアクティブ化するためのスコープ セレクターで使用されます。たとえば、Objective-C には、クラスのインターフェイス宣言と実装のためのメタ スコープがあり、同じタブ トリガーをコンテキストに応じて異なる方法で展開できます。
  • storage—「保管」に関すること。
    • type— 何かのタイプclassfunctionintvarなど
    • modifierstatic— 、finalabstractなどのストレージ修飾子。
  • 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— フレームワーク/ライブラリによって提供される機能。たとえばNSLog、Objective-C ではsupport.function.
    • class— フレームワーク/ライブラリがクラスを提供する場合。
    • type— フレームワーク/ライブラリによって提供される型。これはおそらく、C から派生した言語にのみ使用されます。これにはtypedef(およびstruct) があります。他のほとんどの言語では、新しい型をクラスとして導入します。
    • constant— フレームワーク/ライブラリによって提供される定数 (マジック値)。
    • variable— フレームワーク/ライブラリによって提供される変数。たとえばNSApp、AppKit で。
    • other— 上記は網羅的なものですが、それ以外の場合は を使用してsupport.otherください。
  • variable— 変数。すべての言語で、これらを簡単に識別 (およびマークアップ) できるわけではありません。
    • parameter— 変数がパラメーターとして宣言されている場合。
    • languagethis— 、superselfなどの予約済み言語変数。
    • other— などの他の変数$some_variables
于 2014-02-20T17:09:15.603 に答える
33

編集: Phrogz の回答は、尋ねられた質問により正確に回答するため、ここでの私の回答よりも優れています。チェックすることをお勧めします!


残念ながら、そのような包括的なリストはないようです。

ただし、Shift+Ctrl+PSublimeText 2 を押すと、画面下部のステータス バーに、カーソル位置の直後の文字に適用されるすべてのスコープ キーの包括的なリストが表示されます。

このメソッドを使用して、SublimeText 内から必要なもののスコープ キーを見つけることができます。

更新:以下のコメンターのWillとfreganteは、これが SublimeText 3 で変更されたことを示しています 。Windows/Linuxの場合は が適切なコマンドであり、Mac の場合のコマンドはです。
Shift+Ctrl+Alt+P⌘⌥P

于 2013-02-16T05:39:03.623 に答える
14

これを行うために使用できる崇高なテキスト パッケージがいくつかあります。

パッケージ コントロールのインストール

https://sublime.wbond.net/に移動し、[インストール] をクリックし、指示に従ってサブライム テキスト パッケージ マネージャーをインストールします。

現在のスコープを表示するパッケージ

ステータスバーに現在のスコープを表示するいくつかの崇高なテキストパッケージを知っています。

上記のパッケージのいずれかをインストールする

サブライム テキスト パッケージ マネージャーでパッケージをインストールするには、サブライム テキストのコマンド パレット ( ctrl+shift+p) を開き、コマンドPackage Control: Install Packageを選択してから、上記のパッケージのいずれかを選択します。

于 2013-08-16T13:12:05.193 に答える
11

スコープは、構文ごとに異なるtmLanguageファイルからのものです。スコープの命名規則のリストは、http://manual.macromates.com/en/language_grammarsにあります。

于 2012-06-01T05:05:27.137 に答える
6

すでに投稿されている優れた回答に加えて、TMTheme エディターのScopes Statsタブには、236 のカラー テーマのすべてのスコープの便利なリストが表示され、最も一般的にサポートされているスコープが上部に表示されます。

于 2014-12-18T19:20:58.450 に答える
4

以下の崇高なサイトのリファレンスガイドを参照してください。

于 2016-09-28T14:09:24.433 に答える
2

各構文は独自のスコープに名前を付けることができますが、このリストに基づいています。たとえば、構文functionstorage.type.function.jsスコープを指定する場合があります。テーマがそれを直接サポートしている場合、その色を使用します。そうでない場合は、フォールバックしてstorage.type.functionstorage.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 と同じである可能性があります。

于 2015-11-22T08:23:33.500 に答える