它是Editor/IDE 与语言服务器之间的一种协议,可以让不同的Editor/IDE 方便嵌入各种程序语言,允许开发人员在最喜爱的工具中使用各种语言来编写程序
支持LSP的开发工具:Eclipse IDE、 Eclipse Theia、Atorm、Sublime Text、Emacs
4.Debug Adapter Protocol
Github(https://github.com/microsoft/debug-adapter-protocol)
DAP与LSP的目的类似,DAP把Editor/IDE与不同语言的debugger解耦,极大地方便了Editor/IDE与其他Debugger的集成
支持DAP的开发工具:Eclipse IDE、Eclipse Theia、Emacs、Vim
七、VS Code 怎么做开源的?
开源的三个阶段:
公开源代码、Issues &PRs、Planning & Design
1.开源的开发流程
VsCode不仅仅把代码开源出来,而是把整个产品的开发过程建立于开源之上。
每一年,VsCode团队都会在GitHub Wiki 发布Roadmap,列出一整年的规划图
每个月初,在产品设计阶段,VsCode团队会在GitHub Issue上会发布Iteratioin Plan,列出这个月会做的每个功能,每一个功能基本会对应一个GitHub Issue,你可以看到详细的设计以及mockup
2.开源的生态(以VsCode为例)
文档(https://github.com/microsoft/vscode/wiki)
Monaco Editor(参考前面GitHub链接)
Language Server Protocol(参考前面GitHub链接)
Debug Adapter Protocol(参考前面GitHub链接)
八、进阶
1.命令行(支持命令行打开VsCode)
命令行--高级选项(VsCode启动慢,查看插件内存使用情况)
2.玩转Git
玩转Git--合并冲突
3.打造自己的主题--颜色配置
可以自己编写颜色插件,也可以去插件市场上下载自己中意的插件。
4.快速创建属于你的Code Snippet
以我使用Idea为例,Idea中的Live Template与VsCode中的Code Snippet功能基本相同,都是将常用代码段抽取出来,通过自定义快捷键的方式调出来,减少重复编码,提高效率。
5.玩转Task,把重复的工作自动化
与WebStorm如图功能一样:
根本目的就是将常用命令抽取出来,不需要自己手动输入
6.调试--lauch.json
7.远程开发
Visual Studio Code Remote允许开发者将容器、远程计算机或Windows Subsystem for Linux 作为完整的开发环境。
在部署环境相同的操作系统上进行开发,或者使用更大或更专业的硬件
把开发环境作为沙箱,以避免影响本地计算机配置
让新手轻松上手,让每个人都保持一致的开发环境
使用原本在本地环境不可用的工具或运行时,或者管理它们的多个版本
在WSL里开发Linux应用
从多台不同的计算机访问现有的开发环境
调试在其他位置(比如客户网站或云端)运行的应用程序
九、插件
1.插件管理
a.web版插件市场
b.内置插件管理
c.命令行
2.好用的插件推荐(根据需求可自行去插件市场下载安装使用)
a.Settings Sync:轻松同步VsCode所有配置
b.Code Runner:代码一键运行,支持超过40种语言
c.GitLens:Git管理利器
d.REST Client:也许是比Postman更好的选择
e.Bracket Pair Colorizer:括号颜色高亮
f.Browser Preview:把Chrome浏览器带入VsCode中
g.LeetCode:Offer收割利器
h.Visual Studio Live Share:极大地方便了协作编程--实时共享代码编辑、跟随光标、团队调试、分享本地服务、共享终端等
i.Remote Development:基于SSH、Container或者WSL进行远程开发
3.Visual Studio Code插件开发
设计
实现
推广
维护
从设计->实现->推广->维护,仔细想来与我们平常开发自己的软件或者是公司的商业软件,套路基本上都是相似的。
a.怎样获取灵感?
从自身需求出发
Auto Close Tag:GitHub Issue
其它编辑器/IDE的热门插件
b.确定目标用户
Code Runner(例子,CodeRunner插件可使用40种编程语言):
初学者
"懒人"
多语言用户
4.有用资源
a.VsCode插件开发
(https://code.visualstudio.com/api/get-started/your-first-extension)
b.VsCode插件样例
(https://github.com/developers-youcong/vscode-extension-dev)
c.我开发的插件
(https://github.com/developers-youcong/youcongtech-blog)