当前位置: 首页 > news >正文

Swift采用语言服务器协议

苹果的Swift团队宣布,他们将为Swift提供语言服务器协议(LSP)支持。这将为开发者提供在支持LSP的任何编辑器中使用Swift的可能性,并获得代码补全、语法高亮等功能。

除了代码补全和语法高亮之外,兼容LSP语言服务的Swift还将支持跨C/C++/ObjC源码的跨语言索引,从而实现转到定义、调用层次、搜索符号和重构功能。苹果的团队计划将Xcode引入新的语言服务,并对协议进行扩展,以支持LSP中不包含的Xcode编辑功能。

根据目前的计划,Swift LSP服务将使用SourceKit,并将其与Clangd集成,后者是一个基于Clang的语言服务器协议开源实现。GitHub上提供了Swift的语言服务器协议实现。尽管如此,它尚处于早期开发阶段,大多数更高级的特性还没有提供。

Swift LSP服务的其中一个好处是,它将提高Swift在Linux上的可用性,从而可能会改善该语言在苹果生态系统之外的采用。此外,作为将LSP引入Xcode的附带效果,Xcode可以包括对其他语言的支持,如C#、Rust等等,也包括一些理论上Xcode已经支持的语言,如XML、JSON等。不过,使Xcode兼容LSP目前并不是团队的重点。

语言服务器协议最初是微软开发的,作为Visual Studio Code用于与其他语言服务通信的协议。2016年,微软开源了LSP。LSP带来的最大好处是语言服务可以跨兼容LSP的编辑器重用。这大大减少了语言团队为使各种编辑器充分支持其语言所需的工作量,因为他们只需要实现一个兼容LSP的语言服务器,而该服务器可以在任何兼容LSP的编辑器中使用。

目前,有超过70个兼容LSP的语言服务器,许多主流的编程工具也支持LSP,包括Eclipse、emacs、GNOME Builder、Atom、vim、Visual Studio和Visual Studio Code。

查看英文原文:Swift Adopts the Language Server Protocol

相关文章:

  • 分页汇总从未如此简单
  • Unity笔记集_序
  • 安全和取证Linux发行版Kali Linux 2018.4 发布
  • JS处理数据四舍五入,tofixed与round的区别
  • 实用的vue插件大汇总
  • 【Oracle学习笔记】游标
  • Zilliqa 的设计构思 第3部分:使共识更有效
  • MMS-A01型三轴有线加速度传感器
  • 八年!性能提升10倍,阿里云HBase 2.0首发商用
  • Effective_STL 学习笔记(二十九) 需要一个一个字符输入时考虑使用 istreambuf_iterator...
  • HashMap源码解析
  • Linux文件类型
  • SSM框架面试题及答案整理
  • 笔记整理2
  • .NET处理HTTP请求
  • [数据结构]链表的实现在PHP中
  • “大数据应用场景”之隔壁老王(连载四)
  • 77. Combinations
  • canvas 绘制双线技巧
  • Docker容器管理
  • FastReport在线报表设计器工作原理
  • Git初体验
  • JavaScript新鲜事·第5期
  • Java-详解HashMap
  • Java知识点总结(JavaIO-打印流)
  • Joomla 2.x, 3.x useful code cheatsheet
  • php中curl和soap方式请求服务超时问题
  • Quartz初级教程
  • 给初学者:JavaScript 中数组操作注意点
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 回顾 Swift 多平台移植进度 #2
  • 基于游标的分页接口实现
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 事件委托的小应用
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 项目实战-Api的解决方案
  • 一个项目push到多个远程Git仓库
  • 异常机制详解
  • kubernetes资源对象--ingress
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • #Ubuntu(修改root信息)
  • #考研#计算机文化知识1(局域网及网络互联)
  • (pojstep1.3.1)1017(构造法模拟)
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (南京观海微电子)——I3C协议介绍
  • (转)视频码率,帧率和分辨率的联系与区别
  • (转)我也是一只IT小小鸟
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET Core 项目指定SDK版本
  • .NET Core引入性能分析引导优化
  • .net实现客户区延伸至至非客户区
  • /etc/fstab 只读无法修改的解决办法