Tidak seperti beberapa server bahasa lain, yang bisa dibilang cukup mudah dalam melakukan penginstalan server bahasa, serta konfigurasinya, seperti tsserver, jsonls, ccsls, dan html, yang dimana penginstalan server bahasa dapat / cukup melalui npm.
Sedangkan lua-language-server
, jika dilihat pada dokumentasi di server_configurations.md, khususnya sumneko_lua, ada beberapa tahapan untuk dilakukan dalam proses penginstalan lua-language-server
.
Penginstalan
Tahapan atau proses penginstalan serser bahasa Lua atau lua-language-server
tersebut bisa dilihat pada petunjuk yang disediakan di halaman wiki/Getting-Started.
Tahapan-tahapan tersebut, khususnya windows, adalah sebagai berkiut:
1. Pertama, install package ninja
terlebih dahulu untuk build modul:
- Chocolatey:
choco install ninja
- Scoop:
scoop install ninja
Lihat cara install Chocolatey atau cara install Scoop jika belum menginstalnya.
2. Pastikan sudah menginstal C++17 untuk compiling.
3. Selanjutnya, clone repo proyek lua-language-server
.
git clone --depth=1 https://github.com/sumneko/lua-language-server cd lua-language-server git submodule update --depth 1 --init --recursive
4. Setelah kloning selesai, dan sudah berada di lokasi / path lua-language-server, selanjutnya jalankan di bawah ini:
cd 3rd\luamake compile\install.bat cd ..\.. 3rd\luamake\luamake.exe rebuild
5. Terakhir, tinggal pengaturan konfigurasi server bahasa sumneko_lua dengan lspconfig di vim (neovim):
Pengaturan konfigurasi yang akan di contohkan di bawah menggunakan struktur file dan kongiruasi lsp dari repo: wahyunanangwidodo/nvim. Jika ada perbedaan konfigurasi server bahasa lspconfig, silakan disesuaikan.
Pada file konfigurasi lsp, tambahkan di bawah ini.
//plugin/lsp.lua local root_dir = 'D:/nvim/servers/lua-language-server' local server_bin = '/bin/lua-language-server.exe' -- lspconfig.sumneko_lua.setup(require("lua-dev").setup({ lspconfig.sumneko_lua.setup({ cmd = { root_dir .. server_bin, '-E', root_dir .. '/main.lua' }, settings = { Lua = { runtime = { -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) version = 'LuaJIT', }, diagnostics = { -- Get the language server to recognize the `vim` global globals = {'vim'}, }, workspace = { -- Make the server aware of Neovim runtime files library = vim.api.nvim_get_runtime_file("", true), }, -- Do not send telemetry data containing a randomized but unique identifier telemetry = { enable = false, }, format = { enable = true, defaultConfig = { indent_style = "space", indent_size = "2", } }, }, }, })
Silakan ubah D:/nvim/servers/lua-language-server
pada 'root_dir' diatas dengan lokasi / path repo lua-language-server yang telah di kloning sebelumnya.
Sampai disini, tinggal compile ulang file loader packer :PackerCompile
, dan muat ulang vim.
Selesai
Instalasi dan pengaturan konfigurasi lua-language-server untuk sumneko_lua telah selesai. Silankan dicoba, dikembangkan, dan lakukan eksperimen.