diff --git a/config/core.nix b/config/core.nix index f5ac55d..189f31f 100644 --- a/config/core.nix +++ b/config/core.nix @@ -3,7 +3,36 @@ # Color scheme. colorschemes.catppuccin = { enable = true; - settings.flavour = "mocha"; + settings = { + flavour = "mocha"; + no_bold = false; + no_italic = false; + no_underline = false; + integrations = { + cmp = true; + neotree = true; + harpoon = true; + gitsigns = true; + which_key = true; + illuminate.enabled = true; + treesitter = true; + treesitter_context = true; + telescope.enabled = true; + indent_blankline.enabled = true; + native_lsp = { + enabled = true; + inlay_hints = { + background = true; + }; + underlines = { + errors = ["underline"]; + hints = ["underline"]; + information = ["underline"]; + warnings = ["underline"]; + }; + }; + }; + }; }; # Options. diff --git a/config/default.nix b/config/default.nix index fe510ae..0cb0312 100644 --- a/config/default.nix +++ b/config/default.nix @@ -6,17 +6,20 @@ ./core.nix ./direnv.nix ./gitsigns.nix + ./harpoon.nix + ./illuminate.nix ./indent-blankline.nix ./keybindings.nix ./lazygit.nix ./lsp ./lualine.nix + ./neo-tree.nix + ./nvim-cmp.nix ./project.nix ./rainbow-delimiters.nix ./telescope.nix ./toggleterm.nix ./treesitter.nix - ./neo-tree.nix ./which-key.nix ]; } diff --git a/config/harpoon.nix b/config/harpoon.nix new file mode 100644 index 0000000..5b42eb6 --- /dev/null +++ b/config/harpoon.nix @@ -0,0 +1,5 @@ +{ + plugins.harpoon = { + enable = true; + }; +} diff --git a/config/illuminate.nix b/config/illuminate.nix new file mode 100644 index 0000000..9c09276 --- /dev/null +++ b/config/illuminate.nix @@ -0,0 +1,15 @@ +{ ... }: + +{ + plugins.illuminate = { + enable = true; + underCursor = false; + filetypesDenylist = [ + "Outline" + "TelescopePrompt" + "alpha" + "harpoon" + "reason" + ]; + }; +} diff --git a/config/lsp/default.nix b/config/lsp/default.nix index ec811e3..f401b06 100644 --- a/config/lsp/default.nix +++ b/config/lsp/default.nix @@ -2,5 +2,6 @@ imports = [ ./lsp.nix ./lsp-format.nix + ./lspkind.nix ]; } diff --git a/config/lsp/lspkind.nix b/config/lsp/lspkind.nix new file mode 100644 index 0000000..69e8f78 --- /dev/null +++ b/config/lsp/lspkind.nix @@ -0,0 +1,12 @@ +{ + plugins.lspkind = { + enable = true; + symbolMap = { + Copilot = ""; + }; + extraOptions = { + maxwidth = 50; + ellipsis_char = "..."; + }; + }; +} diff --git a/config/nvim-cmp.nix b/config/nvim-cmp.nix new file mode 100644 index 0000000..3f6fc5a --- /dev/null +++ b/config/nvim-cmp.nix @@ -0,0 +1,39 @@ +{ + plugins = { + cmp = { + enable = true; + autoEnableSources = false; + settings = { + sources = [ + { name = "nvim_lsp"; } + { + name = "buffer"; # text within current buffer + option.get_bufnrs.__raw = "vim.api.nvim_list_bufs"; + keywordLength = 3; + } + { + name = "path"; # file system paths + keywordLength = 3; + } + { + name = "luasnip"; # snippets + keywordLength = 3; + } + ]; + mapping = { + "" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})"; + "" = "cmp.mapping.select_next_item()"; + "" = "cmp.mapping.select_prev_item()"; + "" = "cmp.mapping.abort()"; + "" = "cmp.mapping.scroll_docs(-4)"; + "" = "cmp.mapping.scroll_docs(4)"; + "" = "cmp.mapping.complete()"; + "" = "cmp.mapping.confirm({ select = true })"; + "" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true })"; + };}; + }; + cmp-nvim-lsp.enable = true; + cmp-path.enable = true; + cmp-buffer.enable = true; + }; +}