9月12號(hào),Atom官網(wǎng)宣布GitHub與Facebook合作聯(lián)合推出Atom IDE,將IDE風(fēng)格的功能帶到了Atom上。
Atom IDE提供了更加智能的自動(dòng)完成特性和多種代碼導(dǎo)航特性,如輪廓視圖(outline view)、跳轉(zhuǎn)(go to definition)、查找引用(find all references)等。除此之外,還有其他一些有用的功能,如懸停顯示(hover to reveal)、錯(cuò)誤和警告(診斷信息)和文檔格式化。
初始版本的Atom IDE支持TypeScript、Flow、JavaScript、Java、C#和PHP,它利用強(qiáng)大的語(yǔ)言服務(wù)器為代碼和項(xiàng)目提供深度的語(yǔ)法分析。很多公司目前都采用了語(yǔ)言服務(wù)器協(xié)議(language server protocol),如微軟、Eclipse、SourceGraph、Palantir、Red Hat、Facebook和GitHub。
目前建議在Atom Beta 1.21上使用Atom IDE,因?yàn)檫@個(gè)版本的Atom能夠確保底層的語(yǔ)言服務(wù)器可以正常運(yùn)行。
要使用Atom IDE至少需要安裝兩個(gè)包——一個(gè)是用戶界面,一個(gè)是用于支持編程語(yǔ)言的包。
打開Atom的“Install Packages”對(duì)話框(Settings View: Install Packages and Themes)。搜索并安裝atom-ide-ui。安裝用于支持編程語(yǔ)言的包(如ide-typescript)。目前支持的語(yǔ)言如下所示。TypeScript和JavaScript(ide-typescript)
ide-typescript由SourceGraph團(tuán)隊(duì)開發(fā),利用了微軟的TypeScript語(yǔ)言服務(wù)器。這個(gè)包也支持JavaScript,提供了自動(dòng)完成、文檔概覽、診斷和錯(cuò)誤提示等功能。
Flow(ide-flowtype)
Facebook發(fā)布的ide-flowtype將Flow的類型注解系統(tǒng)帶到了Atom上。
C#(ide-csharp)
OmniSharp是C#最早的語(yǔ)言服務(wù)器之一,得益于OmniSharp,ide-csharp才能將各種IDE風(fēng)格的特性帶到Atom上。
Java(ide-java)
ide-java需要安裝Java 8運(yùn)行時(shí)后才能使用。
PHP(ide-php)
ide-php使用了FelixFBecker的PHP語(yǔ)言服務(wù)器,為PHP提供支持(要求安裝PHP 7運(yùn)行時(shí))。
這些IDE包的功能取決于底層的語(yǔ)言服務(wù)器,它們會(huì)在打開相應(yīng)的文件后被激活。以下列舉了其中的一些功能。
自動(dòng)完成
所有的IDE包都支持自動(dòng)完成。不過出于性能方面的考慮,有些包要求用戶手動(dòng)觸發(fā)自動(dòng)完成功能(比如同時(shí)按下Ctrl鍵和空格鍵)。
診斷
Atom窗口的左下角有一個(gè)紅色的感嘆號(hào)和一個(gè)黃色的三角形,通過點(diǎn)擊這兩個(gè)符號(hào)就可以打開診斷信息面板,從面板上可以看到錯(cuò)誤信息和警告信息。點(diǎn)擊這些信息可以直接跳到有問題的代碼處。在編輯器里,行數(shù)左邊也會(huì)有相應(yīng)的提示。
查找所有引用
把鼠標(biāo)指針停放在你想要查看的類或變量上,然后通過右鍵菜單或命令面板的“Find References: Activate”命令來查找所有引用了這個(gè)類或變量的地方。
格式化
有些包提供了重新格式化文檔的功能,只要從命令面板里選擇“Code Format: Format Code”即可。
跳轉(zhuǎn)
按下Ctrl鍵,同時(shí)在類或變量上單擊鼠標(biāo)左鍵,就可以跳轉(zhuǎn)至定義類或變量的地方。
懸停
將鼠標(biāo)指針懸停在某一個(gè)類型或?qū)ο笊暇涂梢钥吹礁嗯c之相關(guān)的信息。
輪廓視圖
有些包會(huì)將當(dāng)前文檔的結(jié)構(gòu)顯示成樹狀,這樣就可以直接查找并跳轉(zhuǎn)至相應(yīng)的代碼位置。輪廓視圖可以通過View菜單或Outline View: Toggle命令來打開和隱藏。
引用高亮
有些包可以讓你看到當(dāng)前變量或?qū)ο蟮闹苯右茫灰獙⑹髽?biāo)指針放在變量上,引用該變量的地方就會(huì)高亮顯示。
未來的計(jì)劃
Atom IDE的旅程也才剛剛開始,希望通過社區(qū)的努力能夠支持更多的語(yǔ)言(如Rust、Go、Python等),也希望將來可以直接運(yùn)行和編輯應(yīng)用程序,讓Atom IDE成為真正的IDE。
如果有新的語(yǔ)言服務(wù)器出現(xiàn),可以使用atom-languageclient這個(gè)npm包來創(chuàng)建支持該語(yǔ)言的Atom IDE包。