Daftar Bahasa Pemrograman dan Tool yang Mendukung Language Server Protocol (LSP)
Editor modern seperti VS Code, Neovim, Sublime, atau Emacs kini semakin powerful berkat adanya Language Server Protocol (LSP). Dengan LSP, fitur seperti autocomplete, linting, code navigation, hingga refactoring bisa dinikmati lintas bahasa tanpa harus membuat sistem baru dari nol untuk tiap editor.
Kita akan membahas:
- Apa itu LSP dan bagaimana cara kerjanya.
- Bahasa pemrograman dan tool yang sudah mendukung LSP.
- Cara instalasi beberapa LSP populer.
1. Konsep Dasar LSP
- LSP biasanya berupa binary (CLI tool) atau package yang harus di-install di sistem.
- Editor (misalnya VS Code atau Neovim) akan menjalankan LSP tersebut di background.
- Untuk menghubungkan editor dengan LSP, biasanya dibutuhkan plugin/extension tambahan.
Contoh:
- VS Code β langsung pakai extension dari marketplace.
- Neovim β biasanya via plugin manager (
nvim-lspconfig
). - Sublime / Emacs β ada package masing-masing untuk integrasi.
2. Bahasa dan Tool yang Sudah Punya LSP
Berikut daftar LSP berdasarkan kategori:
πΉ Bahasa Populer
- Go β gopls
- Python β pyright, pylsp
- JavaScript / TypeScript β typescript-language-server
- Java β jdt.ls
- C / C++ β clangd, ccls
- C# β omnisharp
- Rust β rust-analyzer
- PHP β intelephense, phpactor
- Ruby β solargraph, ruby-lsp
- Kotlin β kotlin-language-server
- Scala β metals
- Swift β sourcekit-lsp
- Dart / Flutter β dart-analysis-server
- Elixir β elixir-ls
- Haskell β haskell-language-server
- Lua β lua-language-server
- Zig β zls
- Nim β nimlsp
πΉ Bahasa Web & Scripting
- HTML β vscode-html-languageserver
- CSS / SCSS / LESS β vscode-css-languageserver
- JSON β vscode-json-languageserver
- YAML β yaml-language-server
- GraphQL β graphql-language-service
- Markdown β marksman, remark-lsp
πΉ Database & Query
- SQL β sqls, pgsql-language-server
- Prisma β prisma-language-server
πΉ DevOps / Infra
- Dockerfile β dockerfile-language-server
- Terraform (HCL) β terraform-ls
- Ansible β ansible-language-server
πΉ Lain-lain
- Clojure β clojure-lsp
- OCaml β ocaml-lsp
- F# β fsautocomplete
- Perl β perl-language-server
- R β languageserver
3. Instalasi Beberapa LSP Populer
Berikut contoh instalasi untuk bahasa-bahasa yang paling sering digunakan:
Go (gopls)
go install golang.org/x/tools/gopls@latest
Binary akan tersimpan di $GOPATH/bin
atau $HOME/go/bin
.
Pastikan path tersebut sudah masuk ke PATH
.
Python (pyright atau pylsp)
Pyright (direkomendasikan, berbasis TypeScript):
npm install -g pyright
Atau Python LSP:
pip install 'python-lsp-server[all]'
JavaScript / TypeScript
npm install -g typescript typescript-language-server
C / C++ (clangd)
Linux (Debian/Ubuntu):
sudo apt install clangd -y
Fedora:
sudo dnf install clang-tools-extra
Rust (rust-analyzer)
Cara resmi via Rustup:
rustup component add rust-analyzer
Atau manual:
cargo install rust-analyzer
PHP (intelephense)
npm install -g intelephense
HTML / CSS / JSON / YAML
npm install -g vscode-langservers-extracted
npm install -g yaml-language-server
Terraform
macOS:
brew install hashicorp/tap/terraform-ls
Atau download binary dari release GitHub terraform-ls.
Penutup
Dengan menggunakan Language Server Protocol (LSP), pengalaman ngoding jadi jauh lebih konsisten lintas bahasa dan editor. Cukup install server yang sesuai, integrasikan dengan editor favorit, dan semua fitur canggih seperti autocomplete, linting, dan refactoring langsung bisa dipakai.