summaryrefslogtreecommitdiff
path: root/ftplugin/lua.lua
diff options
context:
space:
mode:
authorchristianchiarulli <[email protected]>2021-07-01 23:42:26 -0400
committerchristianchiarulli <[email protected]>2021-07-01 23:42:26 -0400
commit20ed47e21e966a5b857ef9970ae6171b3a504ce1 (patch)
tree92bdefc7589545f4429a55b53e4493ad7832e632 /ftplugin/lua.lua
parent9bb4f8a085644914c79343b48c808509311ee203 (diff)
lsp in ftplugin austonautomoy
Diffstat (limited to 'ftplugin/lua.lua')
-rw-r--r--ftplugin/lua.lua71
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,
+ }
+ }
+}