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.

