From dc79b62ecca5da4b2243ee6e1796090aca0704e8 Mon Sep 17 00:00:00 2001 From: KaasKop- Date: Fri, 29 Mar 2024 18:45:39 +0100 Subject: [PATCH] update to neovim --- config/nvim/lua/plugins/headlines.lua | 27 +++++++++++ config/nvim/lua/plugins/markdown-preview.lua | 18 ++++++++ config/nvim/lua/plugins/mason.lua | 16 +++++++ config/nvim/lua/plugins/nvim-lspconfig.lua | 48 ++++++++++++++++++++ config/nvim/lua/plugins/nvim-ts-autotag.lua | 4 ++ 5 files changed, 113 insertions(+) create mode 100644 config/nvim/lua/plugins/headlines.lua create mode 100644 config/nvim/lua/plugins/markdown-preview.lua create mode 100644 config/nvim/lua/plugins/mason.lua create mode 100644 config/nvim/lua/plugins/nvim-lspconfig.lua create mode 100644 config/nvim/lua/plugins/nvim-ts-autotag.lua diff --git a/config/nvim/lua/plugins/headlines.lua b/config/nvim/lua/plugins/headlines.lua new file mode 100644 index 0000000..19c360d --- /dev/null +++ b/config/nvim/lua/plugins/headlines.lua @@ -0,0 +1,27 @@ +return { + "lukas-reineke/headlines.nvim", + opts = function() + local opts = {} + for _, ft in ipairs({ "markdown", "norg", "rmd", "org" }) do + opts[ft] = { + headline_highlights = {}, + -- disable bullets for now. See https://github.com/lukas-reineke/headlines.nvim/issues/66 + bullets = {}, + } + for i = 1, 6 do + local hl = "Headline" .. i + vim.api.nvim_set_hl(0, hl, { link = "Headline", default = true }) + table.insert(opts[ft].headline_highlights, hl) + end + end + return opts + end, + ft = { "markdown", "norg", "rmd", "org" }, + config = function(_, opts) + -- PERF: schedule to prevent headlines slowing down opening a file + vim.schedule(function() + require("headlines").setup(opts) + require("headlines").refresh() + end) + end, +} diff --git a/config/nvim/lua/plugins/markdown-preview.lua b/config/nvim/lua/plugins/markdown-preview.lua new file mode 100644 index 0000000..cf037cd --- /dev/null +++ b/config/nvim/lua/plugins/markdown-preview.lua @@ -0,0 +1,18 @@ +return { + "iamcco/markdown-preview.nvim", + cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, + build = function() + vim.fn["mkdp#util#install"]() + end, + keys = { + { + "cp", + ft = "markdown", + "MarkdownPreviewToggle", + desc = "Markdown Preview", + }, + }, + config = function() + vim.cmd([[do FileType]]) + end, +} diff --git a/config/nvim/lua/plugins/mason.lua b/config/nvim/lua/plugins/mason.lua new file mode 100644 index 0000000..8d4479c --- /dev/null +++ b/config/nvim/lua/plugins/mason.lua @@ -0,0 +1,16 @@ +return { + { + "williamboman/mason.nvim", + opts = function(_, opts) + vim.list_extend(opts.ensure_installed, { + "vue-language-server", + "biome", + "ast-grep", + "sqlls", + "marksman", + "markdownlint", + "js-debug-adapter", + }) + end, + }, +} diff --git a/config/nvim/lua/plugins/nvim-lspconfig.lua b/config/nvim/lua/plugins/nvim-lspconfig.lua new file mode 100644 index 0000000..03f85a3 --- /dev/null +++ b/config/nvim/lua/plugins/nvim-lspconfig.lua @@ -0,0 +1,48 @@ +return { + "neovim/nvim-lspconfig", + ---@class PluginLspOpts + opts = { + ---@type lspconfig.options + servers = { + pyright = {}, + marksman = {}, + --@type lspconfig.options.tsserver + tsserver = { + keys = { + { + "co", + function() + vim.lsp.buf.code_action({ + apply = true, + context = { + only = { "source.organizeImports.ts" }, + diagnostics = {}, + }, + }) + end, + desc = "Organize Imports", + }, + { + "cR", + function() + vim.lsp.buf.code_action({ + apply = true, + context = { + only = { "source.removeUnused.ts" }, + diagnostics = {}, + }, + }) + end, + desc = "Remove Unused Imports", + }, + }, + ---@diagnostic disable-next-line: missing-fields + settings = { + completions = { + completeFunctionCalls = true, + }, + }, + }, + }, + }, +} diff --git a/config/nvim/lua/plugins/nvim-ts-autotag.lua b/config/nvim/lua/plugins/nvim-ts-autotag.lua new file mode 100644 index 0000000..defa95c --- /dev/null +++ b/config/nvim/lua/plugins/nvim-ts-autotag.lua @@ -0,0 +1,4 @@ +return { + "windwp/nvim-ts-autotag", + opts = {}, +}