From 98e3a594387b1c5e938fab344116f06fc8a229ac Mon Sep 17 00:00:00 2001 From: Dennis Date: Tue, 15 Apr 2025 20:49:59 +0200 Subject: [PATCH] Correctly sets up lua IDE --- home/modules/nvim/config/.luarc.json | 8 --- home/modules/nvim/config/lazy-lock.json | 2 +- home/modules/nvim/config/lsp/lua_ls.lua | 50 +++++++++++++++---- home/modules/nvim/config/lua/dnsc/lazy.lua | 2 +- home/modules/nvim/config/lua/dnsc/leader.lua | 5 -- home/modules/nvim/config/lua/dnsc/lsp.lua | 2 +- home/modules/nvim/config/lua/dnsc/options.lua | 44 ---------------- .../modules/nvim/config/lua/plugins/blink.lua | 9 ++-- .../nvim/config/lua/plugins/lazydev.lua | 7 +++ 9 files changed, 56 insertions(+), 73 deletions(-) delete mode 100644 home/modules/nvim/config/.luarc.json delete mode 100644 home/modules/nvim/config/lua/dnsc/leader.lua delete mode 100644 home/modules/nvim/config/lua/dnsc/options.lua create mode 100644 home/modules/nvim/config/lua/plugins/lazydev.lua diff --git a/home/modules/nvim/config/.luarc.json b/home/modules/nvim/config/.luarc.json deleted file mode 100644 index 4c33a66..0000000 --- a/home/modules/nvim/config/.luarc.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "runtime.version": "LuaJIT", - "runtime.path": ["lua/?.lua", "lua/?/init.lua"], - "diagnostics.globals": ["vim", "Snacks"], - "workspace.checkThirdParty": false, - "workspace.library": ["$VIMRUNTIME"] -} - diff --git a/home/modules/nvim/config/lazy-lock.json b/home/modules/nvim/config/lazy-lock.json index cc3272d..73e7829 100644 --- a/home/modules/nvim/config/lazy-lock.json +++ b/home/modules/nvim/config/lazy-lock.json @@ -5,11 +5,11 @@ "flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" }, "follow-md-links.nvim": { "branch": "main", "commit": "ce8735a15dc3e5fc5bb052ec51b849c03e57df53" }, "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, - "fzf-lua": { "branch": "main", "commit": "47b85a25c0c0b2c20b4e75199ed01bb71e7814f5" }, "gitsigns.nvim": { "branch": "main", "commit": "17ab794b6fce6fce768430ebc925347e349e1d60" }, "go.nvim": { "branch": "master", "commit": "ef38820e413e10f47d83688dee41785bd885fb2a" }, "guihua.lua": { "branch": "master", "commit": "d783191eaa75215beae0c80319fcce5e6b3beeda" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, + "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, "lualine.nvim": { "branch": "master", "commit": "1ba400068bc178eb698b96ecfde82db59e7a7b8f" }, "mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" }, "mini.pairs": { "branch": "main", "commit": "69864a2efb36c030877421634487fd90db1e4298" }, diff --git a/home/modules/nvim/config/lsp/lua_ls.lua b/home/modules/nvim/config/lsp/lua_ls.lua index 8eee0ab..c83c91c 100644 --- a/home/modules/nvim/config/lsp/lua_ls.lua +++ b/home/modules/nvim/config/lsp/lua_ls.lua @@ -1,16 +1,46 @@ return { - cmd = { 'lua-language-server' }, - filetypes = { 'lua' }, + cmd = { "lua-language-server" }, + filetypes = { "lua" }, root_markers = { - '.luarc.json', - '.luarc.jsonc', - '.luacheckrc', - '.stylua.toml', - 'stylua.toml', - 'selene.toml', - 'selene.yml', - '.git', + ".luarc.json", + ".luarc.jsonc", + ".luacheckrc", + ".stylua.toml", + "stylua.toml", + "selene.toml", + "selene.yml", + ".git", }, single_file_support = true, log_level = vim.lsp.protocol.MessageType.Warning, + on_init = function(client) + if client.workspace_folders then + local path = client.workspace_folders[1].name + if + path ~= vim.fn.stdpath("config") + and (vim.uv.fs_stat(path .. "/.luarc.json") or vim.uv.fs_stat(path .. "/.luarc.jsonc")) + then + return + end + end + + client.config.settings.Lua = vim.tbl_deep_extend("force", client.config.settings.Lua, { + runtime = { + version = "LuaJIT", + }, + workspace = { + checkThirdParty = false, + library = { + vim.env.VIMRUNTIME, + }, + }, + }) + end, + settings = { + Lua = { + diagnostics = { + globals = { "vim" }, + }, + }, + }, } diff --git a/home/modules/nvim/config/lua/dnsc/lazy.lua b/home/modules/nvim/config/lua/dnsc/lazy.lua index d72a2b4..286d264 100644 --- a/home/modules/nvim/config/lua/dnsc/lazy.lua +++ b/home/modules/nvim/config/lua/dnsc/lazy.lua @@ -41,7 +41,7 @@ local options = { splitright = true, -- force all vertical splits to go to the right of current window swapfile = false, -- creates a swapfile termguicolors = true, -- set term gui colors (most terminals support this) - timeoutlen = 200, -- time to wait for a mapped sequence to complete (in milliseconds) + timeoutlen = 600, -- time to wait for a mapped sequence to complete (in milliseconds) undofile = true, -- enable persistent undo updatetime = 230, -- faster completion (4000ms default) writebackup = false, -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited diff --git a/home/modules/nvim/config/lua/dnsc/leader.lua b/home/modules/nvim/config/lua/dnsc/leader.lua deleted file mode 100644 index 22eacc8..0000000 --- a/home/modules/nvim/config/lua/dnsc/leader.lua +++ /dev/null @@ -1,5 +0,0 @@ -local opts = { noremap = true, silent = true, expr = true } - -vim.g.mapleader = " " -vim.g.maplocalleader = " " -vim.keymap.set("", "", "", opts) diff --git a/home/modules/nvim/config/lua/dnsc/lsp.lua b/home/modules/nvim/config/lua/dnsc/lsp.lua index 3e3f3ff..21db454 100644 --- a/home/modules/nvim/config/lua/dnsc/lsp.lua +++ b/home/modules/nvim/config/lua/dnsc/lsp.lua @@ -16,7 +16,7 @@ vim.api.nvim_create_autocmd("LspAttach", { local opts = { buffer = args.buf } vim.keymap.set("n", "", "", opts) - vim.keymap.set("n", "e", "vim.diagnostic.open_float()", opts) + vim.keymap.set("n", "e", "lua vim.diagnostic.open_float()", opts) vim.keymap.set("n", "ca", "lua vim.lsp.buf.code_action()", opts) end, }) diff --git a/home/modules/nvim/config/lua/dnsc/options.lua b/home/modules/nvim/config/lua/dnsc/options.lua deleted file mode 100644 index 2627229..0000000 --- a/home/modules/nvim/config/lua/dnsc/options.lua +++ /dev/null @@ -1,44 +0,0 @@ -local options = { - backup = false, -- creates a backup file - clipboard = "unnamedplus", -- allows neovim to access the system clipboard - cmdheight = 1, -- more space in the neovim command line for displaying messages - completeopt = { "menu", "menuone", "noselect" }, -- mostly just for cmp - conceallevel = 0, -- so that `` is visible in markdown files - fileencoding = "utf-8", -- the encoding written to a file - hlsearch = true, -- highlight all matches on previous search pattern - ignorecase = true, -- ignore case in search patterns - mouse = "a", -- allow the mouse to be used in neovim - pumheight = 10, -- pop up menu height - showmode = false, -- we don't need to see things like -- INSERT -- anymore - smartindent = true, - breakindent = true, - showtabline = 0, -- always show tabs - smartcase = true, -- smart case - splitbelow = true, -- force all horizontal splits to go below current window - splitright = true, -- force all vertical splits to go to the right of current window - swapfile = false, -- creates a swapfile - termguicolors = true, -- set term gui colors (most terminals support this) - timeoutlen = 200, -- time to wait for a mapped sequence to complete (in milliseconds) - undofile = true, -- enable persistent undo - updatetime = 230, -- faster completion (4000ms default) - writebackup = false, -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited - expandtab = true, -- convert tabs to spaces - shiftwidth = 2, -- the number of spaces inserted for each indentation - tabstop = 2, -- insert 2 spaces for a tab - cursorline = true, -- highlight the current line - number = true, -- set numbered lines - relativenumber = true, -- set relative numbered lines - numberwidth = 4, -- set number column width to 2 {default 4} - signcolumn = "yes", -- always show the sign column, otherwise it would shift the text each time - linebreak = true, - breakat = " ^I!@*-+;:,./?", - scrolloff = 6, -- is one of my fav - sidescrolloff = 4, - winbar = nil, -} - -vim.opt.shortmess:append("c") - -for k, v in pairs(options) do - vim.opt[k] = v -end diff --git a/home/modules/nvim/config/lua/plugins/blink.lua b/home/modules/nvim/config/lua/plugins/blink.lua index 66c1a7a..525895e 100644 --- a/home/modules/nvim/config/lua/plugins/blink.lua +++ b/home/modules/nvim/config/lua/plugins/blink.lua @@ -14,8 +14,6 @@ return { appearance = { nerd_font_variant = "mono", }, - -- (Default) Only show the documentation popup when manually triggered - -- C-k: Toggle signature help (if signature.enabled = true) completion = { documentation = { auto_show = false }, list = { @@ -29,10 +27,15 @@ return { enabled = true, }, sources = { - default = { "lsp", "path", "snippets", "buffer" }, + default = { "lazydev", "lsp", "path", "snippets", "buffer" }, per_filetype = { sql = { "dadbod" } }, providers = { dadbod = { module = "vim_dadbod_completion.blink" }, + lazydev = { + name = "LazyDev", + module = "lazydev.integrations.blink", + score_offset = 100, + }, }, }, fuzzy = { implementation = "prefer_rust_with_warning" }, diff --git a/home/modules/nvim/config/lua/plugins/lazydev.lua b/home/modules/nvim/config/lua/plugins/lazydev.lua new file mode 100644 index 0000000..c5003dc --- /dev/null +++ b/home/modules/nvim/config/lua/plugins/lazydev.lua @@ -0,0 +1,7 @@ +return { + { + "folke/lazydev.nvim", + ft = "lua", -- only load on lua files + opts = {}, + }, +}