diff options
author | Alan Pearce | 2025-03-26 15:49:36 +0100 |
---|---|---|
committer | Alan Pearce | 2025-03-26 15:49:36 +0100 |
commit | 643cb57ea23dd39f357738d47530484800c77b8a (patch) | |
tree | 96505101fb888c235063dc6c8d48e12bf2ec9048 /user/settings | |
parent | 4d656564a8693818146ed8b59d7c9f81af21169d (diff) | |
download | nixfiles-643cb57ea23dd39f357738d47530484800c77b8a.tar.lz nixfiles-643cb57ea23dd39f357738d47530484800c77b8a.tar.zst nixfiles-643cb57ea23dd39f357738d47530484800c77b8a.zip |
neovim: use nixvim to manage plugins and configuration
Diffstat (limited to 'user/settings')
-rw-r--r-- | user/settings/development/base.nix | 10 | ||||
-rw-r--r-- | user/settings/development/golang.nix | 7 | ||||
-rw-r--r-- | user/settings/development/web.nix | 13 | ||||
-rw-r--r-- | user/settings/development/zig.nix | 7 | ||||
-rw-r--r-- | user/settings/neovim.nix | 143 | ||||
-rw-r--r-- | user/settings/nix.nix | 7 |
6 files changed, 128 insertions, 59 deletions
diff --git a/user/settings/development/base.nix b/user/settings/development/base.nix index 3954986b..39739695 100644 --- a/user/settings/development/base.nix +++ b/user/settings/development/base.nix @@ -58,6 +58,16 @@ ])) ]); + programs.nixvim.plugins = { + lsp.servers = { + bashls.enable = true; + fish_lsp.enable = true; + taplo.enable = true; + docker_compose_language_service.enable = true; + dockerls.enable = true; + }; + }; + editorconfig = { enable = true; settings = { diff --git a/user/settings/development/golang.nix b/user/settings/development/golang.nix index ef6cf412..2cd29685 100644 --- a/user/settings/development/golang.nix +++ b/user/settings/development/golang.nix @@ -37,7 +37,8 @@ tree-sitter-templ ])) ]); - programs.neovim.plugins = with pkgs.vimPlugins; [ - coc-go - ]; + programs.nixvim.plugins.lsp.servers = { + gopls.enable = true; + golangci_lint_ls.enable = true; + }; } diff --git a/user/settings/development/web.nix b/user/settings/development/web.nix index 0212d9fd..a32f5a21 100644 --- a/user/settings/development/web.nix +++ b/user/settings/development/web.nix @@ -8,6 +8,7 @@ csslint stylelint ] ++ (with pkgs; [ + emmet-language-server flyctl personal.htmlformat ]); @@ -102,8 +103,12 @@ tree-sitter-html ])) ]); - programs.neovim.plugins = with pkgs.vimPlugins; [ - coc-css - coc-html - ]; + programs.nixvim.plugins = { + lsp.servers = { + emmet_language_server.enable = true; + cssls.enable = true; + html.enable = true; + jsonls.enable = true; + }; + }; } diff --git a/user/settings/development/zig.nix b/user/settings/development/zig.nix index ac21267f..e3c78305 100644 --- a/user/settings/development/zig.nix +++ b/user/settings/development/zig.nix @@ -8,7 +8,8 @@ programs.emacs.extraPackages = epkgs: (with epkgs; [ zig-mode ]); - programs.neovim.plugins = with pkgs.vimPlugins; [ - zig-vim - ]; + programs.nixvim.plugins = { + zig.enable = true; + lsp.servers.zls.enable = true; + }; } diff --git a/user/settings/neovim.nix b/user/settings/neovim.nix index dcee5fde..d04de0b8 100644 --- a/user/settings/neovim.nix +++ b/user/settings/neovim.nix @@ -1,58 +1,109 @@ -{ pkgs +{ config , ... -}: { - programs.neovim = { +}: +let + nixvim = import <nixvim>; +in +{ + imports = [ + nixvim.homeManagerModules.nixvim + ]; + + programs.nixvim = { enable = true; defaultEditor = true; + + nixpkgs.config = config.nixpkgs.config; + viAlias = true; vimAlias = true; vimdiffAlias = true; - withNodeJs = true; - plugins = with pkgs.vimPlugins; [ - commentary - conjure - coc-git - coc-json - coc-yaml - direnv-vim - (nvim-treesitter.withPlugins ( - plugins: with plugins; [ - nix - ] - )) - telescope-nvim - telescope-fzf-native-nvim - vim-polyglot - vim-tridactyl - vim-surround - ]; - extraLuaConfig = builtins.readFile ../nvim/init.lua; - coc = { - enable = true; - settings = { - "json.enable" = true; - languageserver = { - nix = { - command = "${pkgs.nil}/bin/nil"; - filetypes = [ "nix" ]; - rootPatterns = [ "flake.nix" ]; - settings = { - coc.preferences.formatOnSaveFiletypes = [ "nix" ]; - links.tooltip = true; - semanticTokens = { - filetypes = [ "nix" ]; - }; - nil = { - formatting.command = [ "nixpkgs-fmt" ]; - nix.flake.autoArchive = true; - }; - }; + + # withRuby = false; + + clipboard.register = "unnamed"; + opts = { + autoindent = true; + number = true; + relativenumber = true; + shiftwidth = 2; + background = "light"; + }; + globals.mapleader = ","; + + colorscheme = "shine"; + + performance = { + byteCompileLua = { + enable = true; + nvimRuntime = true; + plugins = true; + }; + }; + + plugins = { + blink-cmp = { + enable = true; + settings = { + keymap.preset = "super-tab"; + }; + }; + + mini = { + enable = true; + mockDevIcons = true; + modules.icons = { + style = "glyph"; + }; + modules.basics = { }; + }; + + lsp = { + enable = true; + keymaps = { + lspBuf = { + gD = "references"; + gd = "definition"; + gi = "implementation"; + gt = "type_definition"; }; - lua = { - command = "${pkgs.lua-language-server}/bin/lua-language-server"; - filetypes = [ "lua" ]; + }; + }; + + direnv.enable = true; + friendly-snippets.enable = true; + nvim-snippets = { + enable = true; + settings.friendly_snippets = true; + luaConfig.post = '' + local capabilities = vim.lsp.protocol.make_client_capabilities() + capabilities.textDocument.completion.completionItem.snippetSupport = true + + require'lspconfig'.cssls.setup { + capabilities = capabilities, + } + ''; + }; + nvim-surround.enable = true; + telescope = { + enable = true; + keymaps = { + "<leader>ff" = "find_files"; + "<leader>fg" = "live_grep"; + "<leader>bb" = "buffers"; + "<leader>pf" = "git_files"; + "<leader>fh" = "help_tags"; + }; + settings = { + mappings = { + i = { + "<C-h>" = "which_key"; + }; }; }; + extensions = { + fzf-native.enable = true; + }; }; }; }; diff --git a/user/settings/nix.nix b/user/settings/nix.nix index eaae1083..c0382078 100644 --- a/user/settings/nix.nix +++ b/user/settings/nix.nix @@ -37,7 +37,8 @@ in nix-mode nix-update ]); - programs.neovim.plugins = with pkgs.vimPlugins; [ - vim-nix - ]; + programs.nixvim.plugins = { + nix.enable = true; + lsp.servers.nixd.enable = true; + }; } |