diff --git a/.config/nvim/.emmyrc.json b/.config/nvim/.emmyrc.json new file mode 100644 index 0000000..cba48b9 --- /dev/null +++ b/.config/nvim/.emmyrc.json @@ -0,0 +1,5 @@ +{ + "diagnostics": { + "globals": [ "vim" ] + } +} diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 45de9ce..8e73de3 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -1,21 +1,21 @@ { "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, - "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, + "cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" }, "cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" }, "cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" }, "git-conflict.nvim": { "branch": "main", "commit": "4bbfdd92d547d2862a75b4e80afaf30e73f7bbb4" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "lualine.nvim": { "branch": "master", "commit": "15884cee63a8c205334ab13ab1c891cd4d27101a" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, - "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, - "neo-tree.nvim": { "branch": "v3.x", "commit": "1ef260eb4f54515fe121a2267b477efb054d108a" }, - "nui.nvim": { "branch": "main", "commit": "8d5b0b568517935d3c84f257f272ef004d9f5a59" }, + "lualine.nvim": { "branch": "master", "commit": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "87888865fa1ce1928a25b9abbea8c8f7839bf522" }, + "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, + "neo-tree.nvim": { "branch": "v3.x", "commit": "f481de16a0eb59c985abac8985e3f2e2f75b4875" }, + "nui.nvim": { "branch": "main", "commit": "7cd18e73cfbd70e1546931b7268b3eebaeff9391" }, "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, - "nvim-lint": { "branch": "master", "commit": "9dfb77ef6c5092a19502883c02dc5a02ec648729" }, - "nvim-lspconfig": { "branch": "master", "commit": "94d0fec9135719e046903bbbbf8f39e3d3436d4e" }, - "nvim-treesitter": { "branch": "master", "commit": "94ea4f436d2b59c80f02e293466c374584f03b8c" }, - "nvim-web-devicons": { "branch": "master", "commit": "50b5b06bff13a9b4eab946de7c7033649a6618a1" }, + "nvim-lint": { "branch": "master", "commit": "b47cbb249351873e3a571751c3fb66ed6369852f" }, + "nvim-lspconfig": { "branch": "master", "commit": "d45702594afc661a9dfa95e96acf18c56006d4d9" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, "oil.nvim": { "branch": "master", "commit": "685cdb4ffa74473d75a1b97451f8654ceeab0f4a" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, @@ -24,5 +24,5 @@ "tree-sitter-htmldjango": { "branch": "master", "commit": "25e4212f593a59504682984720b9c0a8171f4585" }, "vim-commentary": { "branch": "master", "commit": "64a654ef4a20db1727938338310209b6a63f60c9" }, "vim-startuptime": { "branch": "master", "commit": "b6f0d93f6b8cf6eee0b4c94450198ba2d6a05ff6" }, - "vim-wakatime": { "branch": "master", "commit": "e46d7c4f98ee0f40782008dd60cb2a79c377fb1d" } -} \ No newline at end of file + "vim-wakatime": { "branch": "master", "commit": "f39c4a201ae350aaba713b59d4a4fdd88e0811aa" } +} diff --git a/.config/nvim/lua/null/plugins/lsp.lua b/.config/nvim/lua/null/plugins/lsp.lua index 8234d7f..d184eae 100644 --- a/.config/nvim/lua/null/plugins/lsp.lua +++ b/.config/nvim/lua/null/plugins/lsp.lua @@ -2,20 +2,22 @@ require("null.util").lazy_file() return { { - "williamboman/mason.nvim", + "mason-org/mason.nvim", lazy = true, - config = function(_, opts) + config = function(_, _opts) require("mason").setup() end, }, { - "williamboman/mason-lspconfig.nvim", + "mason-org/mason-lspconfig.nvim", lazy = true, dependencies = { - "williamboman/mason.nvim", + "mason-org/mason.nvim", }, opts = { ensure_installed = { + "ast_grep", + -- >> Kotlin -- "kotlin_language_server", -- << Kotlin @@ -26,7 +28,14 @@ return { -- "ruff_lsp", -- << Python + -- >> Jinja "jinja_lsp", + -- << Jinja + + -- >> Lua + "emmylua_ls", + "luau_lsp", + -- << Lua }, automatic_installation = { exclude = { "rust_analyzer" } }, }, @@ -38,7 +47,7 @@ return { "neovim/nvim-lspconfig", lazy = true, dependencies = { - "williamboman/mason-lspconfig.nvim", + "mason-org/mason-lspconfig.nvim", }, opts = function() return { @@ -82,9 +91,25 @@ return { lsp.pyright.setup({ capabilities = capabilities, }) + -- FIXME: Causing memleak, probably not compatible with Oil / neotree -- lsp.kotlin_language_server.setup({ -- capabilities = capabilities, -- }) + lsp.emmylua_ls.setup({ + capabilities = capabilities, + root_markers = { + ".luarc.json", + "luarc.json", + ".git", + "lazy-lock.json", + ".emmyrc.json", + }, + settings = { + workspace = { + library = vim.api.nvim_get_runtime_file("lua/*.lua", true), + }, + }, + }) lsp.rust_analyzer.setup({ capabilities = capabilities, settings = { @@ -108,7 +133,7 @@ return { "mfussenegger/nvim-lint", event = { "LazyFile" }, dependencies = { - "williamboman/mason.nvim", + "mason-org/mason.nvim", }, opts = function() return { @@ -167,13 +192,14 @@ return { end, }, window = { - -- completion = cmp.config.window.bordered(), + completion = cmp.config.window.bordered(), -- documentation = cmp.config.window.bordered(), }, + -- NOTE: fallback function (or the first parameter inside `cmp.mapping(function(fallback) {})`) sends a already mapped key. mapping = cmp.mapping.preset.insert({ [""] = cmp.mapping.scroll_docs(-4), [""] = cmp.mapping.scroll_docs(4), - [""] = cmp.mapping.complete(), + [""] = cmp.mapping.complete(), -- Alt instead of Ctrl because Ctrl+Space is used by IME to switch between input method [""] = cmp.mapping.abort(), [""] = cmp.mapping(function(fallback) if cmp.visible() and not cmp.confirm() then @@ -188,7 +214,7 @@ return { -- elseif has_words_before() then -- cmp.complete() else - fallback() -- The fallback function sends a already mapped key. In this case, it"s probably ``. + fallback() end end, { "i", "s" }), [""] = cmp.mapping(function()