Setup LSP Solargraph untuk Rails di Neovim
Pendahuluan
Language Server Protocol sangat membantu developer saat proses membangun aplikasi. Solargraph adalah salah satu LSP yang populer digunakan dikalangan Ruby programmer dan Rails developer. Catatan ini akan mendokumentasikan cara saya melakukan setup terhadap Solargraph pada Rails project di Neovim.
Sekilas tentang Solargraph
Dikutip dari halaman official site dari solargraph,
Solargraph is a Ruby language server and suite of static analysis tools. The language server provides intellisense, autocompletion, diagnostics, and other language features for editors and IDEs with language client capabilities. The static analysis tools check code for type safety.
Fitur yang ditawarkan, antara lain:
- Context-aware autocompletion
- Documentation for the Ruby core
- Gem support
- Linting and diagnostics
- Type checking
Ruby programmer atau Rails developer pasti sudah familiar dengan gem ini.
Setup
Setup Solargraph di Neovim (Lua)
Saya menggunakan Neovim dengan konfiguasi lua.
1local on_attach = function(client, bufnr)2 if client.server_capabilities.documentSymbolProvider then3 navic.attach(client, bufnr)4 end5end67require("lspconfig").solargraph.setup({8 on_attach = on_attach9})
Solargraph belum akan berjalan karena kita perlu memasang Solargraph gem terlebih dahulu.
Setup Solargraph di Rails project
Install solargraph & solargraph-rails
Gem yang diperlukan tentu saja solargraph
dan juga solargraph-rails
. Namun, kita tidak perlu memasukkannya ke dalam Gemfile
project kita.
Cukup install sendiri di dalam lokal project kita. Karena bisa jadi anggota tim kita tidak menggunakan Solargraph.
$ gem install solargraph solargraph-rails
Initialize file konfigurasi dengan menjalankan perintah di bawah pada direktori root dari Rails project.
$ solargraph config
Perintah di atas, akan otomatis membuatkan kita file .solargraph.yml
di Root Rails project dan sudah memiliki default template di dalamnya.
Modifikasi isinya seperti di bawah ini
1---2include:3- "**/*.rb"4exclude:5- spec/**/*6- test/**/*7- vendor/**/*8- ".bundle/**/*"9require:10- rails11domains: []12reporters:13- rubocop14- require_not_found15formatter:16 rubocop:17 cops: safe18 except: []19 only: []20 extra_args: []21require_paths: []22plugins:23- solargraph-rails24max_files: 5000
Yang saya tambahkan adalah bagian,
1require:2- rails
dan
1plugins:2- solargraph-rails
Rubocop sebagai Linter
Secara default Solargraph menggunakan Rubocop sebagai linter. Pasang juga.
$ gem install rubocop
Kalau mau menginisialisasi file confignya gunakan perintah di bawah ini
$ rubocop --auto-gen-config
Perintah di atas akan mengenerate konfigurasi default untuk Rubocop yaitu file .rubocop.yml
dan .rubocop_todo.yml
di Root Rails prject kita.
Sip!
Konfigurasi sudah selesai, dengan begini kita sudah dapat memanfaatkan kemampuan LSP Solargraph di Neovim kita.
Keymap | Action |
---|---|
g+d | Jump to definition |
shift+k | Show hover documentation |
g+r | Open quickfix with all references to method |
r+n | Rename method and update references |
Daftarkan .solargraph.yml, .rubocop.yml, dan .rubocop_todo.yml ke .gitignore
Agar tidak mengganggu isi dari direktori Root Rails project, kita perlu mendaftarkan file-file konfigurasi yaml yang telah dibuat ke dalam file .gitignore
.
1/.rubocop*.yml2/.solargraph.yml
Pesan Penulis
Terima kasih sudah mampir yaa.
Referensi
-
https://solargraph.org/
Diakses tanggal: 2023/07/08 -
https://github.com/castwide/solargraph
Diakses tanggal: 2023/07/08 -
https://github.com/iftheshoefritz/solargraph-rails
Diakses tanggal: 2023/07/08