当要用vsc去写其它语言的工程时(let's say, c++ e.g. qt),那你可以想象首先要实现工程管理相关的支持——cmake/qmake文件自己也有额外语法要加入,然后还得实现新的 UI 元素去呈现工程文件解析后的结果(src窗口、header窗口、build target...),然后还要支持相关工具链的管理和调用…… 所有这些都做完之后才跨出了第一步支持工程管理。 然后下一步是支持目标语言的语法和引用关系等……
毕竟vscode只是个编辑器,离全功能 IDE 还是差距很大的,ide 中集成了语法分析,这能让你方便地按语义重构代码;集成了调试器,能可视化地下断点、随时查看存储内容;集成了profiler,性能报表往往只需要按一个键;集成了内嵌式的外部工具比如数据库查看器…… 这些都是vscode望尘莫及的,你要把它搞成足够好用足够强大的 IDE 环境可能需要一大堆(重新造的粗糙的)插件,没必要给自己找麻烦。
建议用唯一指定Jiavva IDE: JetBrains IntelliJ IDEA
java@idea 也是差不多的 —— idea本身就是个java runtime
当要用vsc去写其它语言的工程时(let's say, c++ e.g. qt),那你可以想象首先要实现工程管理相关的支持——cmake/qmake文件自己也有额外语法要加入,然后还得实现新的 UI 元素去呈现工程文件解析后的结果(src窗口、header窗口、build target...),然后还要支持相关工具链的管理和调用…… 所有这些都做完之后才跨出了第一步支持工程管理。 然后下一步是支持目标语言的语法和引用关系等……
毕竟vscode只是个编辑器,离全功能 IDE 还是差距很大的,ide 中集成了语法分析,这能让你方便地按语义重构代码;集成了调试器,能可视化地下断点、随时查看存储内容;集成了profiler,性能报表往往只需要按一个键;集成了内嵌式的外部工具比如数据库查看器…… 这些都是vscode望尘莫及的,你要把它搞成足够好用足够强大的 IDE 环境可能需要一大堆(重新造的粗糙的)插件,没必要给自己找麻烦。
all in one, all in boom
折腾插件其实一点都不划算,因为就算你费老鼻子力气把环境配好后还是会发现那些 settings.json launch.json task.json ... 也是带不走的,不会同步、不能放进源码、不跨平台、甚至不一定可移植
而且插件是不跟随你正打开的文件选择性加载的,当你配过几种语言的插件后……都不说性能问题,光是被搞乱的 UI 就足够令人不爽了
我看了下 这台电脑 装了的插件—— 26个,但仍然只有在 js 生态的项目上能算比较全功能的 IDE,但我几乎不(不怎么会)写前端
C 生态的插件有…… 5 个,但仍然不能开箱 C/++ 工程立即使用
非语言特定的插件有……6 个, docker / k8s / gitlens / copilot,但每个都可有可无,仅仅想顺手用一下就装了,但其实都是很难用的东西
左侧边栏上的 Icon 有…… 12 (6+6)个,分属于完全不同的几个工作栈
我一直秉持着keep vscode simple & enough 的思路…… 我这算秉持了个屁啊
正是如此