Java架构-使用 Visual Studio Code 进行 Swift 开发

Visual Studio Code(VSCode)是一个来自微软的跨平台文本和源代码编辑器。它是当今最令人兴奋的开源项目之一,有数百名贡献者定期更新。VSCode 是最早支持语言服务器协议(LSP)的工具之一,后者在针对各种语言和技术提供良好的开发体验方面发挥了重要作用。

前段时间,Swift 团队宣布 SourceKit LSP 支持现在处于早期开发阶段,现在正好是时候看下这种集成如何为我们所用。

所以,我们将详细介绍在 macOS 上 Visual Studio Code 中开始使用 Swift 新增的语言服务器协议支持的过程。如果你没有试过在 Xcode 之外编写 Swift ,或者已经是一个 VSCode 用户但是 Swift 的新用户,那么这篇文章将告诉你所有你需要知道的东西。

  • Swift 对语言服务器协议的支持仍处于早期开发阶段,目前还没有提供预构建的语言服务器包(sourcekit-lsp)或 Visual Studio Code 扩展。现在,下载、构建和安装这些组件及其依赖项是一个手动过程,需要熟悉命令行(在网络连接速度合理的情况下,大约需要 15 分钟)。

  • 当 LSP 支持正式发布时,所有配置会简单许多。

步骤 0:安装 Xcode

如果你的机器上已经安装了 Xcode,打开终端应用,运行以下命令:

选择 “Get Xcode” 按钮,继续从应用商店安装。

步骤 1:安装 Visual Studio Code

下载 Visual Studio Code并安装到系统应用程序文件夹。打开应用程序,按照说明从命令行启动。为了稍后安装 SourceKit-LSP 扩展,需要使 code 命令可以从 $PATH 访问。

  • Electron应用有大而缓慢的名声,但不要因为这而放弃尝试 VSCode——它的性能和内存占用堪比本地应用。

步骤 2:安装最新版的 Swift 工具链

访问Swift.org并下载最新的主干开发快照(在撰写本文时,最新的是 2018 年 11 月 16 日的快照)。下载完成后,运行软件包安装 Xcode 工具链。要启用它,打开 Xcode,选择“Xcode > 首选项”菜单项,导航到“组件”并选择“Swift 开发快照”。

步骤 3:安装 Node 和 NPM

VSCode 扩展都是使用 JavaScript/TypeScript 编写的。如果你还没做好 JS 开发准备,那么你可以借助Homebrew使用下列命令下载 Node(浏览器之外的一个 JavaScript 运行时)和 npm(Node 包管理器),或者按照说明手动下载:

要验证是否安装成功,运行下面的命令:

步骤 4:构建并安装 SourceKit-LSP

在准备好所有依赖项之后,我们现在准备好开始最吸引人的步骤了。从命令行克隆sourcekit-lsp 库,导航到生成的目录,构建 Swift 项目。

如果成功,则可以从隐藏的.build / debug 目录中找到完整的二进制文件。将该二进制文件移动到 $ PATH 中的标准目录下,比如 /usr/local/bin 或 /usr/bin。

运行 sourcekit-lsp 命令,看下一切是否都按预期工作:

这个命令启动一个新的语言服务器进程,但是,如果它没有向 STDOUT 提供任何反馈,不必担心,这意味着它可以正常工作。通过 ^C 退出这个过程。

步骤 5:构建并安装 VS Code 的 SourceKit-LSP 扩展

现在,你的 Swift 语言服务器已经可以使用,最后一步是构建并安装 Visual Studio Code 扩展,以便可以与它通信。

从前面步骤中的 sourcekit-lsp 目录导航到 Editors/vscode 目录,使用 npm 构建扩展,并使用 code 命令安装它:

现在启动(或重新启动)VSCode,并打开一个 Swift 项目,就像下面这样,体验 Swift 语言服务器协议所提供的功能的早期预览。

  • 要得到在 VSCode 中开发 Swift 的完整体验,我们还建议你检出Swift 语言扩展(实现语法高亮,在 LSP 支持这项功能之前)和Swift Lint 扩展(实时惯用法诊断)。

现在,你已经有了 Xcode 外一流的 Swift 开发体验。目前,语言服务器协议 Swift 支持仅限于代码补全、快速帮助、诊断、转到符号定义、查找引用。但是,对于这个项目的未来,我们还是无比兴奋,因为它意味着Swift 在苹果生态系统之外的应用前景

本文使用了 Swift 4.2。

希望此文能帮到大家的同时,也听听大家的观点。欢迎留言讨论,加关注,分享你的高见持续更新

我本人邀约各大BATJ架构大牛共创Spring Cloud构建微服务架构的交流社区。 (群号:547793198)欢迎各路架构师、开发者,学习与交流使用Spring Cloud诸多强大组件的实战经验。

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!

合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代

  • To-陌霖Java架构

分享互联网最新文章 关注互联网最新发展

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值