diff --git a/.gitmodules b/.gitmodules index 98d519b..a1b492a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,3 +19,6 @@ [submodule "bundle/vim-table-mode"] path = bundle/vim-table-mode url = https://github.com/dhruvasagar/vim-table-mode.git +[submodule "opt/lua-language-server"] + path = opt/lua-language-server + url = https://github.com/LuaLS/lua-language-server.git diff --git a/README.md b/README.md new file mode 100644 index 0000000..c91b637 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# NVIM Configuration + +## Lua + + diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..9c47c8d --- /dev/null +++ b/build.sh @@ -0,0 +1,15 @@ +#!/bin/bash -e + +( + cd opt/lua-language-server + git submodule update --init --recursive + + ( + cd 3rd/luamake + ./compile/build.sh + ) + + 3rd/luamake/luamake rebuild +) + +# EOF diff --git a/lua/config/lsp/init.lua b/lua/config/lsp/init.lua index 21e3ae8..18f607c 100644 --- a/lua/config/lsp/init.lua +++ b/lua/config/lsp/init.lua @@ -1,14 +1,12 @@ -if vim.fn.has('nvim-0.5.1') == 1 then - require('vim.lsp.log').set_format_func(vim.inspect) -end - -vim.lsp.set_log_level("off") +require('vim.lsp.log').set_format_func(vim.inspect) +-- vim.lsp.set_log_level("debug") require("config.lsp.pyright") -- require("config.lsp.pylsp") -- require("config.lsp.typescript") require("config.lsp.clangd") require("config.lsp.vls") +require("config.lsp.lua_ls") local api = vim.api local keymap = vim.keymap.set diff --git a/lua/config/lsp/lua_ls.lua b/lua/config/lsp/lua_ls.lua new file mode 100644 index 0000000..cc94125 --- /dev/null +++ b/lua/config/lsp/lua_ls.lua @@ -0,0 +1,38 @@ +local bin_name = "lua-language-server" +local cmd = { bin_name, "--stdio", } + +local root_files = { + '.luarc.json', + '.luarc.jsonc', + '.luacheckrc', + '.stylua.toml', + 'stylua.toml', + 'selene.toml', + 'selene.yml', + 'lua/', + '.git', +} + +vim.api.nvim_create_autocmd("FileType", { + pattern = "lua", + callback = function() + vim.lsp.start({ + name = "lua_ls", + cmd = cmd, + root_dir = vim.fs.dirname(vim.fs.find(root_files, { upward = true })[1]), + settings = { + Lua = { + runtime = { + version = 'LuaJIT', + }, + workspace = { + checkThirdParty = false, + library = { + vim.env.VIMRUNTIME, + }, + }, + } + }, + }) + end, +}) diff --git a/lua/config/lsp/pyright.lua b/lua/config/lsp/pyright.lua index 7df829a..fb24d92 100644 --- a/lua/config/lsp/pyright.lua +++ b/lua/config/lsp/pyright.lua @@ -1,10 +1,6 @@ local bin_name = "pyright-langserver" local cmd = { bin_name, "--stdio", } -if vim.fn.has("win32") == 1 then - cmd = { "cmd.exe", "/C", bin_name, "--stdio" } -end - local root_files = { "pyproject.toml", "setup.py", diff --git a/opt/bin/lua-language-server b/opt/bin/lua-language-server new file mode 120000 index 0000000..e6a9c9b --- /dev/null +++ b/opt/bin/lua-language-server @@ -0,0 +1 @@ +../lua-language-server/bin/lua-language-server \ No newline at end of file diff --git a/opt/lua-language-server b/opt/lua-language-server new file mode 160000 index 0000000..2dfb12a --- /dev/null +++ b/opt/lua-language-server @@ -0,0 +1 @@ +Subproject commit 2dfb12ad3759acb7ff47b4c5c54ad0a62c598b22