点击上方蓝色字体,选择“标星公众号”

优质文章,第一时间送达

关注公众号后台回复paymall获取实战项目资料+视频

作者:larva-zhangwww.cnblogs.com/larva-zhh/p/13723530.html

近期,公司推行正版化,本人使用的是JetBrains教育版,是不允许进行商业开发的,因此开启了艰难的备用IDE选型之路。最终,我选定了轻量级的Visual Studio Code(以下简称VS Code)。

各种IDE选型比较的过程就不赘述了,Eclipse、NetBeans、Srping Tools Suite等等,只能说青菜萝卜各有所爱。

插件淘沙

众所周知,VS Code是一款轻量级的通用编辑器,和Eclipse一样全靠海量的插件扩展,网上各类插件推荐文章又都是面向VS Code的最大IDE用户群-前端开发人员的。

无奈之下只能逐一试验,又开始了一轮插件淘沙的过程,最终筛选出几十款插件,详见https://github.com/larva-zhang/vscode-java-dev-tools-pack/blob/master/README.md。

定制Extension Pack

插件是筛选出来了,但是几十款插件总不能每次都一个一个去点击安装吧,而且也难以维护。

幸而VS Code自身提供了一种叫Extension Pack的插件,这种插件的目的就是为了汇集一批插件到一起而设计的,安装了一个Extension Pack就会自动安装Pack内的全部插件。

VS Code提供了一套nodejs工具用于辅助开发者创建扩展,同时https://code.visualstudio.com/api中提供了简单明了的文档说明以及丰富的samples,samples包括Command、Color Theme、Tree View等等,本文仅做Extension Pack的示例。

环境准备

环境依赖 nodejs 以及 Git,以MacOS为例,通过Homebrew安装:

brew install node git

然后通过 npm 安装Yeoman和VS Code Extension Generator:

npm install -g yo generator-code

工程初始化

调用Yeoman生成新的Extension Pack

$ yo code_-----_     ╭──────────────────────────╮|       |    │   Welcome to the Visual  │|--(o)--|    │   Studio Code Extension  │`---------´   │        generator!        │( _´U`_ )    ╰──────────────────────────╯/___A___\   /|  ~  |__'.___.'__´   `  |° ´ Y `? What type of extension do you want to create?New Extension (TypeScript)New Extension (JavaScript)New Color ThemeNew Language SupportNew Code SnippetsNew Keymap
❯ New Extension PackNew Language Pack (Localization)

回车后会提问是否要将当前已安装的扩展安装到新的Extension Pack中,选择Yes会报错

? What type of extension do you want to create? New Extension Pack
? Add the currently installed extensions to the extension pack? Yes
Error codeCommand failed: code --list-extensions
/bin/sh: code: command not found

这是因为我的VS Code并不是通过命令行安装的,如果要使用code命令就需要通过命令行安装VS Code,然后重新执行yo code

MacOS上通过Homebrew安装vs code:

brew cask install visual-studio-code

当然也可以选择不自动安装已有扩展,同样可以顺利进行后面的配置。

? What type of extension do you want to create? New Extension Pack
? Add the currently installed extensions to the extension pack? No
? What's the name of your extension? vscode-java-dev-tools-pack
? What's the identifier of your extension? vscode-java-dev-tools-pack
? What's the description of your extension? Some Java develop support tools extension pack.
? Initialize a git repository? Yescreate vscode-java-dev-tools-pack/.vscode/launch.jsoncreate vscode-java-dev-tools-pack/package.jsoncreate vscode-java-dev-tools-pack/vsc-extension-quickstart.mdcreate vscode-java-dev-tools-pack/README.mdcreate vscode-java-dev-tools-pack/CHANGELOG.mdcreate vscode-java-dev-tools-pack/.vscodeignorecreate vscode-java-dev-tools-pack/.gitignorecreate vscode-java-dev-tools-pack/.gitattributesYour extension vscode-java-dev-tools-pack has been created!To start editing with Visual Studio Code, use the following commands:cd vscode-java-dev-tools-packcode .Open vsc-extension-quickstart.md inside the new extension for further instructions
on how to modify, test and publish your extension.For more information, also visit http://code.visualstudio.com and follow us @code.

