web-dev-qa-db-ja.com

Sublime2(またはtextMate?)のスコープのリストはどこにありますか?

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

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

54
Alex

残念ながら、そのような包括的なリストはありません。

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

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

32
Chad

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 —文字を表すもの。 _&lt;_、_\e_、_\031_。
      • escape — _\e_のようなエスケープシーケンスは_constant.character.escape_になります。
    • languagetruefalsenilYESNOなどの「特別な」言語によって提供される定数(通常)。
    • 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 —主にcontinuewhilereturnなどのフロー制御に関連しています。
    • 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 —何かのタイプ、classfunctionintvarなど.
    • modifierstaticfinalabstractなどのストレージ修飾子.
  • 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 —変数がパラメーターとして宣言されている場合。
    • languagethissuperselfなどの予約済み言語変数.
    • other — _$some_variables_などの他の変数。
77
Phrogz

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

Package Controlのインストール

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

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

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

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

崇高なテキストパッケージマネージャーでパッケージをインストールするには、崇高なテキストのコマンドパレット(ctrl+shift+p)コマンドを選択しますPackage Control: Install Packageをクリックし、上記のパッケージのいずれかを選択します。

14
Will

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

11
atomi

既に投稿されている優れた回答に加えて、 TMTheme EditorScopes Statsタブには、すべてのスコープの有用なリストが表示されます236のカラーテーマがあり、最も一般的にサポートされているスコープが上部にあります。

5
TachyonVortex

以下の崇高なサイトのリファレンスガイドをご覧ください:

4
Steve Tomlin

各構文は独自のスコープに名前を付けることができますが、それらは このリスト に基づいています。たとえば、構文でfunctionstorage.type.function.jsスコープであることを指定している場合があります。テーマがそれを直接サポートしている場合は、その色を使用します。サポートしていない場合は、storage.type.function、次にstorage.type、最後にstorageがテーマ内の色を探します。

独自のスタイルを作成しているので、 ScopeStatusCTRL+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と同じになる可能性があるため、テーマごとに設定が異なる場合があります。

2
Jason Goemaat