diff --git a/config/nix/common/home.nix b/config/nix/common/home.nix index 2df201e9..3be37d8d 100644 --- a/config/nix/common/home.nix +++ b/config/nix/common/home.nix @@ -2,7 +2,7 @@ let start-tmux = (import ../scripts/start-tmux.nix) pkgs; # https://mipmip.github.io/home-manager-option-search/ - lazy = true; + lazy = false; in { imports = [ # Include the results of the hardware scan. diff --git a/config/nix/common/nvim/default.nix b/config/nix/common/nvim/default.nix index 2e6427e4..7abf83d2 100644 --- a/config/nix/common/nvim/default.nix +++ b/config/nix/common/nvim/default.nix @@ -71,33 +71,6 @@ indent = true; }; - nvim-cmp = { - enable = true; - completion = { completeopt = "menu,menuone,popup,noselect"; }; - window = { - completion = { border = "rounded"; }; - documentation = { border = "rounded"; }; - }; - sources = { - nvim_lsp.enable = true; - luasnip.enable = true; - buffer.enable = true; - path.enable = true; - git.enable = true; - cmdline.enable = true; - }; - mappingPresets = [ "insert" ]; - mapping = { - "" = "cmp.mapping.confirm({ select = true })"; - "" = "cmp.mapping.complete()"; - "" = "cmp.config.next"; - "" = "cmp.config.prev"; - - }; - - snippet.luasnip.enable = true; - }; - }; colorschemes = { catppuccin = { @@ -139,7 +112,14 @@ pkgs.vimPlugins.telescope-fzf-native-nvim pkgs.vimPlugins.telescope-file-browser-nvim pkgs.vimExtraPlugins.rustaceanvim - pkgs.vimExtraPlugins.cmp-nvim-lsp + + pkgs.vimPlugins.nvim-cmp + pkgs.vimPlugins.cmp-buffer + pkgs.vimPlugins.cmp-path + pkgs.vimPlugins.cmp-cmdline + pkgs.vimPlugins.cmp-nvim-lsp + pkgs.vimPlugins.cmp-nvim-lua + pkgs.vimExtraPlugins.fidget-nvim pkgs.vimExtraPlugins.copilot-lua pkgs.vimExtraPlugins.lsp-zero-nvim diff --git a/config/nix/common/nvim/extraConfig.lua b/config/nix/common/nvim/extraConfig.lua index 98dd9b26..1ed71d3c 100644 --- a/config/nix/common/nvim/extraConfig.lua +++ b/config/nix/common/nvim/extraConfig.lua @@ -1,3 +1,21 @@ +require('telescope').setup { + defaults = { + initial_mode = 'insert', + }, + extensions = { + fzf = { + fuzzy = true, -- false will only do exact matching + override_generic_sorter = true, -- override the generic sorter + override_file_sorter = true, -- override the file sorter + case_mode = "smart_case", -- or "ignore_case" or "respect_case" + } + } +} + +require("telescope").load_extension("ui-select") +require('telescope').load_extension("fzf") +require('telescope').load_extension("file_browser") + vim.g.rustaceanvim = { server = { on_attach = function(client, bufnr) @@ -24,7 +42,42 @@ require("copilot").setup({ require 'fidget'.setup() -local cmp = require 'cmp' + +-- ======================================================================= +-- nvim-cmp +-- ======================================================================= + +local cmp = require("cmp") +cmp.setup({ + view = { + entries = { name = 'custom', selection_order = 'near_cursor' } + }, + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) + end + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + sources = cmp.config.sources({ + { name = "copilot", }, + { name = 'buffer' }, + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + { name = 'path' }, + { name = 'git' }, + }), + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.confirm(), + [''] = cmp.mapping.complete(), + -- [''] = cmp.mapping.complete(), + [''] = cmp.config.next, + [''] = cmp.config.prev, + }) +}) + cmp.setup.cmdline({ '/', '?' }, { mapping = cmp.mapping.preset.cmdline { [''] = cmp.config.disable, @@ -46,29 +99,10 @@ cmp.setup.cmdline(':', { { name = 'cmdline' } }) }) - cmp.setup.filetype('gitcommit', { sources = cmp.config.sources({ - { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). + { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). }, { { name = 'buffer' }, }) }) - -require('telescope').setup { - defaults = { - initial_mode = 'insert', - }, - extensions = { - fzf = { - fuzzy = true, -- false will only do exact matching - override_generic_sorter = true, -- override the generic sorter - override_file_sorter = true, -- override the file sorter - case_mode = "smart_case", -- or "ignore_case" or "respect_case" - } - } -} - -require("telescope").load_extension("ui-select") -require('telescope').load_extension("fzf") -require('telescope').load_extension("file_browser") diff --git a/config/nix/flake.nix b/config/nix/flake.nix index c0f6d417..673d963c 100644 --- a/config/nix/flake.nix +++ b/config/nix/flake.nix @@ -57,10 +57,7 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - nur = { - url = "github:nix-community/nur"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + nur.url = "github:nix-community/nur"; # { pkgs, inputs, system, ... }: # {