牛逼!你竟然把VSCode玩成了IDEA的效果,有点哇塞。。。
点击上方蓝色字体,选择“标星公众号”
优质文章,第一时间送达
关注公众号后台回复pay或mall获取实战项目资料+视频
作者: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工具,我们配置了name
、identifier
、description
,并且工具自动生成了一个本地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的效果,有点哇塞。。。相关推荐
- 厉害,竟然把VSCode玩成了IDEA的效果,有点哇塞
近期,公司推行正版化,本人使用的是JetBrains教育版,是不允许进行商业开发的,因此开启了艰难的备用IDE选型之路.最终,我选定了轻量级的Visual Studio Code(以下简称VS Cod ...
- 竟然有人把VSCode玩成了IDEA的效果,有点东西
近期,公司推行正版化,本人使用的是JetBrains教育版,是不允许进行商业开发的,因此开启了艰难的备用IDE选型之路.最终,我选定了轻量级的Visual Studio Code(以下简称VS Cod ...
- 这些用 Python 写的牛逼程序/脚本,你玩过吗?
编译:Python开发者 - Jake_on 英文:Quora http://python.jobbole.com/85986/ 有网友在 Quora 上提问,「你用 Python 写过最牛逼的程序 ...
- 牛逼,竟然有人开源躺平学习资料!
点击关注公众号,回复"1024"获取2TB学习资源! 最近「躺平」这个词火了,先看看躺平的概念吧. 网络流行词语,指年轻人出于对压抑的工作文化的失望,与其跟随社会期望坚持奋斗,不如 ...
- 牛逼了,一根网线发起的攻击
点击上方"民工哥技术之路",选择"设为星标" 回复"1024"获取独家整理的学习资料! 刚上大学没多久,就遇到件头疼事. 富二代们刚来就带着 ...
- 牛逼哄哄的全链路监控系统!搭建起来也没有想象中的那么难啊...
点击关注公众号,回复"1024"获取2TB学习资源! 问题背景 随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务.互联网应用构建在不同的软件模块集上 ...
- 牛逼! 8 幅漫画让你秒懂单点登录系统
点击关注公众号,回复"1024"获取2TB学习资源! 我尝试用八幅漫画先让大家理解如何设计正常的用户认证系统,然后再延伸到单点登录系统. JWT 简介 JSON Web Token ...
- 为什么 VS Code 会这么牛逼?
点击上方"码农突围",马上关注,每天早上8:50准时推送 真爱,请置顶或星标 来自公众号码农翻身 | 作者:李少侠 链接:zhuanlan.zhihu.com/p/35303567 ...
- 20个月股票投资经验全面总结,买格力电器也能亏钱,牛逼企业的股票,竟然由傻瓜在定价
入市20个月了,最近重仓股格力电器,跌宕起伏,有点小激动. 恰逢五一,劳动人民的节日. 打算把宝贵的投资经验,详细总结下,从而尽可能提升自己的投资水平,赚更多的本金. 同时,也希望分享出来,和广大投友 ...
- 牛逼站是怎样炼成的?-推荐系统篇
2019独角兽企业重金招聘Python工程师标准>>> 牛逼站是怎样炼成的?-推荐系统篇 互联网给用户带来了大量的信息,满足了用户在信息时代对信息的需求,也使得用户在面对大量信息时无 ...
最新文章
- linux c gcc编译报错 can not be used when making a shared object; recompile with -fPIC
- 解除计算机软件开发协议书,计算机软件著作权转让的协议书
- php soap 用户名密码,PHP SOAP客户端帮助!
- java 静态类 静态方法_JAVA的静态变量、静态方法、静态类
- 83. 删除排序链表中的重复元素 golang
- 前端学习(1265):接口调用axios
- 【C++深度剖析教程27】多态的概念与意义
- python标注审核_Python类型标注
- 23.多线程 实现的两种方式
- 加密软件漏洞评测系统_惠州上线软件产品登记测试企业
- centos7通过阿里云配置docker加速镜像
- Ubuntu 安装 ROS 教程
- 实践三 网络嗅探与协议分析
- AR图书,看着很美其实有点坑
- P2P网络与BitTorrent技术简介
- 微信公众平台开通业务域名
- 传奇游戏显示服务器连接失败,操作win7系统玩传奇世界显示连接服务器失败的详细方法...
- 股票:开盘价 收盘价 涨停价 跌停价
- 华数机器人编程语言_华数II型机器人控制系统.PDF
- 可口可乐公司推出全球第一款可加热饮用汽水,“可口可乐生姜+”上市
热门文章
- 怎么启动计算机后台打印服务,Win10系统中打印机后台服务没有启动解决方法
- 笔记本gtx1650最好用驱动_各型号笔记本显卡定位
- echarts 饼状图渐变色
- Windows XP支持的最大内存是多少?
- xp系统计算机蓝屏,Xp系统出现蓝屏代码 0x0000007b解决方法
- scrapy下载图片(《精通scrapy网络爬虫》第九章)
- python 邮件抄送是什么意思_python 获取邮件中的发件人From、收件人To、抄送人Cc...
- 32个FPGA开源网站
- 14-CompletableFuture异步编排
- ffmpeg - 视频裁剪