Atomフライトマニュアル翻訳:4.3役割ドメイン設定、役割ドメインと役割ドメイン記述子
役割ドメイン設定、役割ドメイン、および役割ドメイン記述子
Atomは言語固有の設定をサポートします.Markdownファイルでソフト改行したり、Pythonでtabの幅を4に設定したりすることができます.
言語固有の設定はいくつかのもののサブセットにすぎず、「役割ドメイン設定」と呼ばれています.役割ドメイン設定は、特定の構文記号のクラスにのみ適用できます.たとえば、Rubyのコメント、Markdownのコードセグメント、またはJavaScript関数名のみを設定できます.
構文シンボルの役割ドメイン名
エディタの各シンボルには、一連の役割ドメイン名があります.例えば、前述のJavaScript関数は、役割ドメイン
役割ドメインの名前はCSSのclassのように動作します.実際、エディタの役割ドメイン名はCSSのclassとしてシンボルのDOMノードに添付されています.
たとえば、JavaScriptコードは次のようになります.
開発ツールでは、最初の行のタグは次のようになります.
spanラベルのすべてのclass名は、役割ドメイン名です.任意の役割ドメイン名は、設定された値を指すために使用されます.
アクティブドメインセレクタ
役割ドメインセレクタを使用すると、CSSセレクタがDOM内の特定のノードを指すように、プロパティシンボルを指すことができます.いくつかの例を示します.
アクティブドメイン記述子
役割ドメイン記述子は、文字列配列をカプセル化したオブジェクトです.配列は、構文ツリーのルートノードからシンボルへのパスを記述し、パス全体のすべての役割ドメイン名を含む.
上記のJavaScriptの例では、関数名記号の役割ドメイン記述子は次のようになります.
しかし、役割ドメイン記述子を手動で生成する必要はありません.エディタから役割ドメイン記述子を取得するには、いくつかの方法があります.
これらの方法を使用して、私たちの例を振り返ってみましょう.
Atomは言語固有の設定をサポートします.Markdownファイルでソフト改行したり、Pythonでtabの幅を4に設定したりすることができます.
言語固有の設定はいくつかのもののサブセットにすぎず、「役割ドメイン設定」と呼ばれています.役割ドメイン設定は、特定の構文記号のクラスにのみ適用できます.たとえば、Rubyのコメント、Markdownのコードセグメント、またはJavaScript関数名のみを設定できます.
構文シンボルの役割ドメイン名
エディタの各シンボルには、一連の役割ドメイン名があります.例えば、前述のJavaScript関数は、役割ドメイン
function
およびname
を有することができる.1つの左かっこは、punctuation
、parameters
、およびbegin
の役割ドメインを有することができる.役割ドメインの名前はCSSのclassのように動作します.実際、エディタの役割ドメイン名はCSSのclassとしてシンボルのDOMノードに添付されています.
たとえば、JavaScriptコードは次のようになります.
function functionName() {
console.log('Log it out');
}
開発ツールでは、最初の行のタグは次のようになります.
spanラベルのすべてのclass名は、役割ドメイン名です.任意の役割ドメイン名は、設定された値を指すために使用されます.
アクティブドメインセレクタ
役割ドメインセレクタを使用すると、CSSセレクタがDOM内の特定のノードを指すように、プロパティシンボルを指すことができます.いくつかの例を示します.
'.source.js' # selects all javascript tokens
'.source.js .function.name' # selects all javascript function names
'.function.name' # selects all function names in any language
Config::set
は、scopeSelector
を受け入れる.JavaScript関数名を設定する場合は、js関数名のscopeSelector
を指定できます.atom.config.set('.source.js .function.name', 'my-package.my-setting', 'special value')
アクティブドメイン記述子
役割ドメイン記述子は、文字列配列をカプセル化したオブジェクトです.配列は、構文ツリーのルートノードからシンボルへのパスを記述し、パス全体のすべての役割ドメイン名を含む.
上記のJavaScriptの例では、関数名記号の役割ドメイン記述子は次のようになります.
['source.js', 'meta.function.js', 'entity.name.function.js']
Config::get
は、JavaScript関数名の設定から値を取得できるscopeDescriptor
を受け入れます.scopeDescriptor = ['source.js', 'meta.function.js', 'entity.name.function.js']
value = atom.config.get(scopeDescriptor, 'my-package.my-setting')
しかし、役割ドメイン記述子を手動で生成する必要はありません.エディタから役割ドメイン記述子を取得するには、いくつかの方法があります.
Editor::getRootScopeDescriptor
言語の記述子、例えば[".source.js"]
を取得する.Editor::scopeDescriptorForBufferPosition
バッファ内の特定の位置の記述子を取得する.Cursor::getScopeDescriptor
カーソルの記述子を取得します.たとえば、カーソルが例のメソッド名の上にある場合、["source.js", "meta.function.js", "entity.name.function.js"]
が返されます.これらの方法を使用して、私たちの例を振り返ってみましょう.
editor = atom.workspace.getActiveTextEditor()
cursor = editor.getLastCursor()
valueAtCursor = atom.config.get(cursor.getScopeDescriptor(), 'my-package.my-setting')
valueForLanguage = atom.config.get(editor.getRootScopeDescriptor(), 'my-package.my-setting')