在 macOS 中使用 Visual Studio Code(VSCode)開發(fā) Swift

原文:Swift Development with Visual Studio Code

Visual Studio CodeVSCode)是一款微軟推出的跨平臺(tái)代碼編輯器,并且有數(shù)百人定期更新維護(hù)的杰出的開源項(xiàng)目缀旁。VSCode 是最早對(duì) Language Server Protocol (LSP) 進(jìn)行支持的開發(fā)工具赏迟,并且在不同的語言技術(shù)中也提供了杰出的開發(fā)體驗(yàn)趋翻。

同此前宣布的目前已經(jīng)發(fā)布的 Xcode逗余,現(xiàn)在是一個(gè)很好的時(shí)機(jī)來將這個(gè)工具集成到自己的開發(fā)工作中蒿赢。

今天,我們來和大家分享如何在 macOS 環(huán)境下使用 VSCode 開發(fā) Swift,如果你還沒有嘗試過在 Xcode 以外編寫 Swift肄扎,或者已經(jīng)是一個(gè) VSCode 用戶拦赠,再或者完全是一個(gè) Swift 初學(xué)者沪羔,這篇文章都會(huì)告訴你如何所有需要的內(nèi)容。

0 步:安裝 Xcode

如果你還沒有安裝 Xcode象浑,打開 Terminal 工具運(yùn)行如下命令:

$ xcode-select --install

運(yùn)行這個(gè)命令將會(huì)觸發(fā)一個(gè)如下的系統(tǒng)提示:


獲取 Xcode

點(diǎn)擊 Get Xcode 將繼續(xù)在商店中進(jìn)行安裝蔫饰。

第 1 步:安裝 Visual Studio Code

下載 Visual Studio Code 并安裝在你的 Application 目錄中,打開應(yīng)用并且按照文章配置命令行啟動(dòng)愉豺。不久你將在安裝 SourceKit-LSP 擴(kuò)展時(shí)篓吁,將會(huì)需要使用 code 命令訪問 $PATH路徑。

Electron 應(yīng)用通常都會(huì)很大且運(yùn)行緩慢蚪拦,但也不要因?yàn)檫@個(gè)原因讓你放棄嘗試 VSCode杖剪,它的性能和內(nèi)存占用堪比一個(gè) mac 原生應(yīng)用。

第 2 步驰贷,安裝最新的 Swift 工具鏈

如果你安裝了 Xcode 11.4 或者之后的版本盛嘿,可以跳過該步,因?yàn)樗J(rèn)包含了 sourcekit-lsp 工具鏈
如果你的 Xcode 11.4 還是 Beta 版本括袒,確保使用 xcode-select 選擇相應(yīng)的工具鏈

$ sudo xcode-select -switch /Applications/Xcode-beta.app/

訪問 Swift.org 并下載最新的 trunk development snapshot 次兆,下載完成后,運(yùn)行和安裝 Xcode 工具鏈锹锰。打開 Xcode芥炭,選擇 Xcode > Preferences…” 菜單(?,)導(dǎo)航到 “ Components ”并且選擇 “ Swift Development Snapshot ”

你可以通過運(yùn)行如下 sourcekit-lsp 命令,確保所有安裝和預(yù)期一致恃慧。

$ xcrun sourcekit-lsp

這個(gè)命令會(huì)啟動(dòng)一個(gè)新的語言服務(wù)器進(jìn)程,但是不要擔(dān)心园蝠,如果它不提供任何反饋輸出—這意味著已經(jīng)如我們的預(yù)期安裝成功了。退出進(jìn)程 ETX 信號(hào)(^ c)痢士。

第 3 步:安裝 Node 和 NPM

VSCode 擴(kuò)展使用 JavaScript / TypeScript 編寫的彪薛,如果你沒有配置 JS 開發(fā)環(huán)境,可以通過使用 HomeBrew 相關(guān)命令安裝 Node(一種瀏覽器外的 JavaScript 運(yùn)行時(shí))和 NPM(Node 的包管理器)怠蹂,或者按照教程手動(dòng)安裝

$ brew install node

通過如下命令驗(yàn)證安裝成功

$ npm --version
6.13.4

4 步:為 Visual Studio Code 構(gòu)建和安裝 SourceKit-LSP 擴(kuò)展

通過命令行陪汽,克隆 sourcekit-lsp repository 并且導(dǎo)航到 Editors/vscode 目錄下,使用 npm 來構(gòu)建擴(kuò)展褥蚯,然后使用 code 命令進(jìn)行安裝:

$ git clone https://github.com/apple/sourcekit-lsp.git
$ cd sourcekit-lsp/Editors/vscode/
$ npm run createDevPackage
$ code --install-extension out/sourcekit-lsp-vscode-dev.vsix

然后挚冤,啟動(dòng)(或重啟)VSCode 并且打開一個(gè) Swift 項(xiàng)目,例如這個(gè)項(xiàng)目赞庶,并且測(cè)試 Swift 的語言服務(wù)協(xié)議训挡。

為了在 VSCode 中獲取完整的 Swift 開發(fā)體驗(yàn)澳骤,我們也推薦你使用 Swift Lint extension (一個(gè) Swift 實(shí)時(shí)樣式和規(guī)范診斷插件)

恭喜,你已經(jīng)得到了一個(gè)在 Xcode 之外創(chuàng)建第一個(gè) Swift 類的開發(fā)體驗(yàn)±奖。現(xiàn)在为肮,Swift 語言服務(wù)協(xié)議支持還有一些局限,但是我們依然對(duì)這個(gè)這個(gè)項(xiàng)目的功能非常興奮肤京,這意味著 Swift 將在不久之后會(huì)脫離蘋果的生態(tài)系統(tǒng)颊艳。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市忘分,隨后出現(xiàn)的幾起案子棋枕,更是在濱河造成了極大的恐慌,老刑警劉巖妒峦,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件重斑,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡肯骇,警方通過查閱死者的電腦和手機(jī)窥浪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笛丙,“玉大人漾脂,你說我怎么就攤上這事∨哐欤” “怎么了符相?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蠢琳。 經(jīng)常有香客問我啊终,道長(zhǎng),這世上最難降的妖魔是什么傲须? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任蓝牲,我火速辦了婚禮,結(jié)果婚禮上泰讽,老公的妹妹穿的比我還像新娘例衍。我一直安慰自己,他們只是感情好已卸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布佛玄。 她就那樣靜靜地躺著,像睡著了一般累澡。 火紅的嫁衣襯著肌膚如雪梦抢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天愧哟,我揣著相機(jī)與錄音奥吩,去河邊找鬼哼蛆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛霞赫,可吹牛的內(nèi)容都是我干的腮介。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼端衰,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼叠洗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起旅东,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤灭抑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后玉锌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體名挥,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡疟羹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年主守,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片榄融。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡参淫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出愧杯,到底是詐尸還是另有隱情涎才,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布力九,位于F島的核電站耍铜,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏跌前。R本人自食惡果不足惜棕兼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抵乓。 院中可真熱鬧伴挚,春花似錦、人聲如沸灾炭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜈出。三九已至田弥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間铡原,已是汗流浹背皱蹦。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來泰國打工煤杀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沪哺。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓沈自,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親辜妓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子枯途,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容