作为JavaScript开发人员,这些必备的VS Code插件你都用过吗
本文翻译自:https://www.sitepoint.com/vs-code-extensions-java-developers/
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。
如今,Visual Studio Code无疑是最流行的轻量级代码编辑器。它确实从其他代码编辑器那借鉴了很多,最主要是从Sublime和Atom那里。然而它的成功关键是源于能提供更好的性能和稳定的表现。另外,它还提供了如代码智能提示等开发者非常需要的功能。而这些功能,曾经只在像Eclipse或者Visual Studio 2017这样的完整集成开发环境(IDEs)中才有。
VS Code的强大无疑来自于它的插件市场。多亏了开源社区,VS Code现在几乎对所有的编程语言、框架和开发技术都有支持。提供这种支持的方式是多样的,主要包括了为特定技术提供代码片段、语法高亮、Emmet以及智能提示功能。
VS Code插件的种类
在本文,我主要介绍专门针对Java开发者的VS Code插件。有很多满足此条件的VS Code插件,当然我不会都作介绍。相反,我会着重介绍那些已经相当流行而且对Java开发者来说必不可少的VS Code插件。为简单起见,我把它们分为10类。
在这之中可能有你已经知道并且正在使用的插件,但也很有可能有一些是你听说过但未曾使用过的,我也希望通过本文能为你简要的介绍一下这些插件。
1. 代码片段插件
当你第一次安装VS Code时,它会附带一些Java和Type的代码片段。在你开始上手现代Java之前,你将需要一些额外的代码片段来帮助你快速地编写ES6/ES7代码:
VS Code Java(ES6) snippets:当前最流行的,已有超过120万的下载量。这个插件为Java、Type、HTML、React和Vue提供了ES6的语法支持。
Java Snippet Pack:提供了有用的Java代码片段集合。(这个链接打不开了)
Atom Java Snippet:移植自Atom的Java插件。
Java Snippets:提供了ES6代码片段的集合。它包含对Mocha、Jasmine等其他BBD(Behavior-Driven Development)测试框架的支持。
2. 语法高亮插件
VS Code自带很好的Java代码语法高亮。你可以通过安装主题改变这些颜色。然而,如果你想要更高水平的可读性,就得安装语法高亮的插件了。这里有一些:
Java Atom Grammar:它用Atom编辑器里的Java语法高亮替换VS Code原来的。
Babel Java:支持ES201X、React、FlowType以及GraphQL的语法高亮。
DotENV:支持.env文件语法高亮,在你使用Node时会非常有用。
3. 代码检测插件
以最小的烦恼高效编写Java代码,需要一个代码检测(linter)工具。它强制团队所有成员遵循特定的代码规范。ESLint是最受欢迎的,它支持许多代码风格,包括Standard、Google和Airbnb的Java代码规范。这里是最流行的VS Code代码检查插件:
ESLint:这个插件把ESLint集成到VS Code中。它是最流行的代码检测插件,已有超过670万下载量。它的规则在.eslintrc.json里配置。
JSHint:基于JSHint的代码检测插件。在项目跟目录下使用.jshintrc文件作为其配置。
Java Standard Style:零配置和严格规则的代码检测,强制使用StandardJS规则。
如果你想查看对各种代码检测优缺点的综述,可以来看看我们对代码检测工具的比较。
4. Node插件
每一个Java项目都需要至少一个Node package,除非你是那种喜欢以艰难的方式做事的人。这里有一些VS Code插件,能帮你更容易的处理Node模块。
npm:用package.json来校验安装的npm包,确保安装包的版本正确,对缺少package.json文件的包或者未安装的包给出高亮提示。
Node.js Modules IntelliSense:提供Java和Type导入声明时的自动补全。源码:vscode-node-module-intellisense。
Path IntelliSense:它其实与Node没有关系,但是你肯定需要对本地文件的智能提示,这个插件会自动补全文件名。
Node exec:允许你用Node执行当前文件或者选中的代码。
View Node Package:利用此插件可快速查看Node包源码,让你直接在VS Code中打开Node包的代码库或文档。
Search node_modules:通常node_modules文件夹不在默认的搜索范围内,这个插件允许你搜索它。源码:vscode-search-node-modules。
Import Cost:显示导入的包的大小。源码:import-cost。
5. 代码格式化插件
有时,你发现自己会对以前写过的风格不太理想的代码做格式整理。为了节约时间,你可以安装以下任何的VS Code插件,来快速地格式化和重构现有代码:
Beatufy:一个jsBeautifier的插件,支持Java、JSON、CSS和HTML。可通过.jsbeautifyrc文件自定义。它是最流行的格式化工具,目前有230万的下载量。
Prettier Code Formatter:利用Prettier的支持Java、Type和CSS的插件,目前有超过150万的下载量。
JS Refactor:提供许多重构Java代码的实用方法和操作,例如抽取变量和方法,把现有代码转为使用箭头函数和模板字符串的等价形式,导出函数等。
Java Booster:一款了不起的代码重构工具。拥有需要代码操作,比如把var转为const或者let,去除多余的else语句,合并声明和初始化。其灵感大量源于WebStorm的启发。源码:vscode-java-booster。
6. 浏览器插件
除非你是在用Java写控制台程序,否则你多半会在浏览器中执行你的Java代码。这意味着,你会频繁地刷新浏览器以观察每次你更新代码的效果。这里有一些工具,能极大地减少你开发时的这种重复流程,而不是每次都手动刷新浏览器:
Debugger for Chrome:在编辑器中打断点,让你轻松地在Chrome里调试Java。源码:vscode-chrome-debug。
Live Server:开启本地开发时服务器,为静态和动态页面提供实时刷新功能。源码:vscode-chrome-debugvscode-live-server。
Preview on Web Server:提供web服务器和实时预览功能。
PHP Server:对测试只能在客户端运行的Java代码很有用。
Rest Client:相较于用浏览器或者一个CURL程序来测试你的REST API端点,你可以安装这个工具,直接在编辑器里相互性地发HTTP请求。
7. 框架类插件
对于大多数项目,你会使用合适的框架去构建你的代码,以减少开发时间。VS Code通过插件对大多数主流框架都做了支持。然而,仍有一些特定框架没有得到完全的支持。下面是一些提供了强大功能的VS Code插件。
Angular 6:提供Angular 6的代码片段,支持Type、HTML、Angular Material ngRx、RxJS和Flex Layout。目前有220多万的下载量和172个Angular代码片段。
Angular v5 snippets:提供针对Type、RxJS、HTML和Docker文件的代码片段。目前有270多万的下载量。
React Native/React/Redux snippets for es6/es7:提供对这些框架的ES6/ES7语法的代码片段。
React Native Tools:为React Native框架提供代码智能提示、命令行工具和调试特性。
Vetur:为Vue框架提供语法高亮、代码片段、Emmet、代码检测、智能提示和调试支持。它带有很好的发布在GitBook上的文档。
Ember:为Ember提供了命令行支持和智能提示。安装完后,所有ember cli的命令可直接在VS Code自己的命令行列表中使用。
Cordava Tools:支持Cordava插件和Ionic框架,提供基于Cordova的项目的智能提示、调试已经其他特性的支持。
jQuery Code Snippets:提供了超过130个jQuery的代码片段,使用jq前缀来激活。
8. 测试类插件
测试是软件开发中的关键环节,对于生产阶段的项目来说更是如此。你可以通过阅读我们的指南-Java测试:单元测试 vs 功能测试 vs 集成测试-来获得对Java测试的一个概观。这里有一些针对测试的VS Code插件:
Mocha sidebar:利用Mocha库为项目提供单元测试。这个框架帮你直接在代码里跑测试,把错误信息以装饰器形式显示出来。
ES Mocha Snippets:提供ES6语法的Mocha代码片段。这个插件的重点在于利用箭头函数,尽可能减少花括号的使用,保持代码的紧凑。可通过设置允许使用分号。
Jasmine Code Snippets:针对Jasmine测试框架的代码片段。
Protractor Snippets:针对Protractor端到端测试框架的代码片段。支持Java和Type。
Node TDD:为Node和Java项目提供测试驱动开发的支持。能在源码的更新后,立即触发自动化测试的构建。源码:node-tdd
9. 其他棒棒的插件
我把下一批VS Code的插件归为"厉害的"(awesome)这一类,因为这个描述恰到好处。
Quokka.js:非常厉害的调试工具,为Java提供了快速构建原型的演练场,并且附带有很好的文档。
Paste as JSON:快速地将JSON数据转为Java代码。源码:quick-type。
Code Metrics:这是另一个非常棒的插件,计算Java和Type代码中复杂度。源码:codemetrics。
10. 插件包
现在我们来到了最后一类,我想让你知道,VS Code市场有有一个插件包的分类。本质上,它们是相关联的一些VS Code插件的集合,打成一个包,方便安装。这里有些较好的:
Nodejs Extension Pack:这个包里有ESLint、npm、Java(ES6) snippets、Search node_modules、NPM IntelliSense和Path IntelliSense。
VS Code for Node.js - Development Pack:这个包含NPM IntelliSense、ESLint、Debugger for Chrome、Code Metrics、Docker和Import Cost。
Vue.js Extension Pack:一些Vue和Java插件的集合。目前它含有12个VS Code的插件,有一些之前我们没有提到的,比如auto-rename-tag和auto-close-tag。
Ionic Extesion Pack:这个包里有针对Ionic、Angular、RxJS、Cordova和HTML开发的插件。
SpreadJS纯前端表格组件:可嵌入你系统的在线Excel,功能布局与 Excel 高度类似,完全兼容 Excel 的 450 种公式和 92 种图表。
总结
VS Code拥有大量的高质量插件,这让它在Java开发者群体中广受欢迎。写Java代码,再没有比现在更容易了。
像ESLint这样的插件,帮助你避免代码中的常见错误;Debugger for Chrome,帮助你更容易地调试代码;带有智能提示的Node.js插件帮助你正确引用模块;像Live Server和REST client这样的可用工具,让你在完成工作时减少了对外部工具的依赖;再比如SpreadJS纯前端表格控件,让在线Excel嵌入您的应用。所有这些工具,都极大地加快了你的迭代流程。
我希望这些列表让你接触到新的VS Code插件,对你的工作流程有帮助。
关于葡萄城:
赋能开发者!葡萄城公司成立于 1980 年,是全球领先的集开发工具、商业智能解决方案、管理系统设计工具于一身的软件和服务提供商。西安葡萄城是其在中国的分支机构,面向全球市场提供软件研发服务,并为中国企业的信息化提供国际先进的开发工具、软件和研发咨询服务。葡萄城的控件和软件产品在国内外屡获殊荣,在全球被数十万家企业、学校和政府机构广泛应用。
相关文章:

