W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Atom支持語言特定的設(shè)置。你可以在Markdown文件中軟換行,或者在Python中把tab的寬度設(shè)置為4。
語言特定的設(shè)置只是一些東西的子集,我們把它叫做“作用域設(shè)置”。作用域設(shè)置可以只作用于一類特定的語法符號(hào)。比如你可以僅僅對(duì)Ruby的注釋,Markdown中的代碼段,或者JavaScript函數(shù)名稱進(jìn)行設(shè)置。
編輯器的每個(gè)符號(hào)都有一系列的作用域名稱。例如,前面提到的JavaScript函數(shù)可能擁有作用域function
和name
。一個(gè)左括號(hào)可能擁有punctuation
、parameters
和begin
作用域。
作用域的名稱就像CSS中的class一樣工作。事實(shí)上,編輯器中的作用域名稱作為CSS的class附加到符號(hào)的DOM節(jié)點(diǎn)。
比如這段JavaScript代碼:
function functionName() {
console.log('Log it out');
}
在開發(fā)工具中,第一行的標(biāo)記就像這樣:
span標(biāo)簽上的所有class名稱都是作用域名稱。任何作用域名稱都用于指向一個(gè)設(shè)置的值。
作用域選擇器允許你指向特性符號(hào),就像CSS選擇器指向DOM中特定的節(jié)點(diǎn)。這里是一些例子:
'.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
接受一個(gè)scopeSelector
。如果你想要對(duì)JavaScript 函數(shù)名稱進(jìn)行設(shè)置,你可以向它提供一個(gè)js函數(shù)名稱的scopeSelector
:
atom.config.set('.source.js .function.name', 'my-package.my-setting', 'special value')
作用域描述符是一個(gè)對(duì)象,它封裝了一個(gè)字符串?dāng)?shù)組。數(shù)組描述了從語法樹根節(jié)點(diǎn)到符號(hào)的路徑,包含整個(gè)路徑的所有作用域名稱。
在上面的JavaScript例子中,函數(shù)名稱符號(hào)的作用域描述符應(yīng)該為:
['source.js', 'meta.function.js', 'entity.name.function.js']
Config::get
接受一個(gè)scopeDescriptor
,你可以從作用在JavaScript函數(shù)名稱的設(shè)置中獲取值,通過:
scopeDescriptor = ['source.js', 'meta.function.js', 'entity.name.function.js']
value = atom.config.get(scopeDescriptor, 'my-package.my-setting')
但是你并不需要手動(dòng)生成作用域描述符。有一些可用的方法來從編輯器獲取作用域描述符:
Editor::getRootScopeDescriptor
獲取語言的描述符,例如[".source.js"]
。Editor::scopeDescriptorForBufferPosition
獲取緩沖區(qū)中特定位置的描述符。Cursor::getScopeDescriptor
獲取光標(biāo)處的描述符。例如,如果光標(biāo)在例子中的方法名稱上面,會(huì)返回["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')
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: