Background
ChatGPT has profoundly impacted our way of getting hands on with a new topic. Though not necessarily accurate when drilling down to some specific problem, it provides an efficient way of quickly gaining enough information to get started.
I was recently recommended by my friend to switch to VSCode for its efficiency. I work more on systems projects which usually involve C/C++, Java, or Go programming, previously I heavily rely on multiple JetBrains IDEs (CLion, IntelliJ IDEA, and GoLand respectively) to conduct my work. Though suffering from its high volume and memory consumption, I was generally dependent on (and satisfied with?) its code analysis, version control, and database and service integration(I interact with test database and Kubernetes environments a lot in development), all of which are shipped together once installed. IDEs also simplify (or to some extent, mess up) the environment management (at least for Go and Java) with the graphic interface for downloading and managing multiple versions of language runtime / SDKs. These out-of-box features made me lazy. In fact I’ve tried several times switch to VSCode but immediately went back to JetBrains with dumb code analysis feature (Yes I can tolerate git/db/k8s integration, since they are also straightforward with CLI).
I mainly rely on the inlay hint of auto type inference, definition/declaration/reference navigation, and code style hints, which is somehow not satisfying with the built-in IntelliSense with C/C++ Extension Pack in VSCode. I’ve heard about clangd but never tried it out (since I’m lazy to search and collect all kinds of configuration), but I would say this time, that clangd is the core of experience to survice C/C++ development with VSCode.
This blog will introduce how I configure VSCode quickly in one afternoon with ChatGPT support, to switch from JetBrains IDE to VSCode, with similar experience. The content include core language features, git integrations, database integrations, and service integrations, as well as some personalization notes. Let’s get started!