Autocomplete, navigasi ke definisi, dan penandaan kesalahan pada editor berasal dari sebuah program terpisah bernama language server. Untuk Go, language server resminya adalah gopls, dibaca “go please”, yang dikembangkan oleh tim Go di repositori golang.org/x/tools. Editor kita hanya bertindak sebagai klien yang bertanya kepada gopls; seluruh analisis kode yang berat dikerjakan oleh gopls dengan mesin yang konsisten dengan compiler Go. Pada chapter ini kita akan memasang gopls secara manual, memahami ke mana berkas hasil instalasinya pergi, lalu menghubungkannya ke editor pilihan kita.
Apa Itu Language Server #
Language server berkomunikasi dengan editor melalui protokol terbuka bernama LSP (Language Server Protocol). Protokol ini mendefinisikan pesan-pesan standar seperti “lengkapi kode di posisi ini” atau “diagnosis kesalahan apa yang ada di berkas ini”. Berkat standar tersebut, satu gopls yang sama melayani VS Code, Neovim, Emacs, Sublime Text, dan editor lain tanpa penyesuaian khusus per editor. Ketika gopls memperbaiki kemampuan analisisnya, seluruh editor yang memakainya mendapat perbaikan yang sama sekaligus.
Memasang gopls dari Terminal #
Instalasi manual gopls memakai satu perintah go install dengan versi @latest:
go install golang.org/x/tools/gopls@latestPerintah tersebut mengunduh source code gopls beserta seluruh dependensinya ke module cache, mengompilasi semuanya dari nol, lalu menaruh berkas biner gopls di direktori yang ditunjukkan variabel GOBIN. Proses kompilasinya memakan waktu beberapa menit karena gopls adalah program yang cukup besar, dan terminal akan menampilkan kemajuan unduhan module selama proses berlangsung. Contoh tampilan hasil pada awal proses di komputer dengan koneksi normal:
go: downloading golang.org/x/tools v0.x.y
go: downloading golang.org/x/mod v0.x.y
go: downloading golang.org/x/sync v0.x.yNilai v0.x.y pada tampilan ilustrasi di atas menunjukkan nomor versi rilis yang berubah seiring waktu, jangan dianggap sebagai angka pasti. Setelah kompilasi selesai tanpa galat, perintah go install tidak mencetak pesan apa pun dan prompt terminal kembali siap.
Lokasi target instalasi dapat diperiksa lebih dahulu dengan perintah go env. Hasil berikut diambil dari lingkungan penulisan materi ini:
go env GOBINOutput yang Dihasilkan:
/home/z/go/binKarena GOBIN belum diatur, nilai tersebut mengikuti bawaan $GOPATH/bin sebagaimana dibahas pada chapter Konfigurasi GOROOT dan GOPATH
. Setelah instalasi selesai, keberadaan gopls dapat diperiksa dengan menjalankan gopls version di terminal. Contoh tampilan hasilnya:
golang.org/x/tools/gopls v0.x.y
golang.org/x/tools/[email protected] h1:...Menghubungkan gopls ke Editor #
Sebagian besar editor menemukan gopls secara otomatis karena editor tersebut mencari perintah gopls di PATH. Tabel berikut merangkum cara aktivasinya:
| Editor | Cara mengaktifkan gopls |
|---|---|
| VS Code | pasang ekstensi Go resmi; gopls diunduh dan diperbarui otomatis |
| Neovim | arahkan konfigurasi LSP bawaan ke server gopls |
| Emacs | aktifkan eglot atau lsp-mode pada major mode Go |
| Sublime Text | pasang paket LSP lalu pilih gopls sebagai server Go |
Membarui gopls #
gopls dirilis mengikuti ritmenya sendiri dan terpisah dari rilis bahasa Go, sehingga versi terbarunya kerap memuat perbaikan diagnosis dan peningkatan kecepatan. Pembaruan dilakukan dengan mengulang perintah instalasi yang sama: go install golang.org/x/tools/gopls@latest akan mengganti berkas biner lama dengan versi terbaru. Pengguna VS Code tidak perlu melakukan apa pun karena ekstensi Go memeriksa dan memperbarui gopls secara berkala.
Dengan language server yang siap, seluruh fondasi lingkungan kerja kita telah lengkap. Tinggal satu keterampilan praktis yang perlu dikuasai: mengoperasikan perintah-perintah Go langsung dari terminal, yang menjadi fokus chapter berikutnya.
Referensi #
- gopls — dokumentasi resmi gopls: instalasi, konfigurasi, dan editor yang didukung.
- Command go
— dokumentasi perintah
go installbeserta variabelGOBIN.