matlab常遇小问题汇总
1、如何注释掉多行: 同时注释掉多行,有2种方法可行: (1)、选中所有要注释的行,按快捷键"Ctrl R" 或者 选择工具菜单"Text --> Comment"; 如果释放所有要注释的行,则按快捷键"Ctrl T&qu…

《几何与代数导引》习题1.35.4
求直线之间的距离$l_1:\frac{x1}{-1}\frac{y-1}{3}\frac{z5}{2}$.$l_2:\frac{x}{3}\frac{y-6}{-9}\frac{z5}{-6}$.解:点$q(-1,1,-5)$在直线$l_1$上,点$p(0,6,-5)$在直线$l_2$上.$\vec{pq}(-1,-5,0)$.直线$l_1$的方向向量为$(-1,3,2)$,直线$l_2$的方向向量…

深度学习难,这本书让你轻松学深度学习
深度学习在短短几年之内便让世界大吃一惊。它非常有力地推动了计算机视觉、自然语言处理、自动语音识别、强化学习和统计建模等多个领域的快速发展。随着这些领域的不断进步,人们现在可以制造自动驾驶的汽车,基于短信、邮件甚至电话的自动回复系统&#…

matlab中用于小数取整的函数的用法
matlab中小数取整的函数大约有四个:floor、ceil、round、fix 若 A [-2.0, -1.9, -1.55, -1.45, -1.1, 1.0, 1.1, 1.45, 1.55, 1.9, 2.0]; floor:朝负无穷方向靠近最近的整数; floor(A) ans -2 -2 -2 -2 -2 1 1 1 1 …
SQLServer之删除约束
使用SSMS数据库管理工具删除约束 1、连接数据库,选择数据表-》展开键或者约束-》选择要删除的约束-》右键点击-》选择删除。 2、在删除对象弹出框中-》点击确定。 3、刷新表-》展开键或者约束-》查看结果。 使用T-SQL脚本删除约束 语法: --声明数据库使用…

