Atom是GitHub基于Electron的開源文本編輯器,它的1.13版本 為用戶和開發(fā)人員增加了許多新的特性和改進,包括一個基準(zhǔn)工具,一個“重新打開項目”菜單選項和API,以及一個自定義按鈕解析器,它可以把Chrome鍵盤事件映射為Atom風(fēng)格的按鍵。
在Atom之前,只能使用Chrome的分析工具來度量Atom代碼庫中的變更對性能有怎樣的影響。Atom 1.13版本引入了一個新的atom --benchmark 選項,使開發(fā)人員可以在他們自己的機器上運行基準(zhǔn)測試,從而比對不同Atom版本在運行同一基準(zhǔn)測試時的差異。這個基準(zhǔn)測試命令也可以在Window 下的命令行中執(zhí)行:執(zhí)行Benchmarks將執(zhí)行在benchmarks 目錄下找到的所有基準(zhǔn)測試。如果你調(diào)用atom --benchmark,將得到一個CSV格式的文本輸出;此外,Atom將在屏幕中描繪出基準(zhǔn)測試的情況。
為了能夠不必使用不常用的命令行選項就可以回到之前的編輯狀態(tài),1.13版本引入了一個新的“重新打開項目”命令及其相關(guān)的atom.historyAPI。這個新的API包括.getProjects()、.clearProjects()和.onDidChangeProjects(callback) 端點??梢允褂胏ore.reopenProjectMenuCount 定義緩存的項目名稱的個數(shù),默認(rèn)為15個。
此外,Atom 1.13版本增加了一個新的按鍵解析器API,它的目標(biāo)是解決鍵盤事件處理相關(guān)的一些缺陷,采取的方式讓你可以去定義如何去解釋按鍵,如以下代碼所示:
atom.keymaps.addKeystrokeResolver(({event}) => { if (event.code === 'KeyG' && event.altKey && event.ctrlKey) { return 'ctrl-@' }})特別是,當(dāng)輔助按鍵是用過的以及具有國際化布局時,這將有助于改進鍵盤事件的處理。
最后要說的是,Atom 1.13撤回了Shadow DOM邊界,在渲染受保護的命名空間內(nèi)的編輯器的內(nèi)容時會用到它,從而避免編輯器和該工作空間內(nèi)其他元素之間的樣式?jīng)_突。這種Shadow DOM邊界方式遇到了很多的問題,在1.13版中已經(jīng)替換為Light DOM,這種方式是由syntax-- 加類名構(gòu)成,大致格式如下:
.syntax--source.syntax--js .syntax--operator { color: #000000;}Atoms提供了一個指南,該指南描述了從已有主題或包中清除Shadow DOM樣式的步驟。這些所需做的修改不是向下兼容的,這意味著更新的主題或包將無法在Atom 1.13之前的版本中運行。
查看英文原文:Atom 1.13 Brings Benchmarks, Project History, and Keystroke Resolver API