最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

使用 Visual Studio Code 进行 Swift 开发

  • 2018-11-21
  • 本文字数:1720 字

    阅读完需:约 6 分钟

使用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,打开终端应用,运行以下命令:


$ xcode-select --install
复制代码


运行这个命令会弹出一个系统提示。



选择 “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 包管理器),或者按照说明手动下载


$ brew install node
复制代码


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


$ npm --version6.4.1
复制代码

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

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


$ git clone https://github.com/apple/sourcekit-lsp.git$ cd sourcekit-lsp$ swift build
复制代码


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


$ mv .build/debug/sourcekit-lsp /usr/local/bin
复制代码


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


$ sourcekit-lsp
复制代码


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

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

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


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


$ cd Editors/vscode/$ npm run createDevPackage$ code --install-extension out/sourcekit-lsp-vscode-dev.vsix
复制代码


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



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


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


本文使用了 Swift 4.2。


查看英文原文:https://nshipster.com/vscode/


2018-11-21 11:477159
用户头像

发布了 1008 篇内容, 共 374.2 次阅读, 收获喜欢 341 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

阿里用5大核心技术+10大高级框架+200个经典案例全面解答了并发网络编程

996小迁

编程 架构 面试 笔记 亿级流量

关于Dapper实现读写分离的个人思考

yi念之间

联发科推出天玑1200,新一年的头道“5G甜点”究竟滋味如何?

脑极体

亲历者说 | 完整记录一年多考拉海购的云原生之路

阿里巴巴云原生

阿里云 容器 微服务 云原生 dubbo

Spring Boot 中集成Redis

武哥聊编程

Java redis springboot SpringBoot 2 28天写作

区块链高水平专业人才稀缺成发展掣肘

CECBC

区块链人才

数字人民币带来更好支付体验 没有网络时也能使用

CECBC

数字人民币

Nginx实现在局域网内真正的ip_hash负载均衡​

会飞的猪

认识产品经理(第一章上)

让我思考一会儿

云原生的理解

JiangX

容器 云原生 数字化转型 数字化 28天写作

2020出行之变(一):自动驾驶的“跃渊”时刻

脑极体

nodejs中使用worker_threads来创建新的线程

程序那些事

多线程 nodejs 并发控制 程序那些事 子线程

Soul网关源码阅读(十)自定义简单插件编写

Java 源码阅读 网关

35+的测试人都去哪儿了?所谓“青春饭”真的只是在贩卖焦虑吗?

程序员阿沐

编程 程序员 软件测试 教程 测试工程师

中金数据集团与腾讯云合力拓展信息安全、区块链业务领域

CECBC

区块链产业

区块链交易所软件开发|区块链交易所APP系统开发

系统开发

为什么Java程序会执行一段时间后跑的更快?

Java架构师迁哥

Seata RPC 模块的重构之路

阿里巴巴云原生

阿里云 开源 云原生 RPC seata

虚言妙诀终虚见,面试躬行是致知,Python技术面试策略与技巧实战记录

刘悦的技术博客

Python 面试

大数据知识专栏 - MapReduce 的 Reduce端Join

小马哥

大数据 hadoop mapreduce 七日更

讨论:Service层的接口是不是多此一举?

xcbeyond

Java 接口管理 28天写作

重学JS | 玩转File API

梁龙先森

面试 大前端 编程语言 28天写作

朋友问他是否该跳槽了?我是这么跟他说的

田维常

面试

认识产品经理(下)

让我思考一会儿

TARS 染色日志|收集记录特定日志

TARS基金会

微服务 运维 日志 日志分析 TARS

《认识产品经理》课后总结

DB

产品经理训练营

听了微信创始人张小龙的演讲,更加坚定Filecoin的光辉未来

时空云

分布式存储 IPFS Filecoin

Dubbo源码解析(1)-整体框架介绍

冰三郎

源码分析 dubbo RPC

HTML(五)——建立表格

程序员的时光

程序员 大前端 七日更 28天写作

1121212

熙羽1

干货|更通用的P2P网络协议栈——Libp2p

QTech

IPFS Libp2p

使用Visual Studio Code进行Swift开发_移动_Mattt_InfoQ精选文章