百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

牛逼!竟然把VSCode玩成了IDEA的效果,有点哇塞

liuian 2025-02-21 14:17 19 浏览

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

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

插件淘沙

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

无奈之下只能逐一试验,又开始了一轮插件淘沙的过程,最终筛选出几十款插件

定制Extension Pack

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

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

VS Code提供了一套nodejs工具用于辅助开发者创建扩展,同时官方文档中提供了简单明了的文档说明以及丰富的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?Theme
??New?Language?Support
??New?Code?Snippets
??New?Keymap
??New?Extension?Pack
??New?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?code

Command?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??Yes
???create?vscode-java-dev-tools-pack/.vscode/launch.json
???create?vscode-java-dev-tools-pack/package.json
???create?vscode-java-dev-tools-pack/vsc-extension-quickstart.md
???create?vscode-java-dev-tools-pack/README.md
???create?vscode-java-dev-tools-pack/CHANGELOG.md
???create?vscode-java-dev-tools-pack/.vscodeignore
???create?vscode-java-dev-tools-pack/.gitignore
???create?vscode-java-dev-tools-pack/.gitattributes

Your?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-pack
?????code?.

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的官方文档Extension Manifest。

package & publish

微软关于插件打包发布可以参考文档Publishing Extensions。

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

npm?install?-g?vsce

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

$?vsce?package
?DONE??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,推荐通过浏览器访问management page创建,比较直观。

也可以通过vsce命令行创建,详见Create a publisher

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

publish同样可以通过vsce命令行进行,详见Log in to a publisher

总结

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

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

相关推荐

10种常见的MySQL错误,你可中招?

【51CTO.com快译】如果未能对MySQL8进行恰当的配置,您非但可能遇到无法顺利访问、或调用MySQL的窘境,而且还可能给真实的应用生产环境带来巨大的影响。本文列举了十种MySQL...

MySQL主从如何保证数据一致性

MySQL主从(主备)搭建请点击基于Spring的数据库读写分离。MySQL主备基本原理假设主备切换前,我们的主库是节点A,节点B是节点A的备库,客户端的读写都是直接访问节点A,节点B只是将A的更新同...

MySQL低版本升级操作流程

(关注“数据库架构师”公众号,提升数据库技能,助力职业发展)0-升级背景MySQL5.5发布于2010年,至今已有十年历史,官方已经停止更新。2008年发布的MySQL5.1版本,在2018年...

MySQL数据库知识

MySQL是一种关系型数据库管理系统;那废话不多说,直接上自己以前学习整理文档:查看数据库命令:(1).查看存储过程状态:showprocedurestatus;(2).显示系统变量:show...

Mysql 8.4数据库安装、新建用户和数据库、表单

1、下载MySQL数据库yuminstall-ywgetperlnet-toolslibtirpc#安装wget和perl、net-tools、libtirpcwgethtt...

mysql8.0新功能介绍

MySQL8.0新特性集锦一、默认字符集由latin1变为utf8mb4在8.0版本之前,默认字符集为latin1,utf8指向的是utf8mb3,8.0版本默认字符集为utf8mb4,utf8默...

全网最详细解决Windows下Mysql数据库安装后忘记初始root 密码方法

一、准备重置root的初始化密码Win+R键启动命令输入窗口;输入cmd打开命令执行窗口;##界面如下##输入命令:netstopmysqld#此操作会停止当前运行的...

互联网大厂面试:MySQL使用grant授权后必须flush privilege吗

从我上大学时,数据库概论老师就告诉我,MySQL使用grant对用户授权之后,一定记得要用flushprivilege命令刷新缓存,这样才能使赋权命令生效。毕业工作以后,在很多的技术文档上,仍然可以...

# mysql 8.0 版本无法使用 sqlyog 等图形界面 登录 的解决方法

30万以下的理想L6来了##mysql8.0版本无法使用sqlyog等图形界面登录的解决方法当我们在cmd下登录mysql时正常时,用sqlyog等图形界面连接数据库时却...

MySQL触发器介绍

前言:在学习MySQL的过程中,可能你了解过触发器的概念,不清楚各位是否有详细的去学习过触发器,最近看了几篇关于触发器的文档,分享下MySQL触发器相关知识。1.触发器简介触发器即trigg...

管理员常用的MySQL命令汇总(一)

以下是管理员常用的MySQL命令:以管理员身份连接到MySQL:mysql-uroot-p创建新的MySQL用户:CREATEUSER'username'@'...

Linux(CentOS) 在线安装MySQL8.0和其他版本,修改root密码

一:安装MySQL数据库1),下载并安装MySQL官方的YumRepositorymysql官方仓库地址:https://dev.mysql.com/downloads/repo/yum/选择自...

解决 MySQL 8.0 一直拒绝 root 登录问题

Accessdeniedforuser'root'@'localhost'(usingpassword:YES)这个错误在网上搜一下,能看到非常多的此类...

大模型MCP之MYSQL安装

前言学习大模型的时候需要一个mysql,原因还是在公司使用电脑的时候不允许按照Docker-Desktop,我的宿主机其实是MAC,我习惯上还是在centsos上面安装,就发现这件过去很简单的事情居然...

MySQL ERROR 1396

ERROR1396(HY000):OperationCREATEUSERfailedfor'usera'@'%'问题描述mysql>create...