新建silverlight项目提示未将对象设置到实例解决方案
1.打开 visual studio 命令提示 输入一下命令 2.devenv /resetskippkgs 这条命令会启动visual stuio 关闭visual studio然后输入下面的命令3.devenv /setup

毕业十年后,我忍不住出了一份程序员的高考试卷
作者 | 程序员小吴转载自公众号五分钟学算法(ID: CXYxiaowu)一、选择题(共计 50 分)1、在下列四种排序算法,只有( )是一种不稳定排序A、冒泡排序B、选择排序C、插入排序D、归并排序2、一个数组&…

查看matlab中函数源代码的方法
有几种方法可以实现查看matlab里自带函数的源代码: 在命令窗口中输入: (1)、type 函数名(如 type rgb2gray 或者 type rgb2gray.m):即可在命令窗口中显示此函数的源代码; (2)、open 函数名(如 open rgb2gray 或者 open rgb2gray.m):即可打开…

Watir-webdriver处理table
最近大脸猫同学给了我一个popup的demo,让我试着定位弹出窗口中的按钮元素。在研究过程中,发现webdriver与watir代码有区别,一度让我很郁闷,在网上也找不到相应的解决方案,刚才code运行成功,在这记一笔&…

PyTorch Hub发布获Yann LeCun强推!一行代码调用经典模型
作者 | Team PyTorch译者 | Monanfei责编 | 夕颜出品 | AI科技大本营(ID: rgznai100)导读:6月11日,Facebook PyTorch 团队推出了全新 API PyTorch Hub,提供模型的基本构建模块,用于提高机器学习研究的模型复…

