Skip to content

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)

autocmd FileType c,cpp,h,hpp setlocal tabstop=2 shiftwidth=2 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)

autocmd FileType python setlocal tabstop=4 shiftwidth=4
  • LSP: pyright (auto-installed)
  • Run: :FloatermNew python3 %

Go (tabs, not spaces)

autocmd FileType go setlocal noexpandtab tabstop=4 shiftwidth=4
  • 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:

:LspInstallServer

That's it. The server downloads, installs, and activates automatically.

Checking LSP Status

:LspStatus

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