通过Yeoman工具,我们配置了nameidentifierdescription,并且工具自动生成了一个本地git仓库,工程目录结构如下:

$ tree -a -L 1
.
├── .git
├── .gitattributes
├── .gitignore
├── .vscode
├── .vscodeignore
├── CHANGELOG.md
├── README.md
├── package.json
└── vsc-extension-quickstart.md
  • CHANGELOG.md 发布变更记录,在Visutal Studio Code Marketplace的详情页中有该文件的链接。

  • README.md 在Visutal Studio Code Marketplace的扩展详情,作用类似GitHub Page。

  • package.json 扩展的 manifest文件,定义了扩展的相关属性。

  • vsc-extension-quickstart.md 针对生成的工程中文件的简易说明文档。

package.json

作为Extension Pack类型的VS Code 扩展来说,只需要维护package.json就行,package.json中的各项字段可以参考VS Code的官方文档https://code.visualstudio.com/api/references/extension-manifest。

也可以参考https://github.com/larva-zhang/vscode-java-dev-tools-pack/blob/master/package.json,这是一个比较完整的Demo。

package & publish

微软关于插件打包发布可以参考文档https://code.visualstudio.com/api/working-with-extensions/publishing-extension。

微软提供了vsce这款命令行工具方便开发者进行打包和发布:

npm install -g vsce

安装完成后,cd到工程目录下,进行打包生成.vsix文件

$ vsce packageDONE  Packaged: /Users/larva-zhang/vscode-java-dev-tools-pack/vscode-java-dev-tools-pack-0.0.1.vsix (7 files, 16.7KB)

注意版本号,是根据package.json文件中的version来生成的,version必须是major.minor.stage的格式

package成功后,需要去vs code创建一个publisher,推荐通过浏览器访问https://marketplace.visualstudio.com/manage创建,比较直观。

也可以通过vsce命令行创建,详见https://code.visualstudio.com/api/working-with-extensions/publishing-extension#create-a-publisher

有了publisher后就能进行publish了,还是在management page页面,通过上传.vsix文件的方式即可,当vs code校验通过后就会发布到Visual Studio Code Marketplace。

publish同样可以通过vsce命令行进行,详见https://code.visualstudio.com/api/working-with-extensions/publishing-extension#log-in-to-a-publisher

总结

插件安装完成后还是需要逐一去配置调试的,这个没法自动化,毕竟各人喜好不同,不过大多数插件都是开箱即用的。

作为开源的轻量级通用编辑器,VS Code的Java开发体验确实不如JetBrains,但和Eclipse一样胜在开源免费,所以还是可堪一用的。

有热门推荐????
抖音服务器带宽有多大,才能供上亿人同时刷?
外包干三年,必废!又一神器,输入网址,点击下一步,瞬间克隆一个网站...!“我的开源项目被科技巨头拿去做产品了,注释中连名字都被删掉了”老程序员为什么从不使用 Java 自带的序列化?10个解放双手的 IDEA 插件,这些代码千万别再用手写了,直接生成!如何优雅处理重复请求/并发请求?国产最强开源 API 网关,没有之一,不接受任何反驳!超全面的权限系统设计方案!(万能通用)用Nginx禁止国外IP访问我的网站...点击阅读原文,前往学习SpringCloud实战项目