【会议纪要】非洲新经济-线下沙龙分享
沙龙 主题: 《解开非洲新经济神秘面纱》 时间: 2018年09月08日 14:00 ~ 15:00 地点: 杭州丰潭路 UXCoffee 背景: 随着中非合作峰会召开,非洲发展潜力越来越受到关注。。。许多人眼中的非洲是贫穷…

图像处理和图像识别中常用的matlab函数
下面仅给出函数的大概意思,详细用法见: help 函数名 或 matlab help 1、imread:read image from graphics file; 2、imshow:display image in Handle Graphics figure; 3、imwrite:write image…

Powershell管理Active Directory 复制和拓扑
Powershell管理Active Directory 复制和拓扑 Active Directory 的 Windows PowerShell (AD) 支持复制和拓扑管理。它包含了管理复制、站点、域和林、域控制器和分区的功能。过去的管理工具(如 AD 站点和服务管理单元与 repadmin.exe)的用户将发现如今也可…

实战 | 如何用最快的速度学会Dlib人脸识别开发?
作者 | 小宋是呢来源 | 转载自小宋是呢项目GitHub地址:https://github.com/xiaosongshine/dlib_face_recognition1.背景介绍Dlib是一个深度学习开源工具,基于C开发,也支持Python开发接口,功能类似于TensorFlow与PyTorch。但是由于…

matlab内存管理
转自:http://my.donews.com/deng/2006/09/24/vijgqxehmkxiruywdauvxyiafogtskeymhyw/ 用 Matlab 进行大规模科学计算或仿真时,内存是一个需要时常注意的问题。当你写的 Matlab 程序跳出“Out of Memory” 时,以下几点措施是需要优先考虑的解决…

Koa2和Redux中间件源码研究
一、Koa2中间件源码分析 在Koa2中,中间件被存放在一个数组中。 使用koa中,最常见的就是app.use(fn),use函数部分源码如下所示。首先中间件必须是个函数。若是generator函数,则需要进行转化。最后把该中间件推入middelaware数组中。…

matlab内存管理(二)
转自:http://hi.baidu.com/bi%CB%AB%C9%FA%BB%A8/blog/item/5ab86c38ac2f45e715cecbab.html 1,确保内存的连续性Matlab 中数组必须占用连续分配的内存段当无法为新建的数组分配连续的内存段的时候Out of Memory 就会出现由于反复分配和释放数组会使可用的…

校招经验分享—高考结束!校招还会远么~~
作者 | 石晓文来源 | 转载自小小挖掘机(ID: wAIsjwj)今天是6.11,高考已经结束了,那大考-校招还会远么?我们先来看一下去年的校招时间表:互联网大厂校招一般7月就开始了,也就是说!如果…

