我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

先说一下本文的结论,不建议大家使用vscode编辑jsp项目,不好用不专业受鄙视。如果您看了上述结论后,依然想试试在vscode里面编辑jsp项目的话,那就看看本文的配置方案吧。以jsp的角度,初步了解了解一下vscode对各个不同后缀的可编辑文件的处理方式。

苏南大叔:vscode,如何配置jsp文件高亮和emmet自动生成代码? - jsp高亮方案
vscode,如何配置jsp文件高亮和emmet自动生成代码?(图9-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔和计算机代码的故事。本文测试环境:win10vscode@1.74.2

被嫌弃的jsp

通过一系列尝试最终发现,jsp遭到了集体鄙视和唾弃,这包括vscode官方以及java识别插件的维护方redhat。在vscode支持的大量后缀文件中,就没有jsp的身影。而在相关的github issue里面,官方也对jsp的支持表示推诿。
https://github.com/redhat-developer/vscode-java/issues/138

而唯一的jsp支持插件"Java Server Pages (JSP)",也已经放弃维护很多年。可以说,vscode的生态环境里面,已经没有jsp的容身之处。

苏南大叔:vscode,如何配置jsp文件高亮和emmet自动生成代码? - java-server-page
vscode,如何配置jsp文件高亮和emmet自动生成代码?(图9-2)

对于使用哪款编辑器编辑jsp更好这个问题上,苏南大叔个人有如下建议:

  • 如果您能解决网速的问题,就使用eclipse
  • 如果您能解决注册码的问题,请使用idea。【推荐】
idea官方提供edu学生免费授权的,拿着你的edu邮箱注册一个就行,合法合理简单容易。
https://newsn.net/say/jetbrains-license-free.html

勉强的解决方案

如果您还是决定使用vscode编辑jsp的话,其实也是有勉强的解决方案的。这里要解决以下问题:

  • jsp文件的代码高亮问题。
  • jsp文件的代码格式化问题。
  • jsp文件的代码提示问题。

处理的结果,差强人意,勉强解决问题。

高亮及格式化

.jsp文件识别成html文件或者java文件,即可勉强解决高亮及格式化问题。配置:

"files.associations": {
    "*.jsp": "html"
},

或者:

"files.associations": {
    "*.jsp": "java"
},

苏南大叔:vscode,如何配置jsp文件高亮和emmet自动生成代码? - 临时解决方案
vscode,如何配置jsp文件高亮和emmet自动生成代码?(图9-3)

emmet提示

苏南大叔最爱的快捷输入代码的html:5,在jsp页面里面就是必不可少的快捷输入方式。如果,上面的高亮配置里面,把.jsp文件处理为html的话,那么,emmet自动生效。

如果文件处理为java的话,还需要配置emmet的关联,把java类型和html类型做点关联。

"emmet.includeLanguages": {
    "java": "html"
},

这个就有点副作用,.java文件也会被开启emmet

苏南大叔:vscode,如何配置jsp文件高亮和emmet自动生成代码? - 快捷输入
vscode,如何配置jsp文件高亮和emmet自动生成代码?(图9-4)

可能的妥协方案

其实纵观.jsp的代码的话,其实它和.aspx的代码最相似。或者说和传统的php代码编写方式,也非常非常非常的相似。

同时写过这几种种代码的同学都知道,几者普通页面的编写方式相似度极高。

那么,是否可以从这两个插件修改一下呢?这些vscode的原生支持的格式定义文件的安装位置是:

<vscode>/resources/app/extensions/

参考内容:

目前还没有太好的成果,仅有的结论是:

  • jsp/目录,表示对.jsp后缀的文件识别。
  • jsp-language-features则可以生成vscodesettings里面的一系列配置。

最终的结论

vscode的右下角会显示当前文件被识别成了什么格式,进而应用对应格式的着色、格式化及emmet

苏南大叔:vscode,如何配置jsp文件高亮和emmet自动生成代码? - 格式识别
vscode,如何配置jsp文件高亮和emmet自动生成代码?(图9-5)

所以,最终的最好的结论是,设置jsp文件关联为html,则所有的问题都得到了勉强的解决(主要是不满意着色方案)。

"files.associations": {
    "*.jsp": "html"
},

题外话

最终的结论是:不要使用vscode编辑jsp文件。顺便把javaweb可能需要的插件也写在这里吧。

  • Extension Pack for Java套装,内置6个插件(包括maven for java)。
  • Community Server Connectors,前面文章里面有写过。

苏南大叔:vscode,如何配置jsp文件高亮和emmet自动生成代码? - 插件合集
vscode,如何配置jsp文件高亮和emmet自动生成代码?(图9-6)

java套装安装好之后,配置一下mavensetttings.xml即可使用。其它的大家就自己研究吧,意义不大。

苏南大叔:vscode,如何配置jsp文件高亮和emmet自动生成代码? - maven插件设置
vscode,如何配置jsp文件高亮和emmet自动生成代码?(图9-7)

苏南大叔:vscode,如何配置jsp文件高亮和emmet自动生成代码? - 新建项目
vscode,如何配置jsp文件高亮和emmet自动生成代码?(图9-8)

苏南大叔:vscode,如何配置jsp文件高亮和emmet自动生成代码? - java相关的vscode插件
vscode,如何配置jsp文件高亮和emmet自动生成代码?(图9-9)

参考文字:

结束语

本文并没有完美解决jspvscode里面的识别问题,但是以此为例,研究了一下vscode的相关设置。初探了vscode内置的格式识别机制和方法,所以还是有点意义的,等有空再继续试试。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   java    vscode