牛逼!你竟然把VSCode玩成了IDEA的效果,有点哇塞。。。相关推荐

  1. 厉害,竟然把VSCode玩成了IDEA的效果,有点哇塞

    近期,公司推行正版化,本人使用的是JetBrains教育版,是不允许进行商业开发的,因此开启了艰难的备用IDE选型之路.最终,我选定了轻量级的Visual Studio Code(以下简称VS Cod ...

  2. 竟然有人把VSCode玩成了IDEA的效果,有点东西

    近期,公司推行正版化,本人使用的是JetBrains教育版,是不允许进行商业开发的,因此开启了艰难的备用IDE选型之路.最终,我选定了轻量级的Visual Studio Code(以下简称VS Cod ...

  3. 这些用 Python 写的牛逼程序/脚本,你玩过吗?

    编译:Python开发者 - Jake_on  英文:Quora http://python.jobbole.com/85986/ 有网友在 Quora 上提问,「你用 Python 写过最牛逼的程序 ...

  4. 牛逼,竟然有人开源躺平学习资料!

    点击关注公众号,回复"1024"获取2TB学习资源! 最近「躺平」这个词火了,先看看躺平的概念吧. 网络流行词语,指年轻人出于对压抑的工作文化的失望,与其跟随社会期望坚持奋斗,不如 ...

  5. 牛逼了,一根网线发起的攻击

    点击上方"民工哥技术之路",选择"设为星标" 回复"1024"获取独家整理的学习资料! 刚上大学没多久,就遇到件头疼事. 富二代们刚来就带着 ...

  6. 牛逼哄哄的全链路监控系统!搭建起来也没有想象中的那么难啊...

    点击关注公众号,回复"1024"获取2TB学习资源! 问题背景 随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务.互联网应用构建在不同的软件模块集上 ...

  7. 牛逼! 8 幅漫画让你秒懂单点登录系统

    点击关注公众号,回复"1024"获取2TB学习资源! 我尝试用八幅漫画先让大家理解如何设计正常的用户认证系统,然后再延伸到单点登录系统. JWT 简介 JSON Web Token ...

  8. 为什么 VS Code 会这么牛逼?

    点击上方"码农突围",马上关注,每天早上8:50准时推送 真爱,请置顶或星标 来自公众号码农翻身 | 作者:李少侠 链接:zhuanlan.zhihu.com/p/35303567 ...

  9. 20个月股票投资经验全面总结,买格力电器也能亏钱,牛逼企业的股票,竟然由傻瓜在定价

    入市20个月了,最近重仓股格力电器,跌宕起伏,有点小激动. 恰逢五一,劳动人民的节日. 打算把宝贵的投资经验,详细总结下,从而尽可能提升自己的投资水平,赚更多的本金. 同时,也希望分享出来,和广大投友 ...

  10. 牛逼站是怎样炼成的?-推荐系统篇

    2019独角兽企业重金招聘Python工程师标准>>> 牛逼站是怎样炼成的?-推荐系统篇 互联网给用户带来了大量的信息,满足了用户在信息时代对信息的需求,也使得用户在面对大量信息时无 ...

最新文章

  1. linux c gcc编译报错 can not be used when making a shared object; recompile with -fPIC
  2. 解除计算机软件开发协议书,计算机软件著作权转让的协议书
  3. php soap 用户名密码,PHP SOAP客户端帮助!
  4. java 静态类 静态方法_JAVA的静态变量、静态方法、静态类
  5. 83. 删除排序链表中的重复元素 golang
  6. 前端学习(1265):接口调用axios
  7. 【C++深度剖析教程27】多态的概念与意义
  8. python标注审核_Python类型标注
  9. 23.多线程 实现的两种方式
  10. 加密软件漏洞评测系统_惠州上线软件产品登记测试企业
  11. centos7通过阿里云配置docker加速镜像
  12. Ubuntu 安装 ROS 教程
  13. 实践三 网络嗅探与协议分析
  14. AR图书,看着很美其实有点坑
  15. P2P网络与BitTorrent技术简介
  16. 微信公众平台开通业务域名
  17. 传奇游戏显示服务器连接失败,操作win7系统玩传奇世界显示连接服务器失败的详细方法...
  18. 股票:开盘价 收盘价 涨停价 跌停价
  19. 华数机器人编程语言_华数II型机器人控制系统.PDF
  20. 可口可乐公司推出全球第一款可加热饮用汽水,“可口可乐生姜+”上市

热门文章

  1. 怎么启动计算机后台打印服务,Win10系统中打印机后台服务没有启动解决方法
  2. 笔记本gtx1650最好用驱动_各型号笔记本显卡定位
  3. echarts 饼状图渐变色
  4. Windows XP支持的最大内存是多少?
  5. xp系统计算机蓝屏,Xp系统出现蓝屏代码 0x0000007b解决方法
  6. scrapy下载图片(《精通scrapy网络爬虫》第九章)
  7. python 邮件抄送是什么意思_python 获取邮件中的发件人From、收件人To、抄送人Cc...
  8. 32个FPGA开源网站
  9. 14-CompletableFuture异步编排
  10. ffmpeg - 视频裁剪