数据科学究竟是什么?
数据科学是一门将数据变得有用的学科。它包含三个重要概念: 统计机器学习数据挖掘/分析数据科学的定义 如果你回顾一下数据科学这个术语的[早期历史](),会发现有两个主题密切相连: 大数据意味着计算机的使用频率增加。统计学家很难将纸张上所…

SQL with NUll处理,Join系列,between,in对比exists以及少量题目
2019独角兽企业重金招聘Python工程师标准>>> 1.一些题目: 选择在每一组B值相同的数据中对应的a最大的记录的所有信息,(用于论坛每月排行榜) Selecta,b,c from tableta wherea(select max(a) from tabletb where tableb.b tableta.b ) 随机抽取出10条数据 Select to…

清华大学提出APDrawingGAN,人脸照片秒变艺术肖像画
作者 | 刘永进教授来源 | 转载自数据派THU(ID:DatapiTHU)清华大学提出APDrawingGAN,该项工作被CVPR 2019录取为oral paper。CVPR是计算机视觉和人工智能领域内的国际顶级会议,2019共收到投稿5160篇,录取1300篇…

图像处理和图像识别中常用的OpenCV函数
1. cvLoadImage:将图像文件加载至内存; 2. cvNamedWindow:在屏幕上创建一个窗口; 3. cvDestroyWindow:销毁显示图像文件的窗口; 4. cvDestroyAllWindows:销毁显示图像文件的所有窗口…

SQLServer之DEFAULT约束
原文:SQLServer之DEFAULT约束DEFAULT约束添加规则 1、若在表中定义了默认值约束,用户在插入新的数据行时,如果该行没有指定数据,那么系统将默认值赋给该列,如果我们不设置默认值,系统默认为NULL。 2、如果“默认值”字…

tmux/screen里面如何用鼠标滚轮来卷动窗口内容
tmux里面用鼠标滚轮来卷动窗口内容在 tmux里面,因为每个窗口(tmux window)的历史内容已经被tmux接管了,所以原来console/terminal提供的ShiftPgUp/PgDn所显示的内容并不是当前窗口的历史内容,所以要用C-b [ 进入copy-mode,然后才能…

图像空间变换--imtransform
转自:http://juyishaanxi.blog.163.com/blog/static/602733002010522105439617/(非原处)空间几何变换将(w,z)坐标系上的图像变换为(x,y)坐标系上的图像,可以表示为: (x,y) T{(w,z) 比如: (x,y) T{(w,z)} (w/2, z/2) 仿射变…

谷歌用1.2万个模型“推翻”现有无监督研究成果!斩获ICML 2019最佳论文
作者 | 夕颜、Just出品 | AI科技大本营(ID:rgznai100)6 月 11 日,在美国加州长滩举行的 ICML 公布了 2019 年最佳论文奖,来自苏黎世联邦理工大学、谷歌大脑等的团队和英国剑桥大学团队摘得最佳论文奖项,此外,大会还公布了 7 篇获最…

实战:掌握PyTorch图片分类的简明教程 | 附完整代码
作者 | 小宋是呢转载自CSDN博客1.引文深度学习的比赛中,图片分类是很常见的比赛,同时也是很难取得特别高名次的比赛,因为图片分类已经被大家研究的很透彻,一些开源的网络很容易取得高分。如果大家还掌握不了使用开源的网络进行训练…

python group()
正则表达式中,group()用来提出分组截获的字符串,()用来分组 import re a "123abc456" print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0) #123abc456,返回整体 print re.sea…

图像配准的方法
转自:http://blog.sina.com.cn/s/blog_4b9b714a0100d5k5.html 图像配准的方法 1 基于特征的图像配准 基于特征的图像配准首先提取图像信息的特征,然后以这些特征为模型进行配准。特征提取的结果是一含有特征的表和对图像的描述,每个特征由…

微软发布Visual Studio 2017 15.8
2019独角兽企业重金招聘Python工程师标准>>> 对于C#/VB/C项目,在Git分支检出和分支切换操作后不再需要重新加载解决方案,这加快了操作的完成。15.8支持新推出的F# 4.5,这无疑将会受到F#开发人员的欢迎。此外,用于F#项目…