diff options
author | christianchiarulli <[email protected]> | 2021-07-01 23:42:26 -0400 |
---|---|---|
committer | christianchiarulli <[email protected]> | 2021-07-01 23:42:26 -0400 |
commit | 20ed47e21e966a5b857ef9970ae6171b3a504ce1 (patch) | |
tree | 92bdefc7589545f4429a55b53e4493ad7832e632 /ftplugin/lua.lua | |
parent | 9bb4f8a085644914c79343b48c808509311ee203 (diff) |
lsp in ftplugin austonautomoy
Diffstat (limited to 'ftplugin/lua.lua')
-rw-r--r-- | ftplugin/lua.lua | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/ftplugin/lua.lua b/ftplugin/lua.lua new file mode 100644 index 00000000..cfcd9b92 --- /dev/null +++ b/ftplugin/lua.lua @@ -0,0 +1,71 @@ +-- https://github.com/sumneko/lua-language-server/wiki/Build-and-Run-(Standalone) +local sumneko_root_path = DATA_PATH .. "/lspinstall/lua" +local sumneko_binary = sumneko_root_path .. "/sumneko-lua-language-server" + +require'lspconfig'.sumneko_lua.setup { + cmd = {sumneko_binary, "-E", sumneko_root_path .. "/main.lua"}, + on_attach = require'lsp'.common_on_attach, + settings = { + Lua = { + runtime = { + -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) + version = 'LuaJIT', + -- Setup your lua path + path = vim.split(package.path, ';') + }, + diagnostics = { + -- Get the language server to recognize the `vim` global + globals = {'vim'} + }, + workspace = { + -- Make the server aware of Neovim runtime files + library = { + [vim.fn.expand('$VIMRUNTIME/lua')] = true, + [vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true + }, + maxPreload = 10000 + } + } + } +} +if O.lang.lua.autoformat then + require('lv-utils').define_augroups({ + _lua_autoformat = { + { + 'BufWritePre', '*.lua', + 'lua vim.lsp.buf.formatting_sync(nil, 1000)' + } + } + }) +end + +local lua_arguments = {} + +local luaFormat = { + formatCommand = "lua-format -i --no-keep-simple-function-one-line --column-limit=80", + formatStdin = true +} + +local lua_fmt = { + formatCommand = "luafmt --indent-count 2 --line-width 120 --stdin", + formatStdin = true +} + +if O.lang.lua.formatter == 'lua-format' then + table.insert(lua_arguments, luaFormat) +elseif O.lang.lua.formatter == 'lua-fmt' then + table.insert(lua_arguments, lua_fmt) +end + +require"lspconfig".efm.setup { + -- init_options = {initializationOptions}, + cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"}, + init_options = {documentFormatting = true, codeAction = false}, + filetypes = {"lua"}, + settings = { + rootMarkers = {".git/"}, + languages = { + lua = lua_arguments, + } + } +} |