文章目录
- 前言
- vscode主要配置
- vscode的两个主要快捷键
- Java
- 配置JDK和Gradle环境
- 主要插件
- 常见的配置
- launch.json配置
- 运行测试用例
- 常见问题
- Python
- 主要插件
- settings.json配置
- Javascript/typescript
- 常用插件
- settings.json样例
- Golang
- 参考
前言
什么是IDE?
IDE = 文本编辑 + 搜索 + 代码导航 + 编译调试 + 测试 + …
JetBrains系列功能强大,但也挺耗资源的,vscode相对轻量级一点,且插件众多,日新月异,不可不学。我实际上这两个IDE是一起用的。
我主要使用四大编程语言:Java、Python、JS/TS和golang。
- Java主要做RESTful API server,以及和各种后端数据打交道。以及Android应用。
- Python主要写爬虫和深度学习程序
- Javascript/typescript主要写前端Vue/React程序,以及小部分Electron程序
- golang还不精通,主要写一些小工具,网络相关的居多
为了方便日后查阅,特把个人的配置整理出来。下面都是针对MacOS环境的设置。
在vscode里配置java开发比较繁琐,其它几个语言相对容易些。如果搞掂了这四种语言,意味着我一个Mac本上可以同时跑多个工程,不用担心卡顿了。
vscode主要配置
MacOS下:
~/Library/Application Support/code/User/settings.json
vscode的两个主要快捷键
ctrl+p 文件搜索快捷键
ctrl+shift+p 命令快捷键
command + , 调出设置
Java
目标:在vscode中运行和调试SpringBoot应用,执行gradle构建,和执行JUnit测试用例。
先总结一下:
- vscode打开带pom.xml或build.gradle的文件夹时,会自动识别为java project。没有任何build tool的文件夹被视为unmanaged foldler,就得手工配置Java runtime和source folder以及classpath了。
- vscode通过maven和gradle插件,可以分别创建maven project和gradle project。注意,目前不支持Android工程,搞Android开发还是老老实实用Android Studio吧。
有时遇到不能正确识别出Java project,可以尝试清除vscode缓存,在~/Library/ApplicationSupport/Code/User/workspaceStorage下,都删除好了。也可以安装Workspaces clean cache这个插件。
配置JDK和Gradle环境
先查看机器上装有哪些JDK版本:
/usr/libexec/java_home -V
Matching Java Virtual Machines (6):
17.0.5 (x86_64) "JetBrains s.r.o." - "JBR-17.0.5+1-653.23-nomod 17.0.5" /Library/Java/JavaVirtualMachines/jbr-17.0.5-osx-x64-b653.23/Contents/Home
17.0.5 (x86_64) "Eclipse Adoptium" - "OpenJDK 17.0.5" /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
17.0.1 (x86_64) "Oracle Corporation" - "OpenJDK 17.0.1" /Users/ku/Library/Java/JavaVirtualMachines/openjdk-17.0.1/Contents/Home
16.0.2 (x86_64) "Amazon.com Inc." - "Amazon Corretto 16" /Users/ku/Library/Java/JavaVirtualMachines/corretto-16.0.2/Contents/Home
1.8.351.10 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_181 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jbr-17.0.5-osx-x64-b653.23/Contents/Home
可以根据需要切换一下JDK版本:
export JAVA_HOME=
/usr/libexec/java_home -v 17
然后,在settings.json中,配置java.home和gradle.home:
"java.jdt.ls.java.home": "/Library/Java/JavaVirtualMachines/jbr-17.0.5-osx-x64-b653.23/Contents/Home",
"spring-boot.ls.java.home": "/Library/Java/JavaVirtualMachines/jbr-17.0.5-osx-x64-b653.23/Contents/Home",
"java.import.gradle.home": "/opt/gradle-7.5.1"
主要插件
- Java Extension for Pack
- Spring Boot Extension Pack
- Gradle Extension Pack
- Gradle Language Support
- Lombok: 智能生成 setter getter toString
常见的配置
{
"java.compile.nullAnalysis.mode": "disabled",
"java.dependency.packagePresentation": "hierarchical"
}
launch.json配置
{
"configurations": [
{
"type": "java",
"name": "Spring Boot-BudgetApplication<budget>",
"request": "launch",
"cwd": "${workspaceFolder}",
"console": "internalConsole",
"mainClass": "com.someone.budget.BudgetApplication",
"projectName": "cms",
"args": ["--module-path","lib/javafx-sdk-13/lib","--add-modules=javafx.controls"]
}
]
args和vmArgs都有两种写法:
“vmArgs”: “-Xms256m -Xmx1g -Dserver=production”
或者:
“vmArgs”: [“-Xms256m”, “-Xmx1g”, “-Dserver=production”]
运行测试用例
正常在测试视图里能列出所有的测试用例。如果要查看用例中System.out.println()输出,切换到窗口:
常见问题
- 无法找到Test
解析:vscode没有识别出java工程,所以无法enable java test。可以清理vscode缓存和无关的文件,然后重新导入 - 命令行编译正确,但vscode问题里一堆的编译错误
解析:估计装了过多的插件,导致部分插件误报问题
红框标出的插件不用装,这也是vscode的一大问题:插件太繁荣,有时装多了会起冲突。 - For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.; nested exception is java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.
这个问题是需要给java compiler加上一个参数:-parameters
在settings.json中定义:
"java.settings.url": "/pathto/settings.prefs"
然后,新建一个文件settings.prefs,放到任意位置均可,内容如下:
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
Python
主要插件
settings.json配置
{
"python.testing.unittestEnabled": false,
"python.testing.nosetestsEnabled": false,
"python.testing.pytestEnabled": true,
"python.testing.autoTestDiscoverOnSaveEnabled": true,
"python.testing.pytestArgs": [
".",
"--capture=no",
"-q",
"--disable-warnings"
],
}
Javascript/typescript
常用插件
settings.json样例
{
"cSpell.words": ["Element Plus", "element-plus"],
"typescript.tsdk": "node_modules/typescript/lib",
"editor.formatOnSave": true,
"npm.packageManager": "pnpm",
"eslint.probe": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"html",
"vue",
"markdown",
"json",
"jsonc"
],
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"html",
"vue",
"markdown",
"json",
"jsonc"
],
"vite.devCommand": "pnpm run dev -- --",
"i18n-ally.localesPaths": "packages/locale/lang",
"i18n-ally.enabledParsers": ["ts"],
"i18n-ally.enabledFrameworks": ["vue", "vue-sfc"],
"i18n-ally.keystyle": "nested",
"iconify.includes": ["ep"],
"unocss.root": "./docs"
}
Golang
TODO 后续补全
参考
- vscode java 支持