Supported Languages¶
dotvim provides full IDE-grade support for these languages via LSP + vim-polyglot syntax.
Language Matrix¶
| Language | LSP Server | Syntax | Format | Lint | Debug |
|---|---|---|---|---|---|
| C/C++ | clangd | ✅ | clang-format | ✅ | GDB via terminal |
| Python | pyright | ✅ | ✅ | pdb via terminal | |
| Go | gopls | ✅ | goimports | ✅ | delve via terminal |
| Rust | rust-analyzer | ✅ | rustfmt | ✅ | |
| JavaScript/TS | typescript-language-server | ✅ | prettier | ✅ | |
| HTML | vscode-html-language-server | ✅ | |||
| CSS | vscode-css-language-server | ✅ | |||
| Bash/Shell | bash-language-server | ✅ | shellcheck | ||
| YAML | yaml-language-server | ✅ | ✅ | ||
| JSON | vscode-json-language-server | ✅ | ✅ | ||
| XML | ✅ | ||||
| LaTeX | texlab | ✅ | ✅ | ||
| MATLAB | ✅ | ||||
| Dockerfile | dockerfile-language-server | ✅ | |||
| Terraform | terraform-ls | ✅ | terraform fmt | ✅ | |
| CMake | cmake-language-server | ✅ | |||
| BitBake (Yocto) | ✅ | ||||
| Protobuf | ✅ |
Per-Language Settings¶
C/C++ (2-space indent, cindent)¶
- LSP: clangd (auto-installed)
- Format: clang-format (auto on save for files < 10k lines)
- Compile:
Space mk(make),Space mb(cmake build)
Python (4-space indent)¶
- LSP: pyright (auto-installed)
- Run:
:FloatermNew python3 %
Go (tabs, not spaces)¶
- LSP: gopls (auto-installed, includes goimports on save)
- Run:
:FloatermNew go run .
JavaScript/TypeScript¶
- LSP: typescript-language-server
- Syntax: vim-polyglot (JSX/TSX included)
LaTeX¶
- LSP: texlab (completion, references, build)
- Compile:
:FloatermNew latexmk -pdf %
YAML/JSON¶
- LSP: yaml-language-server / vscode-json-language-server
- Schema validation included
Installing a Language Server¶
Open any file of that language type and run:
That's it. The server downloads, installs, and activates automatically.
Checking LSP Status¶
Google Coding Standards¶
This configuration follows Google Style Guides for indentation:
| Language | Indent | Type | Google Guide |
|---|---|---|---|
| C/C++ | 2 spaces | expandtab | google.github.io/styleguide/cppguide |
| Python | 4 spaces | expandtab | google.github.io/styleguide/pyguide |
| Go | tabs | noexpandtab | go.dev/doc/effective_go (gofmt enforces) |
| Java | 2 spaces | expandtab | google.github.io/styleguide/javaguide |
| JavaScript/TS | 2 spaces | expandtab | google.github.io/styleguide/jsguide |
| Shell/Bash | 2 spaces | expandtab | google.github.io/styleguide/shellguide |
| Protobuf | 2 spaces | expandtab | protobuf.dev/programming-guides/style |
| HTML/CSS/XML | 2 spaces | expandtab | google.github.io/styleguide/htmlcssguide |
Formatting Tools¶
| Language | Formatter | Integration |
|---|---|---|
| C/C++ | clang-format | Auto on save (< 10k lines) |
| Python | (use LSP formatter or black) | Manual: Space cf |
| Go | goimports | Auto via gopls |
| JavaScript | prettier | Manual: Space cf |
| Rust | rustfmt | Auto via rust-analyzer |
| Terraform | terraform fmt | Auto via terraform-ls |