From b51f1ae28924a752258e7607fbc3210f9b18eaac Mon Sep 17 00:00:00 2001 From: Gustaf Rydholm Date: Thu, 22 Jul 2021 00:08:36 +0200 Subject: Updates based on Chris's lunarvim --- .config/nvim/lua/lang/lua.lua | 88 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 .config/nvim/lua/lang/lua.lua (limited to '.config/nvim/lua/lang/lua.lua') diff --git a/.config/nvim/lua/lang/lua.lua b/.config/nvim/lua/lang/lua.lua new file mode 100644 index 0000000..c7305d0 --- /dev/null +++ b/.config/nvim/lua/lang/lua.lua @@ -0,0 +1,88 @@ + +local M = {} + +M.config = function() + O.lang.lua = { + diagnostics = { + virtual_text = { spacing = 0, prefix = "" }, + signs = true, + underline = true, + }, + formatter = { + exe = "stylua", + args = {}, + stdin = false, + }, + linters = { "luacheck" }, + lsp = { + path = DATA_PATH .. "/lspinstall/lua/sumneko-lua-language-server", + }, + } +end + +M.format = function() + O.formatters.filetype["lua"] = { + function() + return { + exe = O.lang.lua.formatter.exe, + args = O.lang.lua.formatter.args, + stdin = O.lang.lua.formatter.stdin, + tempfile_prefix = ".formatter", + } + end, + } + + require("formatter.config").set_defaults { + logging = false, + filetype = O.formatters.filetype, + } +end + +M.lint = function() + require("lint").linters_by_ft = { + lua = O.lang.lua.linters, + } +end + +M.lsp = function() + if not require("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", "O" }, + }, + 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 -- cgit v1.2.3-70-g09d2