diff options
Diffstat (limited to 'lua/lang/lua.lua')
-rw-r--r-- | lua/lang/lua.lua | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/lua/lang/lua.lua b/lua/lang/lua.lua new file mode 100644 index 00000000..585178d7 --- /dev/null +++ b/lua/lang/lua.lua @@ -0,0 +1,71 @@ +local M = {} + +M.config = function() + -- TODO: implement config for language + return "No config available!" +end + +M.format = function() + O.formatters.filetype["lua"] = { + function() + return { + exe = O.lang.lua.formatter.exe, + args = O.lang.lua.formatter.args, + stdin = not (O.lang.lua.formatter.stdin ~= nil), + } + end, + } + + require("formatter.config").set_defaults { + logging = false, + filetype = O.formatters.filetype, + } +end + +M.lint = function() + -- TODO: implement linters (if applicable) + return "No linters configured!" +end + +M.lsp = function() + if not require("lv-utils").check_lsp_client_active "sumneko_lua" then + -- 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 = 100000, + preloadFileSize = 1000, + }, + }, + }, + } + end +end + +M.dap = function() + -- TODO: implement dap + return "No DAP configured!" +end + +return M |