From cb36ccfa8db66db953795fd8e22138ed1712b1cd Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 18 Sep 2024 00:58:26 +0200 Subject: checkpoint - added basic luasnip configuration - added highlights for TODO and FIXME keywords - added incremental selection of treesitter - added prettier to conform formatters - added when_disabled function to disable pairs in comments - changed the hiding keybind to :Hide command - only enable ` pairs in markdown - removed keybind - removed cmp's calc source - renamed keybinds for consistency - reorganized plugins in lazy.lua --- lua/config/lazy.lua | 151 ++++++++++++++++++++++++---------------------------- lua/config/lsp.lua | 27 ++++++---- lua/config/map.lua | 24 ++++----- lua/config/set.lua | 3 ++ 4 files changed, 102 insertions(+), 103 deletions(-) (limited to 'lua') diff --git a/lua/config/lazy.lua b/lua/config/lazy.lua index 1bdad47..3cbe77c 100644 --- a/lua/config/lazy.lua +++ b/lua/config/lazy.lua @@ -14,68 +14,68 @@ vim.opt.rtp:prepend(lazypath) -- plugins installation and configuration require("lazy").setup({ - -- lsp setup + "echasnovski/mini.nvim", + "lewis6991/gitsigns.nvim", + "tpope/vim-vinegar", + "tpope/vim-eunuch", + "mg979/vim-visual-multi", + "jghauser/follow-md-links.nvim", + "m4xshen/autoclose.nvim", + "stevearc/conform.nvim", + "mfussenegger/nvim-lint", + "neovim/nvim-lspconfig", + { - -- LSP Support - "neovim/nvim-lspconfig", - -- lsp download manager "williamboman/mason.nvim", - -- automatic lsp setup - "williamboman/mason-lspconfig.nvim", - -- additional formater support - "stevearc/conform.nvim", - -- additional linter support - "mfussenegger/nvim-lint", - -- mason autoinstaller for formatter's and linter's - "WhoIsSethDaniel/mason-tool-installer.nvim", - -- minimal snippet's support - "dcampos/nvim-snippy", - -- basic snippet's - "honza/vim-snippets", - -- cmp for autocompletion - { - "hrsh7th/nvim-cmp", - dependencies = { - -- cmp nvim-lsp plugin - "hrsh7th/cmp-nvim-lsp", - -- path comletion - "hrsh7th/cmp-path", - -- cmp snippy support - "dcampos/cmp-snippy", - "hrsh7th/cmp-calc", - }, - event = { "InsertEnter", "CmdlineEnter" }, + dependencies = { + "williamboman/mason-lspconfig.nvim", + -- for formatters and linters + "WhoIsSethDaniel/mason-tool-installer.nvim", }, - -- kind icons - "onsails/lspkind.nvim", - -- Minimal neovim modules for a lot of things - "echasnovski/mini.nvim", - -- Adds git related signs to the gutter, as well as utilities for managing changes - "lewis6991/gitsigns.nvim", - -- better ntrw - "tpope/vim-vinegar", - "tpope/vim-eunuch", - -- integration with tmux keybinds - { - "christoomey/vim-tmux-navigator", - cmd = { - "TmuxNavigateLeft", - "TmuxNavigateDown", - "TmuxNavigateUp", - "TmuxNavigateRight", - "TmuxNavigatePrevious", - }, - keys = { - { "", "TmuxNavigateLeft" }, - { "", "TmuxNavigateDown" }, - { "", "TmuxNavigateUp" }, - { "", "TmuxNavigateRight" }, - { "", "TmuxNavigatePrevious" }, - }, + config = function() + require("mason").setup({ + ui = { + border = "rounded", + }, + }) + end, + }, + { + --snippets + "L3MON4D3/LuaSnip", + version = "v2.*", + build = "make install_jsregexp", + }, + { + "hrsh7th/nvim-cmp", + dependencies = { + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-path", + "hrsh7th/cmp-buffer", + "saadparwaiz1/cmp_luasnip", + "onsails/lspkind.nvim", }, - -- auto close brackets - "m4xshen/autoclose.nvim", + event = { "InsertEnter", "CmdlineEnter" }, }, + + { + "christoomey/vim-tmux-navigator", + cmd = { + "TmuxNavigateLeft", + "TmuxNavigateDown", + "TmuxNavigateUp", + "TmuxNavigateRight", + "TmuxNavigatePrevious", + }, + keys = { + { "", "TmuxNavigateLeft" }, + { "", "TmuxNavigateDown" }, + { "", "TmuxNavigateUp" }, + { "", "TmuxNavigateRight" }, + { "", "TmuxNavigatePrevious" }, + }, + }, + { "ray-x/go.nvim", dependencies = { -- optional packages @@ -91,9 +91,6 @@ require("lazy").setup({ build = ':lua require("go.install").update_all_sync()', -- if you need to install/update all binaries }, - "mg979/vim-visual-multi", - "jghauser/follow-md-links.nvim", - { "dstein64/vim-startuptime", cmd = "StartupTime", @@ -132,9 +129,8 @@ require("lazy").setup({ vim.cmd.colorscheme("nord") end, }, - - -- Fuzzy Finder (files, lsp, etc) { + -- Fuzzy Finder (files, lsp, etc) "nvim-telescope/telescope.nvim", dependencies = { "nvim-lua/plenary.nvim", @@ -146,20 +142,14 @@ require("lazy").setup({ }, }, }, - { - -- Highlight, edit, and navigate code "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", }, - { - -- harpoon your way around code - { - "ThePrimeagen/harpoon", - branch = "harpoon2", - requires = { "nvim-lua/plenary.nvim", lazy = true }, - }, + "ThePrimeagen/harpoon", + branch = "harpoon2", + requires = { "nvim-lua/plenary.nvim", lazy = true }, }, }, { @@ -175,14 +165,13 @@ require("lazy").setup({ }, }, }, - install = { - colorscheme = { "nord" }, - missing = false, - }, - change_detection = { - enabled = false, - notify = false, - }, - checker = { enabled = false }, - -- defaults = {lazy = true}, + -- install = { + -- colorscheme = { "nord" }, + -- missing = false, + -- }, + -- change_detection = { + -- enabled = true, + -- notify = true, + -- }, + -- checker = { enabled = true, notify = false }, }) diff --git a/lua/config/lsp.lua b/lua/config/lsp.lua index 715d0f9..e94966a 100644 --- a/lua/config/lsp.lua +++ b/lua/config/lsp.lua @@ -14,8 +14,9 @@ map("n", " lq", vim.diagnostic.setqflist) -- [[ LSP Setups ]] local lspconfig = require("lspconfig") --- go lspconfig.gopls.setup({}) +lspconfig.clangd.setup({}) +lspconfig.emmet_ls.setup({}) -- lua -- with neovim support @@ -54,14 +55,19 @@ require("lspconfig").lua_ls.setup({ -- [[ nvim cmp ]] require("cmp_nvim_lsp").default_capabilities() local cmp = require("cmp") +local context = require("cmp.config.context") local lspkind = require("lspkind") cmp.setup({ - completion = { - autocomplete = false, - }, + enabled = function() + if context.in_treesitter_capture("comment") == true or context.in_syntax_group("Comment") then + return false + else + return true + end + end, snippet = { expand = function(args) - require("snippy").expand_snippet(args.body) + require("luasnip").lsp_expand(args.body) end, }, window = { @@ -86,11 +92,14 @@ cmp.setup({ }), }), sources = cmp.config.sources({ - { name = "nvim_lsp" }, - -- { name = "snippy" }, + { + name = "nvim_lsp", + keyword_length = 3, + }, + { name = "luasnip" }, }, { - { name = "buffer" }, - { name = "calc" }, + -- { name = "buffer", max_item_count = 5 }, + { name = "path", max_item_count = 5 }, }), formatting = { format = lspkind.cmp_format({ diff --git a/lua/config/map.lua b/lua/config/map.lua index 230588f..85c1e0f 100644 --- a/lua/config/map.lua +++ b/lua/config/map.lua @@ -25,7 +25,6 @@ map("x", "p", [["_dP]], { desc = "Paste while keeping the registry" }) -- moving map("i", "", "I", { noremap = true }) map("i", "", "A", { noremap = true }) -map("i", "", "D", { noremap = true }) -- buffers map("n", "sp", "sp", { desc = "Open horizontal split" }) @@ -53,18 +52,17 @@ map({ "n", "v" }, "d", [["_d]]) map("n", "rt", ":-1r " .. vim.fn.stdpath("config") .. "/templates", { noremap = true }) -- hide all -local s = { hidden_all = 0 } -map("n", "", function() - s.hidden_all = 1 - s.hidden_all - local opt = s.hidden_all == 0 - vim.opt.showmode = opt - vim.opt.ruler = opt - vim.opt.nu = opt - vim.opt.rnu = opt - vim.opt.showcmd = opt - vim.opt.laststatus = opt and 2 or 0 - vim.opt.signcolumn = opt and "yes" or "no" -end, { noremap = true }) +local hidden = true -- flag +vim.api.nvim_create_user_command("Hide", function() + hidden = hidden == false + vim.opt.showmode = hidden + vim.opt.ruler = hidden + vim.opt.nu = hidden + vim.opt.rnu = hidden + vim.opt.showcmd = hidden + vim.opt.laststatus = hidden and 2 or 0 + vim.opt.signcolumn = hidden and "yes" or "no" +end, {}) -- write map("n", "w", "write", { noremap = true }) diff --git a/lua/config/set.lua b/lua/config/set.lua index 3623a02..ce43d04 100644 --- a/lua/config/set.lua +++ b/lua/config/set.lua @@ -109,3 +109,6 @@ vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.s vim.diagnostic.config({ float = { border = _border }, }) + +-- highlight to-do's +vim.cmd("match Todo /\\(TODO\\|FIXME\\):/") -- cgit v1.2.3