From a6e02d4c041a3507da050a02d1685d2134fb2226 Mon Sep 17 00:00:00 2001 From: David Senoner Date: Fri, 1 Nov 2024 23:12:38 +0100 Subject: [PATCH 01/10] lazy: split treesitter plugin --- lua/plugins/treesitter.lua | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 lua/plugins/treesitter.lua diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua new file mode 100644 index 0000000..42c82ae --- /dev/null +++ b/lua/plugins/treesitter.lua @@ -0,0 +1,14 @@ +return { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + + config = function() + local config = require("nvim-treesitter.configs") + + config.setup({ + ensure_installed = { "asm", "c", "javascript", "latex", "lua", "matlab", "meson", "sql", "toml", "typescript", "verilog", "vue" }, + highlight = { enable = true }, + indent = { enable = true } + }) + end +} From 60c9579bab19b62892ee9710246fd7db90731d44 Mon Sep 17 00:00:00 2001 From: David Senoner Date: Fri, 1 Nov 2024 23:13:03 +0100 Subject: [PATCH 02/10] lazy: split completion plugins --- lua/plugins/completion.lua | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 lua/plugins/completion.lua diff --git a/lua/plugins/completion.lua b/lua/plugins/completion.lua new file mode 100644 index 0000000..af17486 --- /dev/null +++ b/lua/plugins/completion.lua @@ -0,0 +1,29 @@ +return { + { + "hrsh7th/cmp-nvim-lsp" + }, + { + "hrsh7th/nvim-cmp", + + config = function() + local cmp = require("cmp") + + cmp.setup({ + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered() + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.abort(), + [""] = cmp.mapping.confirm({ select = true }), + }), + sources = cmp.config.sources({ + { name = "nvim_lsp" } + }) + }) + end + } +} From afdc9169ae555a9133e715783e88c9ff7f8cc412 Mon Sep 17 00:00:00 2001 From: David Senoner Date: Fri, 1 Nov 2024 23:13:35 +0100 Subject: [PATCH 03/10] lazy: split mason plugins --- lua/plugins/lsp.lua | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 lua/plugins/lsp.lua diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua new file mode 100644 index 0000000..037c0ad --- /dev/null +++ b/lua/plugins/lsp.lua @@ -0,0 +1,20 @@ +return { + { + "williamboman/mason.nvim", + + config = function() + require("mason").setup() + end + }, + { + "williamboman/mason-lspconfig.nvim", + + config = function() + local mason_lspconfig = require("mason") + + mason_lspconfig.setup({ + ensure_installed = { "clangd", "texlab", "lua_ls", "matlab_ls", "mesonlsp", "sqlls", "svlangserver", "ts_ls", "volar" } + }) + end + } +} From f141c8937a159c77274ddca4003d4866d1a3ad54 Mon Sep 17 00:00:00 2001 From: David Senoner Date: Fri, 1 Nov 2024 23:14:18 +0100 Subject: [PATCH 04/10] lazy: split neovim-lspconfig plugin --- lua/plugins/lspconfig.lua | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 lua/plugins/lspconfig.lua diff --git a/lua/plugins/lspconfig.lua b/lua/plugins/lspconfig.lua new file mode 100644 index 0000000..5c65d65 --- /dev/null +++ b/lua/plugins/lspconfig.lua @@ -0,0 +1,19 @@ +return { + "neovim/nvim-lspconfig", + + config = function() + local lspconfig = require("lspconfig") + + lspconfig.clangd.setup({ + cmd = { "clangd", "-header-insertion=never" }, + }) + lspconfig.lua_ls.setup({}) + lspconfig.matlab_ls.setup({}) + lspconfig.mesonlsp.setup({}) + lspconfig.sqlls.setup({}) + lspconfig.svlangserver.setup({}) + lspconfig.texlab.setup({}) + lspconfig.ts_ls.setup({}) + lspconfig.volar.setup({}) + end +} From 8197dd257d0c5642d7270de05874787fd0e106a3 Mon Sep 17 00:00:00 2001 From: David Senoner Date: Fri, 1 Nov 2024 23:15:13 +0100 Subject: [PATCH 05/10] nvim: move vim opts to separate file --- init.lua | 83 +++------------------------------------------ lua/vim-options.lua | 12 +++++++ 2 files changed, 16 insertions(+), 79 deletions(-) create mode 100644 lua/vim-options.lua diff --git a/init.lua b/init.lua index 9caf011..9e65493 100644 --- a/init.lua +++ b/init.lua @@ -1,11 +1,4 @@ -vim.opt.number = true -vim.opt.expandtab = true -vim.opt.number = true -vim.opt.tabstop = 2 -vim.opt.softtabstop = 2 -vim.opt.shiftwidth = 2 -vim.opt.title = true -vim.opt.whichwrap = "<,>,[,]" +require("vim-options") local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then @@ -18,77 +11,9 @@ if not vim.loop.fs_stat(lazypath) then lazypath, }) end + vim.opt.rtp:prepend(lazypath) - -local plugins = { - { "rebelot/kanagawa.nvim", name = "kanagawa", priority = 1000 }, - { - "nvim-telescope/telescope.nvim", tag = "0.1.8", - dependencies = { "nvim-lua/plenary.nvim" } - }, - { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" }, - { "williamboman/mason.nvim" }, - { "williamboman/mason-lspconfig.nvim" }, - { "neovim/nvim-lspconfig" }, - { "hrsh7th/nvim-cmp" }, - { "hrsh7th/cmp-nvim-lsp" }, -} - -require("lazy").setup(plugins, {}) - -vim.cmd.colorscheme "kanagawa-dragon" -local builtin = require("telescope.builtin") - -local configs = require("nvim-treesitter.configs") - -configs.setup({ - ensure_installed = { "asm", "c", "javascript", "latex", "lua", "matlab", "meson", "sql", "toml", "typescript", "verilog", "vue" }, - highlight = { enable = true }, - indent = { enable = true } +require("lazy").setup({ + spec = "plugins" }) -require("mason").setup() -require("mason-lspconfig").setup({ - ensure_installed = { "clangd", "texlab", "lua_ls", "matlab_ls", "mesonlsp", "sqlls", "svlangserver", "ts_ls", "volar" } -}) - -local lspconfig = require("lspconfig") - -lspconfig.clangd.setup({ - cmd = { "clangd", "-header-insertion=never" }, -}) -lspconfig.lua_ls.setup({}) -lspconfig.matlab_ls.setup({}) -lspconfig.mesonlsp.setup({}) -lspconfig.sqlls.setup({}) -lspconfig.svlangserver.setup({}) -lspconfig.texlab.setup({}) -lspconfig.ts_ls.setup({}) -lspconfig.volar.setup({}) - -local cmp = require("cmp") - -cmp.setup({ - window = { - completion = cmp.config.window.bordered(), - documentation = cmp.config.window.bordered(), - }, - mapping = cmp.mapping.preset.insert({ - [""] = cmp.mapping.scroll_docs(-4), - [""] = cmp.mapping.scroll_docs(4), - [""] = cmp.mapping.complete(), - [""] = cmp.mapping.abort(), - [""] = cmp.mapping.confirm({ select = true }), - }), - sources = cmp.config.sources({ - { name = "nvim_lsp" }, - }), -}) - -vim.keymap.set("n", "T", function() vim.lsp.buf.definition() end, {}) -vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {}) -vim.keymap.set("n", "J", function() vim.lsp.buf.type_definition() end, {}) -vim.keymap.set("n", "C", function() vim.lsp.buf.code_action() end, {}) - -vim.keymap.set("n", "", builtin.find_files, {}) -vim.keymap.set("n", "", builtin.live_grep, {}) diff --git a/lua/vim-options.lua b/lua/vim-options.lua new file mode 100644 index 0000000..a012d41 --- /dev/null +++ b/lua/vim-options.lua @@ -0,0 +1,12 @@ +vim.cmd("set number") +vim.cmd("set expandtab") +vim.cmd("set tabstop=2") +vim.cmd("set softtabstop=2") +vim.cmd("set shiftwidth=2") +vim.cmd("set title") + +vim.keymap.set("n", "T", function() vim.lsp.buf.definition() end, {}) +vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {}) +vim.keymap.set("n", "J", function() vim.lsp.buf.type_definition() end, {}) +vim.keymap.set("n", "C", function() vim.lsp.buf.code_action() end, {}) + From 40fa8c3adecc8aa122965855cf54c1873470e57f Mon Sep 17 00:00:00 2001 From: David Senoner Date: Mon, 4 Nov 2024 11:11:43 +0100 Subject: [PATCH 06/10] vim: add scrolloff --- lua/vim-options.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/vim-options.lua b/lua/vim-options.lua index a012d41..5b4b5ee 100644 --- a/lua/vim-options.lua +++ b/lua/vim-options.lua @@ -1,6 +1,7 @@ vim.cmd("set number") vim.cmd("set expandtab") vim.cmd("set tabstop=2") +vim.cmd("set scrolloff=4") vim.cmd("set softtabstop=2") vim.cmd("set shiftwidth=2") vim.cmd("set title") From 49015143c55364e473c2ef8d9ecb1c09307adb9f Mon Sep 17 00:00:00 2001 From: David Senoner Date: Mon, 20 Jan 2025 15:57:43 +0100 Subject: [PATCH 07/10] colorscheme: improve selection of colorscheme --- lua/plugins/colorscheme.lua | 8 +++++++- lua/vim-options.lua | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/lua/plugins/colorscheme.lua b/lua/plugins/colorscheme.lua index 55227ad..0af4ee2 100644 --- a/lua/plugins/colorscheme.lua +++ b/lua/plugins/colorscheme.lua @@ -4,6 +4,12 @@ return { priority = 1000, config = function () - vim.cmd("colorscheme kanagawa-dragon") + local conf = require("kanagawa") + + conf.setup({ + theme = "dragon" + }) + + vim.cmd("colorscheme kanagawa") end } diff --git a/lua/vim-options.lua b/lua/vim-options.lua index 5b4b5ee..7d83804 100644 --- a/lua/vim-options.lua +++ b/lua/vim-options.lua @@ -1,3 +1,4 @@ +vim.o.background = "" vim.cmd("set number") vim.cmd("set expandtab") vim.cmd("set tabstop=2") @@ -11,3 +12,23 @@ vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {}) vim.keymap.set("n", "J", function() vim.lsp.buf.type_definition() end, {}) vim.keymap.set("n", "C", function() vim.lsp.buf.code_action() end, {}) + +local prettier = function() + local clients = vim.lsp.get_active_clients() + for _, client in pairs(clients) do + if (client.name == "svelte") then + local path = vim.api.nvim_buf_get_name(0):gsub("%(", "\\("):gsub("%)", "\\)") + local command = "npx prettier --write " .. path + vim.system(vim.split(command, " ")):wait() + vim.cmd("e") + end + if (client.name == "texlab") then + local path = vim.api.nvim_buf_get_name(0):gsub("%(", "\\("):gsub("%)", "\\)") + local command = "pdflatex " .. path + vim.system(vim.split(command, " ")):wait() + print("Done") + end + end +end + +vim.keymap.set("n", "", function() prettier() end, {}) From e02b5d9e03b2a6887ff66aec3f45967ac14c68a6 Mon Sep 17 00:00:00 2001 From: David Senoner Date: Sun, 26 Jan 2025 19:26:48 +0100 Subject: [PATCH 08/10] lspconfig: fix vue lsp --- lua/plugins/lspconfig.lua | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lua/plugins/lspconfig.lua b/lua/plugins/lspconfig.lua index 5c65d65..bc51a6c 100644 --- a/lua/plugins/lspconfig.lua +++ b/lua/plugins/lspconfig.lua @@ -3,6 +3,8 @@ return { config = function() local lspconfig = require("lspconfig") + local mason_registry = require("mason-registry") + local volar_path = mason_registry.get_package("vue-language-server"):get_install_path() .. "/node_modules/@vue/language-server" lspconfig.clangd.setup({ cmd = { "clangd", "-header-insertion=never" }, @@ -13,7 +15,19 @@ return { lspconfig.sqlls.setup({}) lspconfig.svlangserver.setup({}) lspconfig.texlab.setup({}) - lspconfig.ts_ls.setup({}) + + lspconfig.ts_ls.setup({ + init_options = { + plugins = { + { + name = "@vue/typescript-plugin", + location = vue_language_server_path, + languages = { "vue" }, + }, + }, + }, + filetypes = { "typescript", "javascript", "javascriptreact", "typescriptreact", "vue" }, + }) lspconfig.volar.setup({}) end } From db54c6be3a44d77de30b190cbb2baeebafe1a698 Mon Sep 17 00:00:00 2001 From: David Senoner Date: Sun, 26 Jan 2025 19:30:13 +0100 Subject: [PATCH 09/10] treesitter: add css support in vue files --- lua/plugins/treesitter.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua index 42c82ae..1f913d2 100644 --- a/lua/plugins/treesitter.lua +++ b/lua/plugins/treesitter.lua @@ -6,7 +6,7 @@ return { local config = require("nvim-treesitter.configs") config.setup({ - ensure_installed = { "asm", "c", "javascript", "latex", "lua", "matlab", "meson", "sql", "toml", "typescript", "verilog", "vue" }, + ensure_installed = { "asm", "c", "css", "javascript", "latex", "lua", "matlab", "meson", "sql", "toml", "typescript", "verilog", "vue" }, highlight = { enable = true }, indent = { enable = true } }) From 8c2ab48ed51b4115c475476d2731014e647bfcb7 Mon Sep 17 00:00:00 2001 From: David Senoner Date: Sat, 1 Feb 2025 22:01:10 +0100 Subject: [PATCH 10/10] lapconfig: fix half-baked rename --- lua/plugins/lspconfig.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/plugins/lspconfig.lua b/lua/plugins/lspconfig.lua index bc51a6c..1005f08 100644 --- a/lua/plugins/lspconfig.lua +++ b/lua/plugins/lspconfig.lua @@ -21,7 +21,7 @@ return { plugins = { { name = "@vue/typescript-plugin", - location = vue_language_server_path, + location = volar_path, languages = { "vue" }, }, },