現(xiàn)在是時候來介紹在這一Hackable的編輯器中,真正“Hackable”的部分了。像我們在整個第二章中看到的那樣,Atom中很大一部分都由一大堆包組成。如果你想向Atom中添加一些功能,你必須要訪問和Atom核心特性相同的API和工具。從樹視圖、命令面板到查找替換功能,甚至Atom的絕大多數(shù)核心特性都是以包的形式實現(xiàn)的。
最開始,我們假設(shè)在某種程度上,你只知道很少的事情。由于Atom完全采用web技術(shù)實現(xiàn),我們必須假設(shè)你知道CoffeeScript和Less的任何事情,它們是Javascript和CSS的預處理器。
如果你不了解CoffeeScript,但是熟悉JavaScript,就應該沒有太大問題。下面是一個CoffeeScript的簡單示例:
MyPackageView = require './my-package-view'
module.exports =
myPackageView: null
activate: (state) ->
@myPackageView = new MyPackageView(state.myPackageViewState)
deactivate: ->
@myPackageView.destroy()
serialize: ->
myPackageViewState: @myPackageView.serialize()
我們會展示一些這樣的例子,而這就是這門語言的樣子。
在Atom中,你能用CoffeeScript做的任何事情都可以用JavaScript來做,但是由于大多數(shù)社區(qū)都用CoffeeScript,你可能會想用它來編寫你的包。這會有助于你從開源社區(qū)中獲取代碼,并且在許多實例中編寫更簡單的代碼。
你可以在coffeescript.org上面復習CoffeeScript。
Less是源于CSS的簡化轉(zhuǎn)換,它向CSS中添加了一些有用的東西,比如變量和函數(shù)。你可以在lesscss.org上面復習Less的技巧。但是我們對Less的使用并不涉及到這本書中太復雜的部分,所以你只要懂得CSS的基本知識就夠了。
更多建議: