Atom 配置API

2018-08-12 21:50 更新

在我們編寫了一些主題和包之后,讓我們花一些時(shí)間來深入了解一些Atom的工作方式。在這一章中,我們會(huì)更進(jìn)一步了解Atom中獨(dú)特的內(nèi)部API和系統(tǒng),甚至查看一些源碼來看一看它們是如何很好地工作的。

配置API

讀取配置

如果你想要編寫一個(gè)可配置的包,你需要通過atom.config來整體讀取配置,或者通過atom.config.get來讀取一個(gè)具有命名空間的配置鍵的當(dāng)前值。

# read a value with `config.get`
@showInvisibles() if atom.config.get "editor.showInvisibles"

或者通過atom.config.observe來跟蹤任何視圖對(duì)象產(chǎn)生的修改。

{View} = require 'space-pen'

class MyView extends View
  attached: ->
    @fontSizeObserveSubscription =
      atom.config.observe 'editor.fontSize', (newValue, {previous}) =>
        @adjustFontSize()

  detached: ->
    @fontSizeObserveSubscription.dispose()

atom.config.observe方法會(huì)使用特定鍵路徑的當(dāng)前值立即調(diào)用提供的回調(diào)函數(shù),并且以后當(dāng)這個(gè)值發(fā)生改變時(shí)也會(huì)調(diào)用。如果你只希望在下次這個(gè)值改變的時(shí)候調(diào)用回調(diào),使用atom.config.onDidChange來代替它。

訂閱(Subscription)方法會(huì)返回一個(gè)一次性的訂閱對(duì)象。注意上面的例子中,我們?nèi)绾螌⒂嗛啽4嬖?code>@fontSizeObserveSubscription實(shí)例變量中,以及視圖被分離的時(shí)候如何處理它。你可以添加多個(gè)訂閱到[CompositeDisposable](https://atom.io/docs/api/latest/CompositeDisposable)中來將它們組合到一起。當(dāng)視圖被分離的時(shí)候你可以把它處理掉。

寫入配置

雖然atom.config的數(shù)據(jù)在啟動(dòng)時(shí)才從~/.atom/config.cson加載,但你可以通過atom.config.set用編程的方式對(duì)其寫入。

# basic key update
atom.config.set("core.showInvisibles", true)

如果你通過特定鍵路徑來訪問包的配置,你也可能像將它們和你包里面的主模塊的schema關(guān)聯(lián)起來。更多schema的細(xì)節(jié)請(qǐng)閱讀配置API文檔。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)