diff --git a/configuration.nix b/configuration.nix index de778d5..3f8ea96 100644 --- a/configuration.nix +++ b/configuration.nix @@ -18,18 +18,18 @@ inputs: let }; mainConfig = isMaximal: { - config = { - vim = { - viAlias = true; - vimAlias = true; - debugMode = { - enable = false; - level = 20; - logFile = "/tmp/nvim.log"; - }; + config.vim = { + viAlias = true; + vimAlias = true; + debugMode = { + enable = false; + level = 20; + logFile = "/tmp/nvim.log"; }; - vim.lsp = { + spellcheck.vim-dirtytalk.enable = true; + + lsp = { formatOnSave = true; lspkind.enable = false; lightbulb.enable = true; @@ -41,14 +41,14 @@ inputs: let nvim-docs-view.enable = isMaximal; }; - vim.debugger = { + debugger = { nvim-dap = { enable = true; ui.enable = true; }; }; - vim.languages = { + languages = { enableLSP = true; enableFormat = true; enableTreesitter = true; @@ -81,7 +81,7 @@ inputs: let }; }; - vim.visuals = { + visuals = { enable = true; nvimWebDevicons.enable = true; scrollBar.enable = true; @@ -105,70 +105,71 @@ inputs: let }; }; - vim.statusline = { + statusline = { lualine = { enable = true; theme = "catppuccin"; }; }; - vim.theme = { + theme = { enable = true; name = "catppuccin"; style = "mocha"; transparent = false; }; - vim.autopairs.enable = true; - vim.autocomplete = { + autopairs.enable = true; + + autocomplete = { enable = true; type = "nvim-cmp"; }; - vim.filetree = { + filetree = { nvimTree = { enable = true; }; }; - vim.tabline = { + tabline = { nvimBufferline.enable = true; }; - vim.treesitter.context.enable = true; + treesitter.context.enable = true; - vim.binds = { + binds = { whichKey.enable = true; cheatsheet.enable = true; }; - vim.telescope.enable = true; + telescope.enable = true; - vim.git = { + git = { enable = true; gitsigns.enable = true; gitsigns.codeActions = false; # throws an annoying debug message }; - vim.minimap = { + minimap = { minimap-vim.enable = false; codewindow.enable = isMaximal; # lighter, faster, and uses lua for configuration }; - vim.dashboard = { + dashboard = { dashboard-nvim.enable = false; alpha.enable = isMaximal; }; - vim.notify = { + notify = { nvim-notify.enable = true; }; - vim.projects = { + projects = { project-nvim.enable = isMaximal; }; - vim.utility = { + utility = { ccc.enable = isMaximal; vim-wakatime.enable = isMaximal; icon-picker.enable = isMaximal; @@ -184,21 +185,21 @@ inputs: let }; }; - vim.notes = { + notes = { obsidian.enable = false; # FIXME: neovim fails to build if obsidian is enabled orgmode.enable = false; mind-nvim.enable = isMaximal; todo-comments.enable = true; }; - vim.terminal = { + terminal = { toggleterm = { enable = true; lazygit.enable = true; }; }; - vim.ui = { + ui = { borders.enable = true; noice.enable = true; colorizer.enable = true; @@ -220,26 +221,26 @@ inputs: let }; }; - vim.assistant = { + assistant = { copilot = { enable = isMaximal; cmp.enable = isMaximal; }; }; - vim.session = { + session = { nvim-session-manager.enable = false; }; - vim.gestures = { + gestures = { gesture-nvim.enable = false; }; - vim.comments = { + comments = { comment-nvim.enable = true; }; - vim.presence = { + presence = { neocord.enable = true; }; }; diff --git a/docs/default.nix b/docs/default.nix index a597fb2..1ba0d3d 100644 --- a/docs/default.nix +++ b/docs/default.nix @@ -1,21 +1,40 @@ { + inputs, pkgs, - lib ? import ../lib/stdlib-extended.nix pkgs.lib, - nmdSrc, + lib ? import ../lib/stdlib-extended.nix pkgs.lib inputs, ... }: let - nmd = import nmdSrc { - inherit lib; - # The DocBook output of `nixos-render-docs` doesn't have the change - # `nmd` uses to work around the broken stylesheets in - # `docbook-xsl-ns`, so we restore the patched version here. - pkgs = - pkgs - // { - docbook-xsl-ns = - pkgs.docbook-xsl-ns.override {withManOptDedupPatch = true;}; - }; - }; + inherit (lib.modules) mkForce evalModules; + inherit (lib.strings) hasPrefix removePrefix; + inherit (lib.attrsets) isAttrs mapAttrs optionalAttrs recursiveUpdate isDerivation; + + # From home-manager: + # + # Recursively replace each derivation in the given attribute set + # with the same derivation but with the `outPath` attribute set to + # the string `"\${pkgs.attribute.path}"`. This allows the + # documentation to refer to derivations through their values without + # establishing an actual dependency on the derivation output. + # + # This is not perfect, but it seems to cover a vast majority of use + # cases. + # + # Caveat: even if the package is reached by a different means, the + # path above will be shown and not e.g. + # `${config.services.foo.package}`. + scrubDerivations = prefixPath: attrs: let + scrubDerivation = name: value: let + pkgAttrName = prefixPath + "." + name; + in + if isAttrs value + then + scrubDerivations pkgAttrName value + // optionalAttrs (isDerivation value) { + outPath = "\${${pkgAttrName}}"; + } + else value; + in + mapAttrs scrubDerivation attrs; # Make sure the used package is scrubbed to avoid actually # instantiating derivations. @@ -23,30 +42,30 @@ imports = [ { _module.args = { - pkgs = lib.mkForce (nmd.scrubDerivations "pkgs" pkgs); - pkgs_i686 = lib.mkForce {}; + pkgs = mkForce (scrubDerivations "pkgs" pkgs); + pkgs_i686 = mkForce {}; }; } ]; }; - dontCheckDefinitions = {_module.check = false;}; - - githubDeclaration = user: repo: subpath: let - urlRef = "main"; - in { - url = "https://github.com/${user}/${repo}/blob/${urlRef}/${subpath}"; - name = "<${repo}/${subpath}>"; - }; - + # Specify the path to the module entrypoint nvimPath = toString ./..; - buildOptionsDocs = args @ { modules, includeModuleSystemOptions ? true, ... }: let - inherit ((lib.evalModules {inherit modules;})) options; + inherit ((evalModules {inherit modules;})) options; + + # Declaration of the Github site URL. + githubDeclaration = user: repo: subpath: let + urlRef = "github.com"; + branch = "main"; + in { + url = "https://${urlRef}/${user}/${repo}/blob/${branch}/${subpath}"; + name = "<${repo}/${subpath}>"; + }; in pkgs.buildPackages.nixosOptionsDoc ({ options = @@ -54,15 +73,14 @@ then options else builtins.removeAttrs options ["_module"]; transformOptions = opt: - opt - // { - # Clean up declaration sites to not refer to the Home Manager + recursiveUpdate opt { + # Clean up declaration sites to not refer to the neovim-flakee # source tree. declarations = map (decl: - if lib.hasPrefix nvimPath (toString decl) + if hasPrefix nvimPath (toString decl) then githubDeclaration "notashelf" "neovim-flake" - (lib.removePrefix "/" (lib.removePrefix nvimPath (toString decl))) + (removePrefix "/" (removePrefix nvimPath (toString decl))) else if decl == "lib/modules.nix" then # TODO: handle this in a better way (may require upstream @@ -86,6 +104,7 @@ release-config = builtins.fromJSON (builtins.readFile ../release.json); revision = "release-${release-config.release}"; + # Generate the `man home-configuration.nix` package nvf-configuration-manual = pkgs.runCommand "neovim-flake-reference-manpage" { @@ -95,32 +114,36 @@ # Generate manpages. mkdir -p $out/share/man/man5 mkdir -p $out/share/man/man1 + nixos-render-docs -j $NIX_BUILD_CORES options manpage \ --revision ${revision} \ ${nvimModuleDocs.optionsJSON}/share/doc/nixos/options.json \ $out/share/man/man5/neovim-flake.5 + cp ${./neovim-flake.1} $out/share/man/man1/neovim-flake.1 ''; + # Generate the HTML manual pages neovim-flake-manual = pkgs.callPackage ./manual.nix { + inherit (inputs) nmd; inherit revision; outputPath = "share/doc/neovim-flake"; - nmd = nmdSrc; options = { neovim-flake = nvimModuleDocs.optionsJSON; }; }; + html = neovim-flake-manual; htmlOpenTool = pkgs.callPackage ./html-open-tool.nix {} {inherit html;}; in { - inherit nmdSrc; + inherit (inputs) nmd; options = { # TODO: Use `hmOptionsDocs.optionsJSON` directly once upstream # `nixosOptionsDoc` is more customizable. json = pkgs.runCommand "options.json" { - meta.description = "List of Home Manager options in JSON format"; + meta.description = "List of neovim-flake options in JSON format"; } '' mkdir -p $out/{share/doc,nix-support} cp -a ${nvimModuleDocs.optionsJSON}/share/doc/nixos $out/share/doc/neovim-flake diff --git a/flake.lock b/flake.lock index 387e831..42b2103 100644 --- a/flake.lock +++ b/flake.lock @@ -1,309 +1,5 @@ { "nodes": { - "alpha-nvim": { - "flake": false, - "locked": { - "lastModified": 1708891191, - "narHash": "sha256-kTVPKZ/e1us/uHfSwFwR38lFYN8EotJq2jKz6xm/eqg=", - "owner": "goolord", - "repo": "alpha-nvim", - "rev": "41283fb402713fc8b327e60907f74e46166f4cfd", - "type": "github" - }, - "original": { - "owner": "goolord", - "repo": "alpha-nvim", - "type": "github" - } - }, - "bufdelete-nvim": { - "flake": false, - "locked": { - "lastModified": 1708814161, - "narHash": "sha256-ljUNfmpImtxFCS19HC9kFlaLlqaPDltKtnx1+/6Y33U=", - "owner": "famiu", - "repo": "bufdelete.nvim", - "rev": "f6bcea78afb3060b198125256f897040538bcb81", - "type": "github" - }, - "original": { - "owner": "famiu", - "repo": "bufdelete.nvim", - "type": "github" - } - }, - "catppuccin": { - "flake": false, - "locked": { - "lastModified": 1711706907, - "narHash": "sha256-GQjxE8lQj52pheJtHCS+9v2lsJY7wMj2IXVCoNRmQSQ=", - "owner": "catppuccin", - "repo": "nvim", - "rev": "aebe43db9cb26e1c70fc5b2fd4158169c405e720", - "type": "github" - }, - "original": { - "owner": "catppuccin", - "repo": "nvim", - "type": "github" - } - }, - "ccc": { - "flake": false, - "locked": { - "lastModified": 1711976559, - "narHash": "sha256-rSOjeklOdIPQvxNfUBG9Hm001cIlBgrPYcnm7afc9TE=", - "owner": "uga-rosa", - "repo": "ccc.nvim", - "rev": "46b8a38a3bc287f27789800d3d26480d093d65b5", - "type": "github" - }, - "original": { - "owner": "uga-rosa", - "repo": "ccc.nvim", - "type": "github" - } - }, - "cellular-automaton": { - "flake": false, - "locked": { - "lastModified": 1693589931, - "narHash": "sha256-szbd6m7hH7NFI0UzjWF83xkpSJeUWCbn9c+O8F8S/Fg=", - "owner": "Eandrju", - "repo": "cellular-automaton.nvim", - "rev": "b7d056dab963b5d3f2c560d92937cb51db61cb5b", - "type": "github" - }, - "original": { - "owner": "Eandrju", - "repo": "cellular-automaton.nvim", - "type": "github" - } - }, - "cheatsheet-nvim": { - "flake": false, - "locked": { - "lastModified": 1640255456, - "narHash": "sha256-TYkGB7cON2t4GwMaR9H1MDG2j3btBv2AR37ade8kqTY=", - "owner": "sudormrfbin", - "repo": "cheatsheet.nvim", - "rev": "9716f9aaa94dd1fd6ce59b5aae0e5f25e2a463ef", - "type": "github" - }, - "original": { - "owner": "sudormrfbin", - "repo": "cheatsheet.nvim", - "type": "github" - } - }, - "cinnamon-nvim": { - "flake": false, - "locked": { - "lastModified": 1711005384, - "narHash": "sha256-LNikkGldBpUsfyH8ThtX7RS1p/z3JzSPonT9qUU84jw=", - "owner": "declancm", - "repo": "cinnamon.nvim", - "rev": "559fe02fae00ffd78377e9c242b2faa25a428592", - "type": "github" - }, - "original": { - "owner": "declancm", - "repo": "cinnamon.nvim", - "type": "github" - } - }, - "cmp-buffer": { - "flake": false, - "locked": { - "lastModified": 1660101488, - "narHash": "sha256-dG4U7MtnXThoa/PD+qFtCt76MQ14V1wX8GMYcvxEnbM=", - "owner": "hrsh7th", - "repo": "cmp-buffer", - "rev": "3022dbc9166796b644a841a02de8dd1cc1d311fa", - "type": "github" - }, - "original": { - "owner": "hrsh7th", - "repo": "cmp-buffer", - "type": "github" - } - }, - "cmp-nvim-lsp": { - "flake": false, - "locked": { - "lastModified": 1702205473, - "narHash": "sha256-/0sh9vJBD9pUuD7q3tNSQ1YLvxFMNykdg5eG+LjZAA8=", - "owner": "hrsh7th", - "repo": "cmp-nvim-lsp", - "rev": "5af77f54de1b16c34b23cba810150689a3a90312", - "type": "github" - }, - "original": { - "owner": "hrsh7th", - "repo": "cmp-nvim-lsp", - "type": "github" - } - }, - "cmp-path": { - "flake": false, - "locked": { - "lastModified": 1664784283, - "narHash": "sha256-thppiiV3wjIaZnAXmsh7j3DUc6ceSCvGzviwFUnoPaI=", - "owner": "hrsh7th", - "repo": "cmp-path", - "rev": "91ff86cd9c29299a64f968ebb45846c485725f23", - "type": "github" - }, - "original": { - "owner": "hrsh7th", - "repo": "cmp-path", - "type": "github" - } - }, - "cmp-treesitter": { - "flake": false, - "locked": { - "lastModified": 1702163214, - "narHash": "sha256-K7F9iqmB13ONenwsbaND8F4010MvHQXp7DxMFfcsZ4A=", - "owner": "ray-x", - "repo": "cmp-treesitter", - "rev": "13e4ef8f4dd5639fca2eb9150e68f47639a9b37d", - "type": "github" - }, - "original": { - "owner": "ray-x", - "repo": "cmp-treesitter", - "type": "github" - } - }, - "cmp-vsnip": { - "flake": false, - "locked": { - "lastModified": 1669100283, - "narHash": "sha256-2mkN03noOr5vBvRbSb35xZKorSH+8savQNZtgM9+QcM=", - "owner": "hrsh7th", - "repo": "cmp-vsnip", - "rev": "989a8a73c44e926199bfd05fa7a516d51f2d2752", - "type": "github" - }, - "original": { - "owner": "hrsh7th", - "repo": "cmp-vsnip", - "type": "github" - } - }, - "codewindow-nvim": { - "flake": false, - "locked": { - "lastModified": 1695487629, - "narHash": "sha256-/u2Zjbd9m3/iJU3I3HzFzXWxuvoycwJoIq7UFeHNtKM=", - "owner": "gorbit99", - "repo": "codewindow.nvim", - "rev": "8c8f5ff66e123491c946c04848d744fcdc7cac6c", - "type": "github" - }, - "original": { - "owner": "gorbit99", - "repo": "codewindow.nvim", - "type": "github" - } - }, - "comment-nvim": { - "flake": false, - "locked": { - "lastModified": 1691409559, - "narHash": "sha256-+dF1ZombrlO6nQggufSb0igXW5zwU++o0W/5ZA07cdc=", - "owner": "numToStr", - "repo": "Comment.nvim", - "rev": "0236521ea582747b58869cb72f70ccfa967d2e89", - "type": "github" - }, - "original": { - "owner": "numToStr", - "repo": "Comment.nvim", - "type": "github" - } - }, - "copilot-cmp": { - "flake": false, - "locked": { - "lastModified": 1694286652, - "narHash": "sha256-srgNohm/aJpswNJ5+T7p+zi9Jinp9e5FA8/wdk6VRiY=", - "owner": "zbirenbaum", - "repo": "copilot-cmp", - "rev": "72fbaa03695779f8349be3ac54fa8bd77eed3ee3", - "type": "github" - }, - "original": { - "owner": "zbirenbaum", - "repo": "copilot-cmp", - "type": "github" - } - }, - "copilot-lua": { - "flake": false, - "locked": { - "lastModified": 1709095198, - "narHash": "sha256-JX3sdsnOnjkY7r9fCtC2oauo0PXF3SQ+SHUo8ifBvAc=", - "owner": "zbirenbaum", - "repo": "copilot.lua", - "rev": "f7612f5af4a7d7615babf43ab1e67a2d790c13a6", - "type": "github" - }, - "original": { - "owner": "zbirenbaum", - "repo": "copilot.lua", - "type": "github" - } - }, - "crates-nvim": { - "flake": false, - "locked": { - "lastModified": 1710361360, - "narHash": "sha256-wfwSHuP05PEqCbpEG7GStGElMLkrDEbPW7V6p1EANGU=", - "owner": "Saecki", - "repo": "crates.nvim", - "rev": "b4f4987ccdb1cc3899ee541ef4375c73c48c4570", - "type": "github" - }, - "original": { - "owner": "Saecki", - "repo": "crates.nvim", - "type": "github" - } - }, - "dashboard-nvim": { - "flake": false, - "locked": { - "lastModified": 1712122933, - "narHash": "sha256-s2PDyOnE3jVk+RCp0aaV2vVJGkO394iDhQTEHRcb9kY=", - "owner": "glepnir", - "repo": "dashboard-nvim", - "rev": "7c0c09d55118a2afeb8874e885f87ae80d8ff452", - "type": "github" - }, - "original": { - "owner": "glepnir", - "repo": "dashboard-nvim", - "type": "github" - } - }, - "diffview-nvim": { - "flake": false, - "locked": { - "lastModified": 1700506468, - "narHash": "sha256-3EdnBUka9Rh5Brl6TWpN6GlD9z32mmY3Ip+wyiKob/8=", - "owner": "sindrets", - "repo": "diffview.nvim", - "rev": "3dc498c9777fe79156f3d32dddd483b8b3dbd95f", - "type": "github" - }, - "original": { - "owner": "sindrets", - "repo": "diffview.nvim", - "type": "github" - } - }, "dirt-samples-src": { "flake": false, "locked": { @@ -321,86 +17,6 @@ "type": "github" } }, - "dracula": { - "flake": false, - "locked": { - "lastModified": 1708834650, - "narHash": "sha256-I3rtbJYv1D+kniOLL9hmTF3ucp/qSNewnO2GmYAERko=", - "owner": "Mofiqul", - "repo": "dracula.nvim", - "rev": "8d8bddb8814c3e7e62d80dda65a9876f97eb699c", - "type": "github" - }, - "original": { - "owner": "Mofiqul", - "repo": "dracula.nvim", - "type": "github" - } - }, - "dressing-nvim": { - "flake": false, - "locked": { - "lastModified": 1710299803, - "narHash": "sha256-9AwOFTRvhWFo7USgoFYfceiojZM62IXPpBs8CnSqc18=", - "owner": "stevearc", - "repo": "dressing.nvim", - "rev": "18e5beb3845f085b6a33c24112b37988f3f93c06", - "type": "github" - }, - "original": { - "owner": "stevearc", - "repo": "dressing.nvim", - "type": "github" - } - }, - "elixir-ls": { - "flake": false, - "locked": { - "lastModified": 1711286188, - "narHash": "sha256-OIB5f+FBOPsTWKGWyoU+/NQDMsJXBdj1v7UclbTP5ZY=", - "owner": "elixir-lsp", - "repo": "elixir-ls", - "rev": "3e71900e0d0891f9f95e35d9a52b16c6a773a259", - "type": "github" - }, - "original": { - "owner": "elixir-lsp", - "repo": "elixir-ls", - "type": "github" - } - }, - "elixir-tools": { - "flake": false, - "locked": { - "lastModified": 1710172806, - "narHash": "sha256-pVDeS9oCFzA9t9J/JfYG/RfdMoSmaaERd5nUgL9KHyM=", - "owner": "elixir-tools", - "repo": "elixir-tools.nvim", - "rev": "4d003f4b41ab9b4f8b569104fa7818f048ed4e25", - "type": "github" - }, - "original": { - "owner": "elixir-tools", - "repo": "elixir-tools.nvim", - "type": "github" - } - }, - "fidget-nvim": { - "flake": false, - "locked": { - "lastModified": 1710942727, - "narHash": "sha256-8pBg8uQto5UzNBRhjFFMMmWLnmpYsG0L1mDa+FN8tpU=", - "owner": "j-hui", - "repo": "fidget.nvim", - "rev": "933db4596e4bab1b09b6d48a10e21819e4cc458f", - "type": "github" - }, - "original": { - "owner": "j-hui", - "repo": "fidget.nvim", - "type": "github" - } - }, "flake-compat": { "flake": false, "locked": { @@ -468,326 +84,6 @@ "type": "github" } }, - "flutter-tools": { - "flake": false, - "locked": { - "lastModified": 1711622317, - "narHash": "sha256-TQRz2MHg6qnzZGUDVFUoaZJiTBwQ3Hjqvc8AAeVS93Y=", - "owner": "akinsho", - "repo": "flutter-tools.nvim", - "rev": "4f18033c3b78aa5450e538d81dfbbb3e67aeadec", - "type": "github" - }, - "original": { - "owner": "akinsho", - "repo": "flutter-tools.nvim", - "type": "github" - } - }, - "gesture-nvim": { - "flake": false, - "locked": { - "lastModified": 1704802204, - "narHash": "sha256-vAky7yvPw2ZmS0i268eKCpUp75bylNGA+ckvhuWVKgc=", - "owner": "notomo", - "repo": "gesture.nvim", - "rev": "5124a05debd62326cc899a35a09862a675d7f3da", - "type": "github" - }, - "original": { - "owner": "notomo", - "repo": "gesture.nvim", - "type": "github" - } - }, - "gitsigns-nvim": { - "flake": false, - "locked": { - "lastModified": 1712162672, - "narHash": "sha256-uEHuKccCAYpLGVJovz2PY2Q7THA47z8TA5CHWexBv3E=", - "owner": "lewis6991", - "repo": "gitsigns.nvim", - "rev": "b45ff86f5618d1421a88c12d4feb286b80a1e2d3", - "type": "github" - }, - "original": { - "owner": "lewis6991", - "repo": "gitsigns.nvim", - "type": "github" - } - }, - "glow-nvim": { - "flake": false, - "locked": { - "lastModified": 1703345545, - "narHash": "sha256-GsNcASzVvY0066kak2nvUY5luzanoBclqcUOsODww8g=", - "owner": "ellisonleao", - "repo": "glow.nvim", - "rev": "238070a686c1da3bccccf1079700eb4b5e19aea4", - "type": "github" - }, - "original": { - "owner": "ellisonleao", - "repo": "glow.nvim", - "type": "github" - } - }, - "gruvbox": { - "flake": false, - "locked": { - "lastModified": 1706538659, - "narHash": "sha256-jWnrRy/PT7D0UcPGL+XTbKHWvS0ixvbyqPtTzG9HY84=", - "owner": "ellisonleao", - "repo": "gruvbox.nvim", - "rev": "6e4027ae957cddf7b193adfaec4a8f9e03b4555f", - "type": "github" - }, - "original": { - "owner": "ellisonleao", - "repo": "gruvbox.nvim", - "type": "github" - } - }, - "highlight-undo": { - "flake": false, - "locked": { - "lastModified": 1695227852, - "narHash": "sha256-I1AwVYqpJNA3K1AwGy/VgPnbrYvX19qfI9bQFZNu1SU=", - "owner": "tzachar", - "repo": "highlight-undo.nvim", - "rev": "50a6884a8476be04ecce8f1c4ed692c5000ef0a1", - "type": "github" - }, - "original": { - "owner": "tzachar", - "repo": "highlight-undo.nvim", - "type": "github" - } - }, - "hop-nvim": { - "flake": false, - "locked": { - "lastModified": 1694283445, - "narHash": "sha256-SnuFeD/lrMxKtpBRPgIwdG0kVF7BWe02PiV7URVDASI=", - "owner": "phaazon", - "repo": "hop.nvim", - "rev": "1a1eceafe54b5081eae4cb91c723abd1d450f34b", - "type": "github" - }, - "original": { - "owner": "phaazon", - "repo": "hop.nvim", - "type": "github" - } - }, - "icon-picker-nvim": { - "flake": false, - "locked": { - "lastModified": 1704321319, - "narHash": "sha256-VZKsVeSmPR3AA8267Mtd5sSTZl2CAqnbgqceCptgp4w=", - "owner": "ziontee113", - "repo": "icon-picker.nvim", - "rev": "3ee9a0ea9feeef08ae35e40c8be6a2fa2c20f2d3", - "type": "github" - }, - "original": { - "owner": "ziontee113", - "repo": "icon-picker.nvim", - "type": "github" - } - }, - "image-nvim": { - "flake": false, - "locked": { - "lastModified": 1711809713, - "narHash": "sha256-4xsyVDZOFidvLqwfWRB7BPMOejWk3/uhsnUsCNG/hpU=", - "owner": "3rd", - "repo": "image.nvim", - "rev": "a0b756d589c1623ebbfe344666e6d7c49bdc9d71", - "type": "github" - }, - "original": { - "owner": "3rd", - "repo": "image.nvim", - "type": "github" - } - }, - "indent-blankline": { - "flake": false, - "locked": { - "lastModified": 1710388427, - "narHash": "sha256-Xp8ZQBz0in2MX3l0bnLUsSbH0lDPE+QvdmFpBFry5yY=", - "owner": "lukas-reineke", - "repo": "indent-blankline.nvim", - "rev": "3d08501caef2329aba5121b753e903904088f7e6", - "type": "github" - }, - "original": { - "owner": "lukas-reineke", - "repo": "indent-blankline.nvim", - "type": "github" - } - }, - "kommentary": { - "flake": false, - "locked": { - "lastModified": 1701264889, - "narHash": "sha256-lpa3o42jieVKqs+ZCU8HBqWsoqoc53JKMmCNmIJ0rH0=", - "owner": "b3nj5m1n", - "repo": "kommentary", - "rev": "d5a111a3bc4109a8f913a5863c9092b3b3801482", - "type": "github" - }, - "original": { - "owner": "b3nj5m1n", - "repo": "kommentary", - "type": "github" - } - }, - "leap-nvim": { - "flake": false, - "locked": { - "lastModified": 1711935259, - "narHash": "sha256-HcuNaKyf+rmhg3t4BQXiRlyeavwyhy16pfPn1Y1l09k=", - "owner": "ggandor", - "repo": "leap.nvim", - "rev": "7a9407d17fab3a1c3cfe201965d680a408776152", - "type": "github" - }, - "original": { - "owner": "ggandor", - "repo": "leap.nvim", - "type": "github" - } - }, - "lsp-lines": { - "flake": false, - "locked": { - "lastModified": 1709989705, - "narHash": "sha256-opViLzbwtyUgDoaVKz4z6SN06N8jCQ0YmoqPIht8e64=", - "owner": "~whynothugo", - "repo": "lsp_lines.nvim", - "rev": "6f3defec73f7c87939e800e9afa5d0571b19b401", - "type": "sourcehut" - }, - "original": { - "owner": "~whynothugo", - "repo": "lsp_lines.nvim", - "type": "sourcehut" - } - }, - "lsp-signature": { - "flake": false, - "locked": { - "lastModified": 1710647656, - "narHash": "sha256-O7y7pcCvF0xUFamG+wMLe4mC6hUQ679rJV+ZUoWB0oY=", - "owner": "ray-x", - "repo": "lsp_signature.nvim", - "rev": "c6aeb2f1d2538bbdfdaab1664d9d4c3c75aa9db8", - "type": "github" - }, - "original": { - "owner": "ray-x", - "repo": "lsp_signature.nvim", - "type": "github" - } - }, - "lspkind": { - "flake": false, - "locked": { - "lastModified": 1704982040, - "narHash": "sha256-/QLdBU/Zwmkw1NGuLBD48tvrmIP9d9WHhgcLEQgRTWo=", - "owner": "onsails", - "repo": "lspkind-nvim", - "rev": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf", - "type": "github" - }, - "original": { - "owner": "onsails", - "repo": "lspkind-nvim", - "type": "github" - } - }, - "lspsaga": { - "flake": false, - "locked": { - "lastModified": 1670360222, - "narHash": "sha256-7ENInq3LAPPTdm0Fb7klOc630j8m4LRj1kLZZFYLh68=", - "owner": "tami5", - "repo": "lspsaga.nvim", - "rev": "5faeec9f2508d2d49a66c0ac0d191096b4e3fa81", - "type": "github" - }, - "original": { - "owner": "tami5", - "repo": "lspsaga.nvim", - "type": "github" - } - }, - "lualine": { - "flake": false, - "locked": { - "lastModified": 1710998293, - "narHash": "sha256-+2fi58GolO3e0O7+kl+idNeFuTfJA1b5yCBdY2RnVjA=", - "owner": "hoob3rt", - "repo": "lualine.nvim", - "rev": "b5e8bb642138f787a2c1c5aedc2a78cb2cebbd67", - "type": "github" - }, - "original": { - "owner": "hoob3rt", - "repo": "lualine.nvim", - "type": "github" - } - }, - "mind-nvim": { - "flake": false, - "locked": { - "lastModified": 1679526071, - "narHash": "sha256-JIhAhQYGLLRucwlhzfckQYU5qjqbHtNH52JlGS5a79w=", - "owner": "phaazon", - "repo": "mind.nvim", - "rev": "002137dd7cf97865ebd01b6a260209d2daf2da66", - "type": "github" - }, - "original": { - "owner": "phaazon", - "repo": "mind.nvim", - "type": "github" - } - }, - "minimap-vim": { - "flake": false, - "locked": { - "lastModified": 1710689313, - "narHash": "sha256-GR8VAHla5HWry1TAZQv0Xp7iG256vIGeQcBGMxyt310=", - "owner": "wfxr", - "repo": "minimap.vim", - "rev": "395378137e6180762d5b963ca9ad5ac2db5d3283", - "type": "github" - }, - "original": { - "owner": "wfxr", - "repo": "minimap.vim", - "type": "github" - } - }, - "modes-nvim": { - "flake": false, - "locked": { - "lastModified": 1702245923, - "narHash": "sha256-Kd2hf5obrPvCVLtRcFjLd75byyrB2o3uYCSEMW6IeCc=", - "owner": "mvllow", - "repo": "modes.nvim", - "rev": "4035a46aaabe43faf1b54740575af9dd5bb03809", - "type": "github" - }, - "original": { - "owner": "mvllow", - "repo": "modes.nvim", - "type": "github" - } - }, "naersk": { "inputs": { "nixpkgs": [ @@ -809,38 +105,6 @@ "type": "github" } }, - "neocord": { - "flake": false, - "locked": { - "lastModified": 1711651358, - "narHash": "sha256-ZZF7ttn/6QIsaub1m0LV0ZirvNVXyFh+WDc39wi4UsM=", - "owner": "IogaMaster", - "repo": "neocord", - "rev": "6269823e78a2d2d8c3954068da196879cf2f0fe6", - "type": "github" - }, - "original": { - "owner": "IogaMaster", - "repo": "neocord", - "type": "github" - } - }, - "neodev-nvim": { - "flake": false, - "locked": { - "lastModified": 1711715247, - "narHash": "sha256-mAJOMVN7/xO7ykVNAeTeX+z2A/7yB8zdqlEKHL6Pb74=", - "owner": "folke", - "repo": "neodev.nvim", - "rev": "ce9a2e8eaba5649b553529c5498acb43a6c317cd", - "type": "github" - }, - "original": { - "owner": "folke", - "repo": "neodev.nvim", - "type": "github" - } - }, "nil": { "inputs": { "flake-utils": [ @@ -963,7 +227,727 @@ "type": "sourcehut" } }, - "noice-nvim": { + "plugin-alpha-nvim": { + "flake": false, + "locked": { + "lastModified": 1708891191, + "narHash": "sha256-kTVPKZ/e1us/uHfSwFwR38lFYN8EotJq2jKz6xm/eqg=", + "owner": "goolord", + "repo": "alpha-nvim", + "rev": "41283fb402713fc8b327e60907f74e46166f4cfd", + "type": "github" + }, + "original": { + "owner": "goolord", + "repo": "alpha-nvim", + "type": "github" + } + }, + "plugin-bufdelete-nvim": { + "flake": false, + "locked": { + "lastModified": 1708814161, + "narHash": "sha256-ljUNfmpImtxFCS19HC9kFlaLlqaPDltKtnx1+/6Y33U=", + "owner": "famiu", + "repo": "bufdelete.nvim", + "rev": "f6bcea78afb3060b198125256f897040538bcb81", + "type": "github" + }, + "original": { + "owner": "famiu", + "repo": "bufdelete.nvim", + "type": "github" + } + }, + "plugin-catppuccin": { + "flake": false, + "locked": { + "lastModified": 1711706907, + "narHash": "sha256-GQjxE8lQj52pheJtHCS+9v2lsJY7wMj2IXVCoNRmQSQ=", + "owner": "catppuccin", + "repo": "nvim", + "rev": "aebe43db9cb26e1c70fc5b2fd4158169c405e720", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "nvim", + "type": "github" + } + }, + "plugin-ccc": { + "flake": false, + "locked": { + "lastModified": 1711976559, + "narHash": "sha256-rSOjeklOdIPQvxNfUBG9Hm001cIlBgrPYcnm7afc9TE=", + "owner": "uga-rosa", + "repo": "ccc.nvim", + "rev": "46b8a38a3bc287f27789800d3d26480d093d65b5", + "type": "github" + }, + "original": { + "owner": "uga-rosa", + "repo": "ccc.nvim", + "type": "github" + } + }, + "plugin-cellular-automaton": { + "flake": false, + "locked": { + "lastModified": 1693589931, + "narHash": "sha256-szbd6m7hH7NFI0UzjWF83xkpSJeUWCbn9c+O8F8S/Fg=", + "owner": "Eandrju", + "repo": "cellular-automaton.nvim", + "rev": "b7d056dab963b5d3f2c560d92937cb51db61cb5b", + "type": "github" + }, + "original": { + "owner": "Eandrju", + "repo": "cellular-automaton.nvim", + "type": "github" + } + }, + "plugin-cheatsheet-nvim": { + "flake": false, + "locked": { + "lastModified": 1640255456, + "narHash": "sha256-TYkGB7cON2t4GwMaR9H1MDG2j3btBv2AR37ade8kqTY=", + "owner": "sudormrfbin", + "repo": "cheatsheet.nvim", + "rev": "9716f9aaa94dd1fd6ce59b5aae0e5f25e2a463ef", + "type": "github" + }, + "original": { + "owner": "sudormrfbin", + "repo": "cheatsheet.nvim", + "type": "github" + } + }, + "plugin-cinnamon-nvim": { + "flake": false, + "locked": { + "lastModified": 1711005384, + "narHash": "sha256-LNikkGldBpUsfyH8ThtX7RS1p/z3JzSPonT9qUU84jw=", + "owner": "declancm", + "repo": "cinnamon.nvim", + "rev": "559fe02fae00ffd78377e9c242b2faa25a428592", + "type": "github" + }, + "original": { + "owner": "declancm", + "repo": "cinnamon.nvim", + "type": "github" + } + }, + "plugin-cmp-buffer": { + "flake": false, + "locked": { + "lastModified": 1660101488, + "narHash": "sha256-dG4U7MtnXThoa/PD+qFtCt76MQ14V1wX8GMYcvxEnbM=", + "owner": "hrsh7th", + "repo": "cmp-buffer", + "rev": "3022dbc9166796b644a841a02de8dd1cc1d311fa", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-buffer", + "type": "github" + } + }, + "plugin-cmp-nvim-lsp": { + "flake": false, + "locked": { + "lastModified": 1702205473, + "narHash": "sha256-/0sh9vJBD9pUuD7q3tNSQ1YLvxFMNykdg5eG+LjZAA8=", + "owner": "hrsh7th", + "repo": "cmp-nvim-lsp", + "rev": "5af77f54de1b16c34b23cba810150689a3a90312", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-nvim-lsp", + "type": "github" + } + }, + "plugin-cmp-path": { + "flake": false, + "locked": { + "lastModified": 1664784283, + "narHash": "sha256-thppiiV3wjIaZnAXmsh7j3DUc6ceSCvGzviwFUnoPaI=", + "owner": "hrsh7th", + "repo": "cmp-path", + "rev": "91ff86cd9c29299a64f968ebb45846c485725f23", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-path", + "type": "github" + } + }, + "plugin-cmp-treesitter": { + "flake": false, + "locked": { + "lastModified": 1702163214, + "narHash": "sha256-K7F9iqmB13ONenwsbaND8F4010MvHQXp7DxMFfcsZ4A=", + "owner": "ray-x", + "repo": "cmp-treesitter", + "rev": "13e4ef8f4dd5639fca2eb9150e68f47639a9b37d", + "type": "github" + }, + "original": { + "owner": "ray-x", + "repo": "cmp-treesitter", + "type": "github" + } + }, + "plugin-cmp-vsnip": { + "flake": false, + "locked": { + "lastModified": 1669100283, + "narHash": "sha256-2mkN03noOr5vBvRbSb35xZKorSH+8savQNZtgM9+QcM=", + "owner": "hrsh7th", + "repo": "cmp-vsnip", + "rev": "989a8a73c44e926199bfd05fa7a516d51f2d2752", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-vsnip", + "type": "github" + } + }, + "plugin-codewindow-nvim": { + "flake": false, + "locked": { + "lastModified": 1695487629, + "narHash": "sha256-/u2Zjbd9m3/iJU3I3HzFzXWxuvoycwJoIq7UFeHNtKM=", + "owner": "gorbit99", + "repo": "codewindow.nvim", + "rev": "8c8f5ff66e123491c946c04848d744fcdc7cac6c", + "type": "github" + }, + "original": { + "owner": "gorbit99", + "repo": "codewindow.nvim", + "type": "github" + } + }, + "plugin-comment-nvim": { + "flake": false, + "locked": { + "lastModified": 1691409559, + "narHash": "sha256-+dF1ZombrlO6nQggufSb0igXW5zwU++o0W/5ZA07cdc=", + "owner": "numToStr", + "repo": "Comment.nvim", + "rev": "0236521ea582747b58869cb72f70ccfa967d2e89", + "type": "github" + }, + "original": { + "owner": "numToStr", + "repo": "Comment.nvim", + "type": "github" + } + }, + "plugin-copilot-cmp": { + "flake": false, + "locked": { + "lastModified": 1694286652, + "narHash": "sha256-srgNohm/aJpswNJ5+T7p+zi9Jinp9e5FA8/wdk6VRiY=", + "owner": "zbirenbaum", + "repo": "copilot-cmp", + "rev": "72fbaa03695779f8349be3ac54fa8bd77eed3ee3", + "type": "github" + }, + "original": { + "owner": "zbirenbaum", + "repo": "copilot-cmp", + "type": "github" + } + }, + "plugin-copilot-lua": { + "flake": false, + "locked": { + "lastModified": 1709095198, + "narHash": "sha256-JX3sdsnOnjkY7r9fCtC2oauo0PXF3SQ+SHUo8ifBvAc=", + "owner": "zbirenbaum", + "repo": "copilot.lua", + "rev": "f7612f5af4a7d7615babf43ab1e67a2d790c13a6", + "type": "github" + }, + "original": { + "owner": "zbirenbaum", + "repo": "copilot.lua", + "type": "github" + } + }, + "plugin-crates-nvim": { + "flake": false, + "locked": { + "lastModified": 1712354989, + "narHash": "sha256-hEddiz1wvTuV8txdreCKQCsakpx+g39pGKFXZLXLmt8=", + "owner": "Saecki", + "repo": "crates.nvim", + "rev": "e8fa8ec62ded43c3b06bca7ef36be26b924681bb", + "type": "github" + }, + "original": { + "owner": "Saecki", + "repo": "crates.nvim", + "type": "github" + } + }, + "plugin-dashboard-nvim": { + "flake": false, + "locked": { + "lastModified": 1712210522, + "narHash": "sha256-i/kKj69yeij/aUP3RpIL1opN5tUiy6C1vehSSLYHbgw=", + "owner": "glepnir", + "repo": "dashboard-nvim", + "rev": "681300934baf36f6184ca41f0b26aed22056d4ee", + "type": "github" + }, + "original": { + "owner": "glepnir", + "repo": "dashboard-nvim", + "type": "github" + } + }, + "plugin-diffview-nvim": { + "flake": false, + "locked": { + "lastModified": 1700506468, + "narHash": "sha256-3EdnBUka9Rh5Brl6TWpN6GlD9z32mmY3Ip+wyiKob/8=", + "owner": "sindrets", + "repo": "diffview.nvim", + "rev": "3dc498c9777fe79156f3d32dddd483b8b3dbd95f", + "type": "github" + }, + "original": { + "owner": "sindrets", + "repo": "diffview.nvim", + "type": "github" + } + }, + "plugin-dracula": { + "flake": false, + "locked": { + "lastModified": 1708834650, + "narHash": "sha256-I3rtbJYv1D+kniOLL9hmTF3ucp/qSNewnO2GmYAERko=", + "owner": "Mofiqul", + "repo": "dracula.nvim", + "rev": "8d8bddb8814c3e7e62d80dda65a9876f97eb699c", + "type": "github" + }, + "original": { + "owner": "Mofiqul", + "repo": "dracula.nvim", + "type": "github" + } + }, + "plugin-dressing-nvim": { + "flake": false, + "locked": { + "lastModified": 1710299803, + "narHash": "sha256-9AwOFTRvhWFo7USgoFYfceiojZM62IXPpBs8CnSqc18=", + "owner": "stevearc", + "repo": "dressing.nvim", + "rev": "18e5beb3845f085b6a33c24112b37988f3f93c06", + "type": "github" + }, + "original": { + "owner": "stevearc", + "repo": "dressing.nvim", + "type": "github" + } + }, + "plugin-elixir-ls": { + "flake": false, + "locked": { + "lastModified": 1711286188, + "narHash": "sha256-OIB5f+FBOPsTWKGWyoU+/NQDMsJXBdj1v7UclbTP5ZY=", + "owner": "elixir-lsp", + "repo": "elixir-ls", + "rev": "3e71900e0d0891f9f95e35d9a52b16c6a773a259", + "type": "github" + }, + "original": { + "owner": "elixir-lsp", + "repo": "elixir-ls", + "type": "github" + } + }, + "plugin-elixir-tools": { + "flake": false, + "locked": { + "lastModified": 1710172806, + "narHash": "sha256-pVDeS9oCFzA9t9J/JfYG/RfdMoSmaaERd5nUgL9KHyM=", + "owner": "elixir-tools", + "repo": "elixir-tools.nvim", + "rev": "4d003f4b41ab9b4f8b569104fa7818f048ed4e25", + "type": "github" + }, + "original": { + "owner": "elixir-tools", + "repo": "elixir-tools.nvim", + "type": "github" + } + }, + "plugin-fidget-nvim": { + "flake": false, + "locked": { + "lastModified": 1712242924, + "narHash": "sha256-fZhK5opGXRRryhNpdaEPLpBq4tTibZREelXmasMLHzw=", + "owner": "j-hui", + "repo": "fidget.nvim", + "rev": "1ba38e4cbb24683973e00c2e36f53ae64da38ef5", + "type": "github" + }, + "original": { + "owner": "j-hui", + "repo": "fidget.nvim", + "type": "github" + } + }, + "plugin-flutter-tools": { + "flake": false, + "locked": { + "lastModified": 1711622317, + "narHash": "sha256-TQRz2MHg6qnzZGUDVFUoaZJiTBwQ3Hjqvc8AAeVS93Y=", + "owner": "akinsho", + "repo": "flutter-tools.nvim", + "rev": "4f18033c3b78aa5450e538d81dfbbb3e67aeadec", + "type": "github" + }, + "original": { + "owner": "akinsho", + "repo": "flutter-tools.nvim", + "type": "github" + } + }, + "plugin-gesture-nvim": { + "flake": false, + "locked": { + "lastModified": 1704802204, + "narHash": "sha256-vAky7yvPw2ZmS0i268eKCpUp75bylNGA+ckvhuWVKgc=", + "owner": "notomo", + "repo": "gesture.nvim", + "rev": "5124a05debd62326cc899a35a09862a675d7f3da", + "type": "github" + }, + "original": { + "owner": "notomo", + "repo": "gesture.nvim", + "type": "github" + } + }, + "plugin-gitsigns-nvim": { + "flake": false, + "locked": { + "lastModified": 1712478260, + "narHash": "sha256-Q0s9sbq7pWzJxF6RF+0smunUzaKqJ4Z7EK3A5KFBAYA=", + "owner": "lewis6991", + "repo": "gitsigns.nvim", + "rev": "1a50b94066def8591d5f65bd60a4233902e9def4", + "type": "github" + }, + "original": { + "owner": "lewis6991", + "repo": "gitsigns.nvim", + "type": "github" + } + }, + "plugin-glow-nvim": { + "flake": false, + "locked": { + "lastModified": 1703345545, + "narHash": "sha256-GsNcASzVvY0066kak2nvUY5luzanoBclqcUOsODww8g=", + "owner": "ellisonleao", + "repo": "glow.nvim", + "rev": "238070a686c1da3bccccf1079700eb4b5e19aea4", + "type": "github" + }, + "original": { + "owner": "ellisonleao", + "repo": "glow.nvim", + "type": "github" + } + }, + "plugin-gruvbox": { + "flake": false, + "locked": { + "lastModified": 1706538659, + "narHash": "sha256-jWnrRy/PT7D0UcPGL+XTbKHWvS0ixvbyqPtTzG9HY84=", + "owner": "ellisonleao", + "repo": "gruvbox.nvim", + "rev": "6e4027ae957cddf7b193adfaec4a8f9e03b4555f", + "type": "github" + }, + "original": { + "owner": "ellisonleao", + "repo": "gruvbox.nvim", + "type": "github" + } + }, + "plugin-highlight-undo": { + "flake": false, + "locked": { + "lastModified": 1695227852, + "narHash": "sha256-I1AwVYqpJNA3K1AwGy/VgPnbrYvX19qfI9bQFZNu1SU=", + "owner": "tzachar", + "repo": "highlight-undo.nvim", + "rev": "50a6884a8476be04ecce8f1c4ed692c5000ef0a1", + "type": "github" + }, + "original": { + "owner": "tzachar", + "repo": "highlight-undo.nvim", + "type": "github" + } + }, + "plugin-hop-nvim": { + "flake": false, + "locked": { + "lastModified": 1694283445, + "narHash": "sha256-SnuFeD/lrMxKtpBRPgIwdG0kVF7BWe02PiV7URVDASI=", + "owner": "phaazon", + "repo": "hop.nvim", + "rev": "1a1eceafe54b5081eae4cb91c723abd1d450f34b", + "type": "github" + }, + "original": { + "owner": "phaazon", + "repo": "hop.nvim", + "type": "github" + } + }, + "plugin-icon-picker-nvim": { + "flake": false, + "locked": { + "lastModified": 1704321319, + "narHash": "sha256-VZKsVeSmPR3AA8267Mtd5sSTZl2CAqnbgqceCptgp4w=", + "owner": "ziontee113", + "repo": "icon-picker.nvim", + "rev": "3ee9a0ea9feeef08ae35e40c8be6a2fa2c20f2d3", + "type": "github" + }, + "original": { + "owner": "ziontee113", + "repo": "icon-picker.nvim", + "type": "github" + } + }, + "plugin-image-nvim": { + "flake": false, + "locked": { + "lastModified": 1712327429, + "narHash": "sha256-usDtW+WnaeTdxx1ALCiZu/gnx2so7QneOjWoEXiChoQ=", + "owner": "3rd", + "repo": "image.nvim", + "rev": "9be5ede323756d7ee2bbef2bc157767b3972cce6", + "type": "github" + }, + "original": { + "owner": "3rd", + "repo": "image.nvim", + "type": "github" + } + }, + "plugin-indent-blankline": { + "flake": false, + "locked": { + "lastModified": 1710388427, + "narHash": "sha256-Xp8ZQBz0in2MX3l0bnLUsSbH0lDPE+QvdmFpBFry5yY=", + "owner": "lukas-reineke", + "repo": "indent-blankline.nvim", + "rev": "3d08501caef2329aba5121b753e903904088f7e6", + "type": "github" + }, + "original": { + "owner": "lukas-reineke", + "repo": "indent-blankline.nvim", + "type": "github" + } + }, + "plugin-leap-nvim": { + "flake": false, + "locked": { + "lastModified": 1712497602, + "narHash": "sha256-nuteqGKAMC+u7R1ZlqSB6prxB8jCXspICRxOcB4j9BM=", + "owner": "ggandor", + "repo": "leap.nvim", + "rev": "3fc5e8344eac8a306baca09634fd613d1aa2c388", + "type": "github" + }, + "original": { + "owner": "ggandor", + "repo": "leap.nvim", + "type": "github" + } + }, + "plugin-lsp-lines": { + "flake": false, + "locked": { + "lastModified": 1709989705, + "narHash": "sha256-opViLzbwtyUgDoaVKz4z6SN06N8jCQ0YmoqPIht8e64=", + "owner": "~whynothugo", + "repo": "lsp_lines.nvim", + "rev": "6f3defec73f7c87939e800e9afa5d0571b19b401", + "type": "sourcehut" + }, + "original": { + "owner": "~whynothugo", + "repo": "lsp_lines.nvim", + "type": "sourcehut" + } + }, + "plugin-lsp-signature": { + "flake": false, + "locked": { + "lastModified": 1710647656, + "narHash": "sha256-O7y7pcCvF0xUFamG+wMLe4mC6hUQ679rJV+ZUoWB0oY=", + "owner": "ray-x", + "repo": "lsp_signature.nvim", + "rev": "c6aeb2f1d2538bbdfdaab1664d9d4c3c75aa9db8", + "type": "github" + }, + "original": { + "owner": "ray-x", + "repo": "lsp_signature.nvim", + "type": "github" + } + }, + "plugin-lspkind": { + "flake": false, + "locked": { + "lastModified": 1704982040, + "narHash": "sha256-/QLdBU/Zwmkw1NGuLBD48tvrmIP9d9WHhgcLEQgRTWo=", + "owner": "onsails", + "repo": "lspkind-nvim", + "rev": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf", + "type": "github" + }, + "original": { + "owner": "onsails", + "repo": "lspkind-nvim", + "type": "github" + } + }, + "plugin-lspsaga": { + "flake": false, + "locked": { + "lastModified": 1670360222, + "narHash": "sha256-7ENInq3LAPPTdm0Fb7klOc630j8m4LRj1kLZZFYLh68=", + "owner": "tami5", + "repo": "lspsaga.nvim", + "rev": "5faeec9f2508d2d49a66c0ac0d191096b4e3fa81", + "type": "github" + }, + "original": { + "owner": "tami5", + "repo": "lspsaga.nvim", + "type": "github" + } + }, + "plugin-lualine": { + "flake": false, + "locked": { + "lastModified": 1712310396, + "narHash": "sha256-WcH2dWdRDgMkwBQhcgT+Z/ArMdm+VbRhmQftx4t2kNI=", + "owner": "hoob3rt", + "repo": "lualine.nvim", + "rev": "0a5a66803c7407767b799067986b4dc3036e1983", + "type": "github" + }, + "original": { + "owner": "hoob3rt", + "repo": "lualine.nvim", + "type": "github" + } + }, + "plugin-mind-nvim": { + "flake": false, + "locked": { + "lastModified": 1679526071, + "narHash": "sha256-JIhAhQYGLLRucwlhzfckQYU5qjqbHtNH52JlGS5a79w=", + "owner": "phaazon", + "repo": "mind.nvim", + "rev": "002137dd7cf97865ebd01b6a260209d2daf2da66", + "type": "github" + }, + "original": { + "owner": "phaazon", + "repo": "mind.nvim", + "type": "github" + } + }, + "plugin-minimap-vim": { + "flake": false, + "locked": { + "lastModified": 1710689313, + "narHash": "sha256-GR8VAHla5HWry1TAZQv0Xp7iG256vIGeQcBGMxyt310=", + "owner": "wfxr", + "repo": "minimap.vim", + "rev": "395378137e6180762d5b963ca9ad5ac2db5d3283", + "type": "github" + }, + "original": { + "owner": "wfxr", + "repo": "minimap.vim", + "type": "github" + } + }, + "plugin-modes-nvim": { + "flake": false, + "locked": { + "lastModified": 1702245923, + "narHash": "sha256-Kd2hf5obrPvCVLtRcFjLd75byyrB2o3uYCSEMW6IeCc=", + "owner": "mvllow", + "repo": "modes.nvim", + "rev": "4035a46aaabe43faf1b54740575af9dd5bb03809", + "type": "github" + }, + "original": { + "owner": "mvllow", + "repo": "modes.nvim", + "type": "github" + } + }, + "plugin-neocord": { + "flake": false, + "locked": { + "lastModified": 1711651358, + "narHash": "sha256-ZZF7ttn/6QIsaub1m0LV0ZirvNVXyFh+WDc39wi4UsM=", + "owner": "IogaMaster", + "repo": "neocord", + "rev": "6269823e78a2d2d8c3954068da196879cf2f0fe6", + "type": "github" + }, + "original": { + "owner": "IogaMaster", + "repo": "neocord", + "type": "github" + } + }, + "plugin-neodev-nvim": { + "flake": false, + "locked": { + "lastModified": 1711715247, + "narHash": "sha256-mAJOMVN7/xO7ykVNAeTeX+z2A/7yB8zdqlEKHL6Pb74=", + "owner": "folke", + "repo": "neodev.nvim", + "rev": "ce9a2e8eaba5649b553529c5498acb43a6c317cd", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "neodev.nvim", + "type": "github" + } + }, + "plugin-noice-nvim": { "flake": false, "locked": { "lastModified": 1711471279, @@ -979,7 +963,7 @@ "type": "github" } }, - "none-ls": { + "plugin-none-ls": { "flake": false, "locked": { "lastModified": 1708525772, @@ -996,7 +980,7 @@ "type": "github" } }, - "nui-nvim": { + "plugin-nui-nvim": { "flake": false, "locked": { "lastModified": 1710740032, @@ -1012,14 +996,14 @@ "type": "github" } }, - "nvim-autopairs": { + "plugin-nvim-autopairs": { "flake": false, "locked": { - "lastModified": 1710930065, - "narHash": "sha256-H4mJ43Eyo36noIqYZ0lyqM7WPwgIKqi96OjW5F3pfvU=", + "lastModified": 1712441622, + "narHash": "sha256-ta+0jw7P0ESThP8q2c+CD+nCzPMyHH2Cy3kjjysH0TE=", "owner": "windwp", "repo": "nvim-autopairs", - "rev": "dbfc1c34bed415906395db8303c71039b3a3ffb4", + "rev": "4f41e5940bc0443fdbe5f995e2a596847215cd2a", "type": "github" }, "original": { @@ -1028,7 +1012,7 @@ "type": "github" } }, - "nvim-bufferline-lua": { + "plugin-nvim-bufferline-lua": { "flake": false, "locked": { "lastModified": 1709805539, @@ -1044,7 +1028,7 @@ "type": "github" } }, - "nvim-cmp": { + "plugin-nvim-cmp": { "flake": false, "locked": { "lastModified": 1712041554, @@ -1060,7 +1044,7 @@ "type": "github" } }, - "nvim-code-action-menu": { + "plugin-nvim-code-action-menu": { "flake": false, "locked": { "lastModified": 1702287297, @@ -1076,7 +1060,7 @@ "type": "github" } }, - "nvim-colorizer-lua": { + "plugin-nvim-colorizer-lua": { "flake": false, "locked": { "lastModified": 1703321305, @@ -1092,7 +1076,7 @@ "type": "github" } }, - "nvim-cursorline": { + "plugin-nvim-cursorline": { "flake": false, "locked": { "lastModified": 1650034925, @@ -1108,7 +1092,7 @@ "type": "github" } }, - "nvim-dap": { + "plugin-nvim-dap": { "flake": false, "locked": { "lastModified": 1711382674, @@ -1124,7 +1108,7 @@ "type": "github" } }, - "nvim-dap-ui": { + "plugin-nvim-dap-ui": { "flake": false, "locked": { "lastModified": 1710867604, @@ -1140,7 +1124,7 @@ "type": "github" } }, - "nvim-docs-view": { + "plugin-nvim-docs-view": { "flake": false, "locked": { "lastModified": 1705711563, @@ -1156,7 +1140,7 @@ "type": "github" } }, - "nvim-lightbulb": { + "plugin-nvim-lightbulb": { "flake": false, "locked": { "lastModified": 1689887436, @@ -1172,14 +1156,14 @@ "type": "github" } }, - "nvim-lspconfig": { + "plugin-nvim-lspconfig": { "flake": false, "locked": { - "lastModified": 1712139869, - "narHash": "sha256-DMhB4L/0FjYbhNx7SwFnyFVa4PLVLlwB4uiNbiKUmEo=", + "lastModified": 1712382943, + "narHash": "sha256-CwDlDkdx70tKhrViP8/GPdwH3LWR6nUW3qqWmI8kleo=", "owner": "neovim", "repo": "nvim-lspconfig", - "rev": "96e5711040df23583591391ce49e556b8cd248d8", + "rev": "9619e53d3f99f0ca4ea3b88f5d97fce703131820", "type": "github" }, "original": { @@ -1188,7 +1172,7 @@ "type": "github" } }, - "nvim-navbuddy": { + "plugin-nvim-navbuddy": { "flake": false, "locked": { "lastModified": 1711239174, @@ -1204,7 +1188,7 @@ "type": "github" } }, - "nvim-navic": { + "plugin-nvim-navic": { "flake": false, "locked": { "lastModified": 1701345631, @@ -1220,7 +1204,7 @@ "type": "github" } }, - "nvim-neoclip": { + "plugin-nvim-neoclip": { "flake": false, "locked": { "lastModified": 1701664728, @@ -1236,14 +1220,14 @@ "type": "github" } }, - "nvim-nio": { + "plugin-nvim-nio": { "flake": false, "locked": { - "lastModified": 1712067294, - "narHash": "sha256-bjYtZygrL05qB2dM7Q8lJor81VYO+u8/JWQqfZ19Wzk=", + "lastModified": 1712221544, + "narHash": "sha256-ZRYclqsgAvlRBwb59XHlqVat7CxUJTH1rD6QLwh1ang=", "owner": "nvim-neotest", "repo": "nvim-nio", - "rev": "173f285eebb410199273fa178aa517fd2d7edd80", + "rev": "5800f585def265d52f1d8848133217c800bcb25d", "type": "github" }, "original": { @@ -1252,7 +1236,7 @@ "type": "github" } }, - "nvim-notify": { + "plugin-nvim-notify": { "flake": false, "locked": { "lastModified": 1708161547, @@ -1268,7 +1252,7 @@ "type": "github" } }, - "nvim-session-manager": { + "plugin-nvim-session-manager": { "flake": false, "locked": { "lastModified": 1708284146, @@ -1284,7 +1268,7 @@ "type": "github" } }, - "nvim-surround": { + "plugin-nvim-surround": { "flake": false, "locked": { "lastModified": 1709063002, @@ -1300,14 +1284,14 @@ "type": "github" } }, - "nvim-tree-lua": { + "plugin-nvim-tree-lua": { "flake": false, "locked": { - "lastModified": 1711866287, - "narHash": "sha256-AMbUthY+49wREBr7EQSZ/tH8hT4gixPfcPT+ZzssUKw=", + "lastModified": 1712366921, + "narHash": "sha256-6pbOeklf+otsJIjt9IUyUfuTAedShnwERYq1IfhyrJs=", "owner": "nvim-tree", "repo": "nvim-tree.lua", - "rev": "d8d3a1590a05b2d8b5eb26e2ed1c6052b1b47a77", + "rev": "81eb8d519233c105f30dc0a278607e62b20502fd", "type": "github" }, "original": { @@ -1316,7 +1300,7 @@ "type": "github" } }, - "nvim-treesitter-context": { + "plugin-nvim-treesitter-context": { "flake": false, "locked": { "lastModified": 1711099836, @@ -1332,7 +1316,7 @@ "type": "github" } }, - "nvim-ts-autotag": { + "plugin-nvim-ts-autotag": { "flake": false, "locked": { "lastModified": 1707265789, @@ -1348,14 +1332,14 @@ "type": "github" } }, - "nvim-web-devicons": { + "plugin-nvim-web-devicons": { "flake": false, "locked": { - "lastModified": 1711417099, - "narHash": "sha256-G8URFQdABLf3ptj+9kwSFGXly9D+4lkt3SXfbhVDH6g=", + "lastModified": 1712456836, + "narHash": "sha256-Qmt/9c/frXoD9aXLpxkv9Ps3DFX6CelDojsWw6XRuzI=", "owner": "nvim-tree", "repo": "nvim-web-devicons", - "rev": "3ee60deaa539360518eaab93a6c701fe9f4d82ef", + "rev": "93ddac6966d5d3416f96df728d7b92e27aaa4452", "type": "github" }, "original": { @@ -1364,14 +1348,14 @@ "type": "github" } }, - "obsidian-nvim": { + "plugin-obsidian-nvim": { "flake": false, "locked": { - "lastModified": 1711994732, - "narHash": "sha256-RD5EhYv2AZvCywxQYKkPjZPY/jEjl2rEofMVCHO6SJQ=", + "lastModified": 1712330116, + "narHash": "sha256-VSZZBKh1cgEydpRCAZFzdU8/CQJfACYLecvcwfvrOR0=", "owner": "epwalsh", "repo": "obsidian.nvim", - "rev": "d70f3289399c25153b7f503b838afbf981124a37", + "rev": "6661806e211bc987d68e4f0b7c92eabfe797c2eb", "type": "github" }, "original": { @@ -1380,7 +1364,7 @@ "type": "github" } }, - "onedark": { + "plugin-onedark": { "flake": false, "locked": { "lastModified": 1706527208, @@ -1396,14 +1380,14 @@ "type": "github" } }, - "orgmode-nvim": { + "plugin-orgmode-nvim": { "flake": false, "locked": { - "lastModified": 1712161945, - "narHash": "sha256-44dTemgSevEdiluUanGLySo7WbvKrXW+n2dUwUO4cqY=", + "lastModified": 1712524015, + "narHash": "sha256-I/3z5Bi1Ip5I2mrKB9Tx7tcoNw3lzrxAF5kGhdFfiZY=", "owner": "nvim-orgmode", "repo": "orgmode", - "rev": "ddcfbb1e52b2ff5b90469eb13214676931a66e09", + "rev": "b3bef73b5b418cf65cb564444061b14682a1af4b", "type": "github" }, "original": { @@ -1412,7 +1396,7 @@ "type": "github" } }, - "oxocarbon": { + "plugin-oxocarbon": { "flake": false, "locked": { "lastModified": 1687168305, @@ -1429,7 +1413,7 @@ "type": "github" } }, - "plenary-nvim": { + "plugin-plenary-nvim": { "flake": false, "locked": { "lastModified": 1711369325, @@ -1445,7 +1429,7 @@ "type": "github" } }, - "project-nvim": { + "plugin-project-nvim": { "flake": false, "locked": { "lastModified": 1680567592, @@ -1461,7 +1445,7 @@ "type": "github" } }, - "registers": { + "plugin-registers": { "flake": false, "locked": { "lastModified": 1703954003, @@ -1477,6 +1461,294 @@ "type": "github" } }, + "plugin-rose-pine": { + "flake": false, + "locked": { + "lastModified": 1711769966, + "narHash": "sha256-GVYCkyFdVgye/8pEXPT8Y+4YyLmivgX/IHht/G1DdEA=", + "owner": "rose-pine", + "repo": "neovim", + "rev": "19055dfe90bfa46a1e5b0a706d13980bdffa2dee", + "type": "github" + }, + "original": { + "owner": "rose-pine", + "repo": "neovim", + "type": "github" + } + }, + "plugin-rust-tools": { + "flake": false, + "locked": { + "lastModified": 1704259376, + "narHash": "sha256-kFane5ze7VDiOzF7jdmXkr50XQsNvdb+a9HQtybEVE0=", + "owner": "simrat39", + "repo": "rust-tools.nvim", + "rev": "676187908a1ce35ffcd727c654ed68d851299d3e", + "type": "github" + }, + "original": { + "owner": "simrat39", + "repo": "rust-tools.nvim", + "type": "github" + } + }, + "plugin-scrollbar-nvim": { + "flake": false, + "locked": { + "lastModified": 1684886154, + "narHash": "sha256-zLBexSxQCn9HPY04a9w/UCJP1F5ShI2X12I9xE9H0cM=", + "owner": "petertriho", + "repo": "nvim-scrollbar", + "rev": "35f99d559041c7c0eff3a41f9093581ceea534e8", + "type": "github" + }, + "original": { + "owner": "petertriho", + "repo": "nvim-scrollbar", + "type": "github" + } + }, + "plugin-smartcolumn": { + "flake": false, + "locked": { + "lastModified": 1710067624, + "narHash": "sha256-DHIeDNUF9n9s14GVeojIwc5QUPwJMYYl3gRvhvO/rdE=", + "owner": "m4xshen", + "repo": "smartcolumn.nvim", + "rev": "cefb17be095ad5526030a21bb2a80553cae09127", + "type": "github" + }, + "original": { + "owner": "m4xshen", + "repo": "smartcolumn.nvim", + "type": "github" + } + }, + "plugin-sqls-nvim": { + "flake": false, + "locked": { + "lastModified": 1684697500, + "narHash": "sha256-jKFut6NZAf/eIeIkY7/2EsjsIhvZQKCKAJzeQ6XSr0s=", + "owner": "nanotee", + "repo": "sqls.nvim", + "rev": "4b1274b5b44c48ce784aac23747192f5d9d26207", + "type": "github" + }, + "original": { + "owner": "nanotee", + "repo": "sqls.nvim", + "type": "github" + } + }, + "plugin-tabular": { + "flake": false, + "locked": { + "lastModified": 1550598128, + "narHash": "sha256-irolBA/m3YIaezl+90h5G+xUOpad+3u44uJqDs4JCUs=", + "owner": "godlygeek", + "repo": "tabular", + "rev": "339091ac4dd1f17e225fe7d57b48aff55f99b23a", + "type": "github" + }, + "original": { + "owner": "godlygeek", + "repo": "tabular", + "type": "github" + } + }, + "plugin-telescope": { + "flake": false, + "locked": { + "lastModified": 1712279028, + "narHash": "sha256-um0vpDgI3kBb0lRr9HKZKQXUMUU1aNQiLwSEhxttLW8=", + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "rev": "d26b666b45e5dde23332e4bde1227677f2d92e31", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "type": "github" + } + }, + "plugin-todo-comments": { + "flake": false, + "locked": { + "lastModified": 1711553769, + "narHash": "sha256-BJNU01iTRDNrPv48fgiJRS+ouaHkoqw2AYXKDRgDzfw=", + "owner": "folke", + "repo": "todo-comments.nvim", + "rev": "a7e39ae9e74f2c8c6dc4eea6d40c3971ae84752d", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "todo-comments.nvim", + "type": "github" + } + }, + "plugin-toggleterm-nvim": { + "flake": false, + "locked": { + "lastModified": 1707733615, + "narHash": "sha256-FJyDxQm2vs9R4WkqAbh6ryCvEABfrLSKRrAGo/qI5jM=", + "owner": "akinsho", + "repo": "toggleterm.nvim", + "rev": "193786e0371e3286d3bc9aa0079da1cd41beaa62", + "type": "github" + }, + "original": { + "owner": "akinsho", + "repo": "toggleterm.nvim", + "type": "github" + } + }, + "plugin-tokyonight": { + "flake": false, + "locked": { + "lastModified": 1711665767, + "narHash": "sha256-ItCmSUMMTe8iQeneIJLuWedVXsNgm+FXNtdrrdJ/1oE=", + "owner": "folke", + "repo": "tokyonight.nvim", + "rev": "9bf9ec53d5e87b025e2404069b71e7ebdc3a13e5", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "tokyonight.nvim", + "type": "github" + } + }, + "plugin-trouble": { + "flake": false, + "locked": { + "lastModified": 1711693365, + "narHash": "sha256-kIQ72fqAsiMF9jq0MzC6peaHJddYn5PRNXfYFHTQB5Q=", + "owner": "folke", + "repo": "trouble.nvim", + "rev": "b9cf677f20bb2faa2dacfa870b084e568dca9572", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "trouble.nvim", + "type": "github" + } + }, + "plugin-vim-dirtytalk": { + "flake": false, + "locked": { + "lastModified": 1712320196, + "narHash": "sha256-EpxQjvdHmKl4zXOqgqSujyvwbSvYHyMsHhjQd5UZKAQ=", + "owner": "psliwka", + "repo": "vim-dirtytalk", + "rev": "9423461a19bbe176291f202fa210e3ec8851b6cc", + "type": "github" + }, + "original": { + "owner": "psliwka", + "repo": "vim-dirtytalk", + "type": "github" + } + }, + "plugin-vim-illuminate": { + "flake": false, + "locked": { + "lastModified": 1707016059, + "narHash": "sha256-KNIu4cNyZddZSRS8KZ0U0T8uSSLJu8iqNLQN8e+Bv94=", + "owner": "RRethy", + "repo": "vim-illuminate", + "rev": "305bf07b919ac526deb5193280379e2f8b599926", + "type": "github" + }, + "original": { + "owner": "RRethy", + "repo": "vim-illuminate", + "type": "github" + } + }, + "plugin-vim-markdown": { + "flake": false, + "locked": { + "lastModified": 1709279705, + "narHash": "sha256-eKwWdyvMZ7FV3FvOtqWVD7pulXNnhbEEjHq7MYg1woU=", + "owner": "preservim", + "repo": "vim-markdown", + "rev": "a657e697376909c41475a686eeef7fc7a4972d94", + "type": "github" + }, + "original": { + "owner": "preservim", + "repo": "vim-markdown", + "type": "github" + } + }, + "plugin-vim-repeat": { + "flake": false, + "locked": { + "lastModified": 1611544268, + "narHash": "sha256-8rfZa3uKXB3TRCqaDHZ6DfzNbm7WaYnLvmTNzYtnKHg=", + "owner": "tpope", + "repo": "vim-repeat", + "rev": "24afe922e6a05891756ecf331f39a1f6743d3d5a", + "type": "github" + }, + "original": { + "owner": "tpope", + "repo": "vim-repeat", + "type": "github" + } + }, + "plugin-vim-startify": { + "flake": false, + "locked": { + "lastModified": 1695213983, + "narHash": "sha256-W5N/Dqxf9hSXEEJsrEkXInFwBXNBJe9Dzx9TVS12mPk=", + "owner": "mhinz", + "repo": "vim-startify", + "rev": "4e089dffdad46f3f5593f34362d530e8fe823dcf", + "type": "github" + }, + "original": { + "owner": "mhinz", + "repo": "vim-startify", + "type": "github" + } + }, + "plugin-vim-vsnip": { + "flake": false, + "locked": { + "lastModified": 1704937299, + "narHash": "sha256-gvm6z4pgSULBVPukewRyjwxZ0vZgreQWbG/0kOB1QBo=", + "owner": "hrsh7th", + "repo": "vim-vsnip", + "rev": "02a8e79295c9733434aab4e0e2b8c4b7cea9f3a9", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "vim-vsnip", + "type": "github" + } + }, + "plugin-which-key": { + "flake": false, + "locked": { + "lastModified": 1697801635, + "narHash": "sha256-uvghPj/teWrRMm09Gh8iQ/LV2nYJw0lmoiZK6L4+1cY=", + "owner": "folke", + "repo": "which-key.nvim", + "rev": "4433e5ec9a507e5097571ed55c02ea9658fb268a", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "which-key.nvim", + "type": "github" + } + }, "rnix-lsp": { "inputs": { "naersk": "naersk", @@ -1499,129 +1771,112 @@ }, "root": { "inputs": { - "alpha-nvim": "alpha-nvim", - "bufdelete-nvim": "bufdelete-nvim", - "catppuccin": "catppuccin", - "ccc": "ccc", - "cellular-automaton": "cellular-automaton", - "cheatsheet-nvim": "cheatsheet-nvim", - "cinnamon-nvim": "cinnamon-nvim", - "cmp-buffer": "cmp-buffer", - "cmp-nvim-lsp": "cmp-nvim-lsp", - "cmp-path": "cmp-path", - "cmp-treesitter": "cmp-treesitter", - "cmp-vsnip": "cmp-vsnip", - "codewindow-nvim": "codewindow-nvim", - "comment-nvim": "comment-nvim", - "copilot-cmp": "copilot-cmp", - "copilot-lua": "copilot-lua", - "crates-nvim": "crates-nvim", - "dashboard-nvim": "dashboard-nvim", - "diffview-nvim": "diffview-nvim", - "dracula": "dracula", - "dressing-nvim": "dressing-nvim", - "elixir-ls": "elixir-ls", - "elixir-tools": "elixir-tools", - "fidget-nvim": "fidget-nvim", "flake-parts": "flake-parts", "flake-utils": "flake-utils", - "flutter-tools": "flutter-tools", - "gesture-nvim": "gesture-nvim", - "gitsigns-nvim": "gitsigns-nvim", - "glow-nvim": "glow-nvim", - "gruvbox": "gruvbox", - "highlight-undo": "highlight-undo", - "hop-nvim": "hop-nvim", - "icon-picker-nvim": "icon-picker-nvim", - "image-nvim": "image-nvim", - "indent-blankline": "indent-blankline", - "kommentary": "kommentary", - "leap-nvim": "leap-nvim", - "lsp-lines": "lsp-lines", - "lsp-signature": "lsp-signature", - "lspkind": "lspkind", - "lspsaga": "lspsaga", - "lualine": "lualine", - "mind-nvim": "mind-nvim", - "minimap-vim": "minimap-vim", - "modes-nvim": "modes-nvim", - "neocord": "neocord", - "neodev-nvim": "neodev-nvim", "nil": "nil", "nixpkgs": "nixpkgs", "nmd": "nmd", - "noice-nvim": "noice-nvim", - "none-ls": "none-ls", - "nui-nvim": "nui-nvim", - "nvim-autopairs": "nvim-autopairs", - "nvim-bufferline-lua": "nvim-bufferline-lua", - "nvim-cmp": "nvim-cmp", - "nvim-code-action-menu": "nvim-code-action-menu", - "nvim-colorizer-lua": "nvim-colorizer-lua", - "nvim-cursorline": "nvim-cursorline", - "nvim-dap": "nvim-dap", - "nvim-dap-ui": "nvim-dap-ui", - "nvim-docs-view": "nvim-docs-view", - "nvim-lightbulb": "nvim-lightbulb", - "nvim-lspconfig": "nvim-lspconfig", - "nvim-navbuddy": "nvim-navbuddy", - "nvim-navic": "nvim-navic", - "nvim-neoclip": "nvim-neoclip", - "nvim-nio": "nvim-nio", - "nvim-notify": "nvim-notify", - "nvim-session-manager": "nvim-session-manager", - "nvim-surround": "nvim-surround", - "nvim-tree-lua": "nvim-tree-lua", - "nvim-treesitter-context": "nvim-treesitter-context", - "nvim-ts-autotag": "nvim-ts-autotag", - "nvim-web-devicons": "nvim-web-devicons", - "obsidian-nvim": "obsidian-nvim", - "onedark": "onedark", - "orgmode-nvim": "orgmode-nvim", - "oxocarbon": "oxocarbon", - "plenary-nvim": "plenary-nvim", - "project-nvim": "project-nvim", - "registers": "registers", + "plugin-alpha-nvim": "plugin-alpha-nvim", + "plugin-bufdelete-nvim": "plugin-bufdelete-nvim", + "plugin-catppuccin": "plugin-catppuccin", + "plugin-ccc": "plugin-ccc", + "plugin-cellular-automaton": "plugin-cellular-automaton", + "plugin-cheatsheet-nvim": "plugin-cheatsheet-nvim", + "plugin-cinnamon-nvim": "plugin-cinnamon-nvim", + "plugin-cmp-buffer": "plugin-cmp-buffer", + "plugin-cmp-nvim-lsp": "plugin-cmp-nvim-lsp", + "plugin-cmp-path": "plugin-cmp-path", + "plugin-cmp-treesitter": "plugin-cmp-treesitter", + "plugin-cmp-vsnip": "plugin-cmp-vsnip", + "plugin-codewindow-nvim": "plugin-codewindow-nvim", + "plugin-comment-nvim": "plugin-comment-nvim", + "plugin-copilot-cmp": "plugin-copilot-cmp", + "plugin-copilot-lua": "plugin-copilot-lua", + "plugin-crates-nvim": "plugin-crates-nvim", + "plugin-dashboard-nvim": "plugin-dashboard-nvim", + "plugin-diffview-nvim": "plugin-diffview-nvim", + "plugin-dracula": "plugin-dracula", + "plugin-dressing-nvim": "plugin-dressing-nvim", + "plugin-elixir-ls": "plugin-elixir-ls", + "plugin-elixir-tools": "plugin-elixir-tools", + "plugin-fidget-nvim": "plugin-fidget-nvim", + "plugin-flutter-tools": "plugin-flutter-tools", + "plugin-gesture-nvim": "plugin-gesture-nvim", + "plugin-gitsigns-nvim": "plugin-gitsigns-nvim", + "plugin-glow-nvim": "plugin-glow-nvim", + "plugin-gruvbox": "plugin-gruvbox", + "plugin-highlight-undo": "plugin-highlight-undo", + "plugin-hop-nvim": "plugin-hop-nvim", + "plugin-icon-picker-nvim": "plugin-icon-picker-nvim", + "plugin-image-nvim": "plugin-image-nvim", + "plugin-indent-blankline": "plugin-indent-blankline", + "plugin-leap-nvim": "plugin-leap-nvim", + "plugin-lsp-lines": "plugin-lsp-lines", + "plugin-lsp-signature": "plugin-lsp-signature", + "plugin-lspkind": "plugin-lspkind", + "plugin-lspsaga": "plugin-lspsaga", + "plugin-lualine": "plugin-lualine", + "plugin-mind-nvim": "plugin-mind-nvim", + "plugin-minimap-vim": "plugin-minimap-vim", + "plugin-modes-nvim": "plugin-modes-nvim", + "plugin-neocord": "plugin-neocord", + "plugin-neodev-nvim": "plugin-neodev-nvim", + "plugin-noice-nvim": "plugin-noice-nvim", + "plugin-none-ls": "plugin-none-ls", + "plugin-nui-nvim": "plugin-nui-nvim", + "plugin-nvim-autopairs": "plugin-nvim-autopairs", + "plugin-nvim-bufferline-lua": "plugin-nvim-bufferline-lua", + "plugin-nvim-cmp": "plugin-nvim-cmp", + "plugin-nvim-code-action-menu": "plugin-nvim-code-action-menu", + "plugin-nvim-colorizer-lua": "plugin-nvim-colorizer-lua", + "plugin-nvim-cursorline": "plugin-nvim-cursorline", + "plugin-nvim-dap": "plugin-nvim-dap", + "plugin-nvim-dap-ui": "plugin-nvim-dap-ui", + "plugin-nvim-docs-view": "plugin-nvim-docs-view", + "plugin-nvim-lightbulb": "plugin-nvim-lightbulb", + "plugin-nvim-lspconfig": "plugin-nvim-lspconfig", + "plugin-nvim-navbuddy": "plugin-nvim-navbuddy", + "plugin-nvim-navic": "plugin-nvim-navic", + "plugin-nvim-neoclip": "plugin-nvim-neoclip", + "plugin-nvim-nio": "plugin-nvim-nio", + "plugin-nvim-notify": "plugin-nvim-notify", + "plugin-nvim-session-manager": "plugin-nvim-session-manager", + "plugin-nvim-surround": "plugin-nvim-surround", + "plugin-nvim-tree-lua": "plugin-nvim-tree-lua", + "plugin-nvim-treesitter-context": "plugin-nvim-treesitter-context", + "plugin-nvim-ts-autotag": "plugin-nvim-ts-autotag", + "plugin-nvim-web-devicons": "plugin-nvim-web-devicons", + "plugin-obsidian-nvim": "plugin-obsidian-nvim", + "plugin-onedark": "plugin-onedark", + "plugin-orgmode-nvim": "plugin-orgmode-nvim", + "plugin-oxocarbon": "plugin-oxocarbon", + "plugin-plenary-nvim": "plugin-plenary-nvim", + "plugin-project-nvim": "plugin-project-nvim", + "plugin-registers": "plugin-registers", + "plugin-rose-pine": "plugin-rose-pine", + "plugin-rust-tools": "plugin-rust-tools", + "plugin-scrollbar-nvim": "plugin-scrollbar-nvim", + "plugin-smartcolumn": "plugin-smartcolumn", + "plugin-sqls-nvim": "plugin-sqls-nvim", + "plugin-tabular": "plugin-tabular", + "plugin-telescope": "plugin-telescope", + "plugin-todo-comments": "plugin-todo-comments", + "plugin-toggleterm-nvim": "plugin-toggleterm-nvim", + "plugin-tokyonight": "plugin-tokyonight", + "plugin-trouble": "plugin-trouble", + "plugin-vim-dirtytalk": "plugin-vim-dirtytalk", + "plugin-vim-illuminate": "plugin-vim-illuminate", + "plugin-vim-markdown": "plugin-vim-markdown", + "plugin-vim-repeat": "plugin-vim-repeat", + "plugin-vim-startify": "plugin-vim-startify", + "plugin-vim-vsnip": "plugin-vim-vsnip", + "plugin-which-key": "plugin-which-key", "rnix-lsp": "rnix-lsp", - "rose-pine": "rose-pine", - "rust-tools": "rust-tools", - "scrollbar-nvim": "scrollbar-nvim", - "smartcolumn": "smartcolumn", - "sqls-nvim": "sqls-nvim", "systems": "systems_2", - "tabular": "tabular", - "telescope": "telescope", "tidalcycles": "tidalcycles", - "todo-comments": "todo-comments", - "toggleterm-nvim": "toggleterm-nvim", - "tokyonight": "tokyonight", - "trouble": "trouble", - "vim-dirtytalk": "vim-dirtytalk", - "vim-illuminate": "vim-illuminate", - "vim-markdown": "vim-markdown", - "vim-repeat": "vim-repeat", - "vim-startify": "vim-startify", - "vim-vsnip": "vim-vsnip", - "which-key": "which-key", "zig": "zig" } }, - "rose-pine": { - "flake": false, - "locked": { - "lastModified": 1711769966, - "narHash": "sha256-GVYCkyFdVgye/8pEXPT8Y+4YyLmivgX/IHht/G1DdEA=", - "owner": "rose-pine", - "repo": "neovim", - "rev": "19055dfe90bfa46a1e5b0a706d13980bdffa2dee", - "type": "github" - }, - "original": { - "owner": "rose-pine", - "repo": "neovim", - "type": "github" - } - }, "rust-overlay": { "inputs": { "flake-utils": [ @@ -1647,70 +1902,6 @@ "type": "github" } }, - "rust-tools": { - "flake": false, - "locked": { - "lastModified": 1704259376, - "narHash": "sha256-kFane5ze7VDiOzF7jdmXkr50XQsNvdb+a9HQtybEVE0=", - "owner": "simrat39", - "repo": "rust-tools.nvim", - "rev": "676187908a1ce35ffcd727c654ed68d851299d3e", - "type": "github" - }, - "original": { - "owner": "simrat39", - "repo": "rust-tools.nvim", - "type": "github" - } - }, - "scrollbar-nvim": { - "flake": false, - "locked": { - "lastModified": 1684886154, - "narHash": "sha256-zLBexSxQCn9HPY04a9w/UCJP1F5ShI2X12I9xE9H0cM=", - "owner": "petertriho", - "repo": "nvim-scrollbar", - "rev": "35f99d559041c7c0eff3a41f9093581ceea534e8", - "type": "github" - }, - "original": { - "owner": "petertriho", - "repo": "nvim-scrollbar", - "type": "github" - } - }, - "smartcolumn": { - "flake": false, - "locked": { - "lastModified": 1710067624, - "narHash": "sha256-DHIeDNUF9n9s14GVeojIwc5QUPwJMYYl3gRvhvO/rdE=", - "owner": "m4xshen", - "repo": "smartcolumn.nvim", - "rev": "cefb17be095ad5526030a21bb2a80553cae09127", - "type": "github" - }, - "original": { - "owner": "m4xshen", - "repo": "smartcolumn.nvim", - "type": "github" - } - }, - "sqls-nvim": { - "flake": false, - "locked": { - "lastModified": 1684697500, - "narHash": "sha256-jKFut6NZAf/eIeIkY7/2EsjsIhvZQKCKAJzeQ6XSr0s=", - "owner": "nanotee", - "repo": "sqls.nvim", - "rev": "4b1274b5b44c48ce784aac23747192f5d9d26207", - "type": "github" - }, - "original": { - "owner": "nanotee", - "repo": "sqls.nvim", - "type": "github" - } - }, "superdirt-src": { "flake": false, "locked": { @@ -1773,38 +1964,6 @@ "type": "github" } }, - "tabular": { - "flake": false, - "locked": { - "lastModified": 1550598128, - "narHash": "sha256-irolBA/m3YIaezl+90h5G+xUOpad+3u44uJqDs4JCUs=", - "owner": "godlygeek", - "repo": "tabular", - "rev": "339091ac4dd1f17e225fe7d57b48aff55f99b23a", - "type": "github" - }, - "original": { - "owner": "godlygeek", - "repo": "tabular", - "type": "github" - } - }, - "telescope": { - "flake": false, - "locked": { - "lastModified": 1712065014, - "narHash": "sha256-8Bp1E9JY1MByjRCcON1HJLYRswLx63lmz20rGrJW7Wc=", - "owner": "nvim-telescope", - "repo": "telescope.nvim", - "rev": "4626aaa2bcfdacf55fd6d44b430e2df81b2403ff", - "type": "github" - }, - "original": { - "owner": "nvim-telescope", - "repo": "telescope.nvim", - "type": "github" - } - }, "tidal-src": { "flake": false, "locked": { @@ -1846,70 +2005,6 @@ "type": "github" } }, - "todo-comments": { - "flake": false, - "locked": { - "lastModified": 1711553769, - "narHash": "sha256-BJNU01iTRDNrPv48fgiJRS+ouaHkoqw2AYXKDRgDzfw=", - "owner": "folke", - "repo": "todo-comments.nvim", - "rev": "a7e39ae9e74f2c8c6dc4eea6d40c3971ae84752d", - "type": "github" - }, - "original": { - "owner": "folke", - "repo": "todo-comments.nvim", - "type": "github" - } - }, - "toggleterm-nvim": { - "flake": false, - "locked": { - "lastModified": 1707733615, - "narHash": "sha256-FJyDxQm2vs9R4WkqAbh6ryCvEABfrLSKRrAGo/qI5jM=", - "owner": "akinsho", - "repo": "toggleterm.nvim", - "rev": "193786e0371e3286d3bc9aa0079da1cd41beaa62", - "type": "github" - }, - "original": { - "owner": "akinsho", - "repo": "toggleterm.nvim", - "type": "github" - } - }, - "tokyonight": { - "flake": false, - "locked": { - "lastModified": 1711665767, - "narHash": "sha256-ItCmSUMMTe8iQeneIJLuWedVXsNgm+FXNtdrrdJ/1oE=", - "owner": "folke", - "repo": "tokyonight.nvim", - "rev": "9bf9ec53d5e87b025e2404069b71e7ebdc3a13e5", - "type": "github" - }, - "original": { - "owner": "folke", - "repo": "tokyonight.nvim", - "type": "github" - } - }, - "trouble": { - "flake": false, - "locked": { - "lastModified": 1711693365, - "narHash": "sha256-kIQ72fqAsiMF9jq0MzC6peaHJddYn5PRNXfYFHTQB5Q=", - "owner": "folke", - "repo": "trouble.nvim", - "rev": "b9cf677f20bb2faa2dacfa870b084e568dca9572", - "type": "github" - }, - "original": { - "owner": "folke", - "repo": "trouble.nvim", - "type": "github" - } - }, "utils": { "locked": { "lastModified": 1656928814, @@ -1943,86 +2038,6 @@ "type": "github" } }, - "vim-dirtytalk": { - "flake": false, - "locked": { - "lastModified": 1711553630, - "narHash": "sha256-1cLseaHfWgyAvzHcK93nl9sy66J/zvlnK7P4vnIthmY=", - "owner": "psliwka", - "repo": "vim-dirtytalk", - "rev": "d2929ffff8639b2b4b4bb7c2b6c04575c1322d2f", - "type": "github" - }, - "original": { - "owner": "psliwka", - "repo": "vim-dirtytalk", - "type": "github" - } - }, - "vim-illuminate": { - "flake": false, - "locked": { - "lastModified": 1707016059, - "narHash": "sha256-KNIu4cNyZddZSRS8KZ0U0T8uSSLJu8iqNLQN8e+Bv94=", - "owner": "RRethy", - "repo": "vim-illuminate", - "rev": "305bf07b919ac526deb5193280379e2f8b599926", - "type": "github" - }, - "original": { - "owner": "RRethy", - "repo": "vim-illuminate", - "type": "github" - } - }, - "vim-markdown": { - "flake": false, - "locked": { - "lastModified": 1709279705, - "narHash": "sha256-eKwWdyvMZ7FV3FvOtqWVD7pulXNnhbEEjHq7MYg1woU=", - "owner": "preservim", - "repo": "vim-markdown", - "rev": "a657e697376909c41475a686eeef7fc7a4972d94", - "type": "github" - }, - "original": { - "owner": "preservim", - "repo": "vim-markdown", - "type": "github" - } - }, - "vim-repeat": { - "flake": false, - "locked": { - "lastModified": 1611544268, - "narHash": "sha256-8rfZa3uKXB3TRCqaDHZ6DfzNbm7WaYnLvmTNzYtnKHg=", - "owner": "tpope", - "repo": "vim-repeat", - "rev": "24afe922e6a05891756ecf331f39a1f6743d3d5a", - "type": "github" - }, - "original": { - "owner": "tpope", - "repo": "vim-repeat", - "type": "github" - } - }, - "vim-startify": { - "flake": false, - "locked": { - "lastModified": 1695213983, - "narHash": "sha256-W5N/Dqxf9hSXEEJsrEkXInFwBXNBJe9Dzx9TVS12mPk=", - "owner": "mhinz", - "repo": "vim-startify", - "rev": "4e089dffdad46f3f5593f34362d530e8fe823dcf", - "type": "github" - }, - "original": { - "owner": "mhinz", - "repo": "vim-startify", - "type": "github" - } - }, "vim-tidal-src": { "flake": false, "locked": { @@ -2039,22 +2054,6 @@ "type": "github" } }, - "vim-vsnip": { - "flake": false, - "locked": { - "lastModified": 1704937299, - "narHash": "sha256-gvm6z4pgSULBVPukewRyjwxZ0vZgreQWbG/0kOB1QBo=", - "owner": "hrsh7th", - "repo": "vim-vsnip", - "rev": "02a8e79295c9733434aab4e0e2b8c4b7cea9f3a9", - "type": "github" - }, - "original": { - "owner": "hrsh7th", - "repo": "vim-vsnip", - "type": "github" - } - }, "vowel-src": { "flake": false, "locked": { @@ -2072,22 +2071,6 @@ "type": "github" } }, - "which-key": { - "flake": false, - "locked": { - "lastModified": 1697801635, - "narHash": "sha256-uvghPj/teWrRMm09Gh8iQ/LV2nYJw0lmoiZK6L4+1cY=", - "owner": "folke", - "repo": "which-key.nvim", - "rev": "4433e5ec9a507e5097571ed55c02ea9658fb268a", - "type": "github" - }, - "original": { - "owner": "folke", - "repo": "which-key.nvim", - "type": "github" - } - }, "zig": { "inputs": { "flake-compat": "flake-compat", diff --git a/flake.nix b/flake.nix index b505b97..9ba4f69 100644 --- a/flake.nix +++ b/flake.nix @@ -22,7 +22,7 @@ flake = { lib = { - inherit (import ./lib/stdlib-extended.nix nixpkgs.lib) nvim; + inherit (import ./lib/stdlib-extended.nix nixpkgs.lib inputs) nvim; inherit (import ./configuration.nix inputs) neovimConfiguration; }; @@ -68,129 +68,6 @@ # TODO: get zig from the zig overlay instead of nixpkgs zig.url = "github:mitchellh/zig-overlay"; - # LSP plugins - nvim-lspconfig = { - # url = "github:neovim/nvim-lspconfig?ref=v0.1.3"; - # Use master for nil_ls - url = "github:neovim/nvim-lspconfig"; - flake = false; - }; - - lspsaga = { - url = "github:tami5/lspsaga.nvim"; - flake = false; - }; - - lspkind = { - url = "github:onsails/lspkind-nvim"; - flake = false; - }; - - trouble = { - url = "github:folke/trouble.nvim"; - flake = false; - }; - - nvim-treesitter-context = { - url = "github:nvim-treesitter/nvim-treesitter-context"; - flake = false; - }; - - nvim-lightbulb = { - url = "github:kosayoda/nvim-lightbulb"; - flake = false; - }; - - nvim-code-action-menu = { - url = "github:weilbith/nvim-code-action-menu"; - flake = false; - }; - - lsp-signature = { - url = "github:ray-x/lsp_signature.nvim"; - flake = false; - }; - - lsp-lines = { - url = "sourcehut:~whynothugo/lsp_lines.nvim"; - flake = false; - }; - - none-ls = { - # https://github.com/nvimtools/none-ls.nvim/issues/58 - url = "github:nvimtools/none-ls.nvim/bb680d752cec37949faca7a1f509e2fe67ab418a"; - flake = false; - }; - - nvim-docs-view = { - url = "github:amrbashir/nvim-docs-view"; - flake = false; - }; - - # language support - sqls-nvim = { - url = "github:nanotee/sqls.nvim"; - flake = false; - }; - - rust-tools = { - url = "github:simrat39/rust-tools.nvim"; - flake = false; - }; - - flutter-tools = { - url = "github:akinsho/flutter-tools.nvim"; - flake = false; - }; - - neodev-nvim = { - url = "github:folke/neodev.nvim"; - flake = false; - }; - - elixir-ls = { - url = "github:elixir-lsp/elixir-ls"; - flake = false; - }; - - elixir-tools = { - url = "github:elixir-tools/elixir-tools.nvim"; - flake = false; - }; - - glow-nvim = { - url = "github:ellisonleao/glow.nvim"; - flake = false; - }; - - image-nvim = { - url = "github:3rd/image.nvim"; - flake = false; - }; - - # Tidal cycles - tidalcycles = { - url = "github:mitchmindtree/tidalcycles.nix"; - inputs.vim-tidal-src.url = "github:tidalcycles/vim-tidal"; - }; - - # Copying/Registers - registers = { - url = "github:tversteeg/registers.nvim"; - flake = false; - }; - - nvim-neoclip = { - url = "github:AckslD/nvim-neoclip.lua"; - flake = false; - }; - - # Telescope - telescope = { - url = "github:nvim-telescope/telescope.nvim"; - flake = false; - }; - # Langauge server (use master instead of nixpkgs) rnix-lsp.url = "github:nix-community/rnix-lsp"; nil = { @@ -199,393 +76,521 @@ inputs.flake-utils.follows = "flake-utils"; }; + ### Plugins + # Tidal cycles + tidalcycles = { + url = "github:mitchmindtree/tidalcycles.nix"; + inputs.vim-tidal-src.url = "github:tidalcycles/vim-tidal"; + }; + + # LSP plugins + plugin-nvim-lspconfig = { + # url = "github:neovim/nvim-lspconfig?ref=v0.1.3"; + # Use master for nil_ls + url = "github:neovim/nvim-lspconfig"; + flake = false; + }; + + plugin-lspsaga = { + url = "github:tami5/lspsaga.nvim"; + flake = false; + }; + + plugin-lspkind = { + url = "github:onsails/lspkind-nvim"; + flake = false; + }; + + plugin-trouble = { + url = "github:folke/trouble.nvim"; + flake = false; + }; + + plugin-nvim-treesitter-context = { + url = "github:nvim-treesitter/nvim-treesitter-context"; + flake = false; + }; + + plugin-nvim-lightbulb = { + url = "github:kosayoda/nvim-lightbulb"; + flake = false; + }; + + plugin-nvim-code-action-menu = { + url = "github:weilbith/nvim-code-action-menu"; + flake = false; + }; + + plugin-lsp-signature = { + url = "github:ray-x/lsp_signature.nvim"; + flake = false; + }; + + plugin-lsp-lines = { + url = "sourcehut:~whynothugo/lsp_lines.nvim"; + flake = false; + }; + + plugin-none-ls = { + # https://github.com/nvimtools/none-ls.nvim/issues/58 + url = "github:nvimtools/none-ls.nvim/bb680d752cec37949faca7a1f509e2fe67ab418a"; + flake = false; + }; + + plugin-nvim-docs-view = { + url = "github:amrbashir/nvim-docs-view"; + flake = false; + }; + + # language support + plugin-sqls-nvim = { + url = "github:nanotee/sqls.nvim"; + flake = false; + }; + + plugin-rust-tools = { + url = "github:simrat39/rust-tools.nvim"; + flake = false; + }; + + plugin-flutter-tools = { + url = "github:akinsho/flutter-tools.nvim"; + flake = false; + }; + + plugin-neodev-nvim = { + url = "github:folke/neodev.nvim"; + flake = false; + }; + + plugin-elixir-ls = { + url = "github:elixir-lsp/elixir-ls"; + flake = false; + }; + + plugin-elixir-tools = { + url = "github:elixir-tools/elixir-tools.nvim"; + flake = false; + }; + + plugin-glow-nvim = { + url = "github:ellisonleao/glow.nvim"; + flake = false; + }; + + plugin-image-nvim = { + url = "github:3rd/image.nvim"; + flake = false; + }; + + # Copying/Registers + plugin-registers = { + url = "github:tversteeg/registers.nvim"; + flake = false; + }; + + plugin-nvim-neoclip = { + url = "github:AckslD/nvim-neoclip.lua"; + flake = false; + }; + + # Telescope + plugin-telescope = { + url = "github:nvim-telescope/telescope.nvim"; + flake = false; + }; + # Debuggers - nvim-dap = { + plugin-nvim-dap = { url = "github:mfussenegger/nvim-dap"; flake = false; }; - nvim-dap-ui = { + plugin-nvim-dap-ui = { url = "github:rcarriga/nvim-dap-ui"; flake = false; }; # Filetrees - nvim-tree-lua = { + plugin-nvim-tree-lua = { url = "github:nvim-tree/nvim-tree.lua"; flake = false; }; # Tablines - nvim-bufferline-lua = { + plugin-nvim-bufferline-lua = { url = "github:akinsho/nvim-bufferline.lua"; flake = false; }; # Statuslines - lualine = { + plugin-lualine = { url = "github:hoob3rt/lualine.nvim"; flake = false; }; - nvim-cmp = { + plugin-nvim-cmp = { url = "github:hrsh7th/nvim-cmp"; flake = false; }; - cmp-buffer = { + + plugin-cmp-buffer = { url = "github:hrsh7th/cmp-buffer"; flake = false; }; - cmp-nvim-lsp = { + + plugin-cmp-nvim-lsp = { url = "github:hrsh7th/cmp-nvim-lsp"; flake = false; }; - cmp-vsnip = { + + plugin-cmp-vsnip = { url = "github:hrsh7th/cmp-vsnip"; flake = false; }; - cmp-path = { + + plugin-cmp-path = { url = "github:hrsh7th/cmp-path"; flake = false; }; - cmp-treesitter = { + + plugin-cmp-treesitter = { url = "github:ray-x/cmp-treesitter"; flake = false; }; # snippets - vim-vsnip = { + plugin-vim-vsnip = { url = "github:hrsh7th/vim-vsnip"; flake = false; }; # Presence - neocord = { + plugin-neocord = { url = "github:IogaMaster/neocord"; flake = false; # uses flake-utils, avoid the flake }; # Autopairs - nvim-autopairs = { + plugin-nvim-autopairs = { url = "github:windwp/nvim-autopairs"; flake = false; }; - nvim-ts-autotag = { + + plugin-nvim-ts-autotag = { url = "github:windwp/nvim-ts-autotag"; flake = false; }; # Commenting - kommentary = { - url = "github:b3nj5m1n/kommentary"; - flake = false; - }; - - comment-nvim = { + plugin-comment-nvim = { url = "github:numToStr/Comment.nvim"; flake = false; }; - todo-comments = { + plugin-todo-comments = { url = "github:folke/todo-comments.nvim"; flake = false; }; # Buffer tools - bufdelete-nvim = { + plugin-bufdelete-nvim = { url = "github:famiu/bufdelete.nvim"; flake = false; }; # Dashboard Utilities - dashboard-nvim = { + plugin-dashboard-nvim = { url = "github:glepnir/dashboard-nvim"; flake = false; }; - alpha-nvim = { + plugin-alpha-nvim = { url = "github:goolord/alpha-nvim"; flake = false; }; - vim-startify = { + plugin-vim-startify = { url = "github:mhinz/vim-startify"; flake = false; }; # Themes - tokyonight = { + plugin-tokyonight = { url = "github:folke/tokyonight.nvim"; flake = false; }; - onedark = { + plugin-onedark = { url = "github:navarasu/onedark.nvim"; flake = false; }; - catppuccin = { + plugin-catppuccin = { url = "github:catppuccin/nvim"; flake = false; }; - dracula = { + plugin-dracula = { url = "github:Mofiqul/dracula.nvim"; flake = false; }; - oxocarbon = { + plugin-oxocarbon = { url = "github:glyh/oxocarbon.nvim/lualine-support"; flake = false; }; - gruvbox = { + plugin-gruvbox = { url = "github:ellisonleao/gruvbox.nvim"; flake = false; }; - rose-pine = { + plugin-rose-pine = { url = "github:rose-pine/neovim"; flake = false; }; # Rust crates - crates-nvim = { + plugin-crates-nvim = { url = "github:Saecki/crates.nvim"; flake = false; }; # Project Management - project-nvim = { + plugin-project-nvim = { url = "github:ahmedkhalf/project.nvim"; flake = false; }; # Visuals - nvim-cursorline = { + plugin-nvim-cursorline = { url = "github:yamatsum/nvim-cursorline"; flake = false; }; - scrollbar-nvim = { + plugin-scrollbar-nvim = { url = "github:petertriho/nvim-scrollbar"; flake = false; }; - cinnamon-nvim = { + plugin-cinnamon-nvim = { url = "github:declancm/cinnamon.nvim"; flake = false; }; - cellular-automaton = { + plugin-cellular-automaton = { url = "github:Eandrju/cellular-automaton.nvim"; flake = false; }; - indent-blankline = { + plugin-indent-blankline = { url = "github:lukas-reineke/indent-blankline.nvim"; flake = false; }; - nvim-web-devicons = { + + plugin-nvim-web-devicons = { url = "github:nvim-tree/nvim-web-devicons"; flake = false; }; - gitsigns-nvim = { + + plugin-gitsigns-nvim = { url = "github:lewis6991/gitsigns.nvim"; flake = false; }; - fidget-nvim = { + plugin-fidget-nvim = { url = "github:j-hui/fidget.nvim"; flake = false; }; - highlight-undo = { + plugin-highlight-undo = { url = "github:tzachar/highlight-undo.nvim"; flake = false; }; # Minimap - minimap-vim = { + plugin-minimap-vim = { url = "github:wfxr/minimap.vim"; flake = false; }; - codewindow-nvim = { + plugin-codewindow-nvim = { url = "github:gorbit99/codewindow.nvim"; flake = false; }; # Notifications - nvim-notify = { + plugin-nvim-notify = { url = "github:rcarriga/nvim-notify"; flake = false; }; # Utilities - ccc = { + plugin-ccc = { url = "github:uga-rosa/ccc.nvim"; flake = false; }; - diffview-nvim = { + plugin-diffview-nvim = { url = "github:sindrets/diffview.nvim"; flake = false; }; - icon-picker-nvim = { + plugin-icon-picker-nvim = { url = "github:ziontee113/icon-picker.nvim"; flake = false; }; - which-key = { + plugin-which-key = { url = "github:folke/which-key.nvim"; flake = false; }; - cheatsheet-nvim = { + plugin-cheatsheet-nvim = { url = "github:sudormrfbin/cheatsheet.nvim"; flake = false; }; - gesture-nvim = { + plugin-gesture-nvim = { url = "github:notomo/gesture.nvim"; flake = false; }; - hop-nvim = { + plugin-hop-nvim = { url = "github:phaazon/hop.nvim"; flake = false; }; - leap-nvim = { + plugin-leap-nvim = { url = "github:ggandor/leap.nvim"; flake = false; }; - smartcolumn = { + plugin-smartcolumn = { url = "github:m4xshen/smartcolumn.nvim"; flake = false; }; - nvim-surround = { + plugin-nvim-surround = { url = "github:kylechui/nvim-surround"; flake = false; }; # Note-taking - obsidian-nvim = { + plugin-obsidian-nvim = { url = "github:epwalsh/obsidian.nvim"; flake = false; }; - orgmode-nvim = { + plugin-orgmode-nvim = { url = "github:nvim-orgmode/orgmode"; flake = false; }; - mind-nvim = { + plugin-mind-nvim = { url = "github:phaazon/mind.nvim"; flake = false; }; # Spellchecking - vim-dirtytalk = { + plugin-vim-dirtytalk = { url = "github:psliwka/vim-dirtytalk"; flake = false; }; # Terminal - toggleterm-nvim = { + plugin-toggleterm-nvim = { url = "github:akinsho/toggleterm.nvim"; flake = false; }; # UI - nvim-navbuddy = { + plugin-nvim-navbuddy = { url = "github:SmiteshP/nvim-navbuddy"; flake = false; }; - nvim-navic = { + plugin-nvim-navic = { url = "github:SmiteshP/nvim-navic"; flake = false; }; - noice-nvim = { + plugin-noice-nvim = { url = "github:folke/noice.nvim"; flake = false; }; - modes-nvim = { + plugin-modes-nvim = { url = "github:mvllow/modes.nvim"; flake = false; }; - nvim-colorizer-lua = { + plugin-nvim-colorizer-lua = { url = "github:NvChad/nvim-colorizer.lua"; flake = false; }; - vim-illuminate = { + plugin-vim-illuminate = { url = "github:RRethy/vim-illuminate"; flake = false; }; # Assistant - copilot-lua = { + plugin-copilot-lua = { url = "github:zbirenbaum/copilot.lua"; flake = false; }; - copilot-cmp = { + plugin-copilot-cmp = { url = "github:zbirenbaum/copilot-cmp"; flake = false; }; # Session management - nvim-session-manager = { + plugin-nvim-session-manager = { url = "github:Shatur/neovim-session-manager"; flake = false; }; # Dependencies - plenary-nvim = { + plugin-plenary-nvim = { # (required by crates-nvim) url = "github:nvim-lua/plenary.nvim"; flake = false; }; - dressing-nvim = { + plugin-dressing-nvim = { # (required by icon-picker-nvim) url = "github:stevearc/dressing.nvim"; flake = false; }; - vim-markdown = { + plugin-vim-markdown = { # (required by obsidian-nvim) url = "github:preservim/vim-markdown"; flake = false; }; - tabular = { + plugin-tabular = { # (required by vim-markdown) url = "github:godlygeek/tabular"; flake = false; }; - nui-nvim = { + plugin-nui-nvim = { # (required by noice.nvim) url = "github:MunifTanjim/nui.nvim"; flake = false; }; - vim-repeat = { + plugin-vim-repeat = { + # (required by leap.nvim) url = "github:tpope/vim-repeat"; flake = false; }; - nvim-nio = { + plugin-nvim-nio = { # (required nvim-dap-ui) url = "github:nvim-neotest/nvim-nio"; flake = false; diff --git a/flake/modules/home-manager.nix b/flake/modules/home-manager.nix index 7da3e2a..5f4723a 100644 --- a/flake/modules/home-manager.nix +++ b/flake/modules/home-manager.nix @@ -1,15 +1,19 @@ # Home Manager module packages: inputs: { - pkgs, config, + pkgs, lib ? pkgs.lib, - self, ... -}: -with lib; let +}: let + inherit (lib) maintainers; + inherit (lib.modules) mkIf; + inherit (lib.options) mkOption mkEnableOption literalExpression; + inherit (lib.types) attrsOf anything package; + cfg = config.programs.neovim-flake; inherit (import ../../configuration.nix inputs) neovimConfiguration; - set = neovimConfiguration { + + builtPackage = neovimConfiguration { inherit pkgs; modules = [cfg.settings]; }; @@ -17,11 +21,21 @@ in { meta.maintainers = with maintainers; [NotAShelf]; options.programs.neovim-flake = { - enable = mkEnableOption "A NeoVim IDE with a focus on configurability and extensibility."; + enable = mkEnableOption "neovim-flake, the extensible neovim-wrapper"; + + builtPackage = mkOption { + type = package; + default = builtPackage; + internal = true; + description = '' + The built neovim-flake package, wrapped with the user's configuration. + ''; + }; settings = mkOption { - type = types.attrsOf types.anything; + type = attrsOf anything; default = {}; + description = "Attribute set of neovim-flake preferences."; example = literalExpression '' { vim.viAlias = false; @@ -39,11 +53,10 @@ in { }; } ''; - description = "Attribute set of neoflake preferences."; }; }; config = mkIf cfg.enable { - home.packages = [set.neovim]; + home.packages = [builtPackage]; }; } diff --git a/flake/modules/nixos.nix b/flake/modules/nixos.nix new file mode 100644 index 0000000..5a7d769 --- /dev/null +++ b/flake/modules/nixos.nix @@ -0,0 +1,62 @@ +# Home Manager module +packages: inputs: { + config, + pkgs, + lib ? pkgs.lib, + ... +}: let + inherit (lib) maintainers; + inherit (lib.modules) mkIf; + inherit (lib.options) mkOption mkEnableOption literalExpression; + inherit (lib.types) attrsOf package anything; + + cfg = config.programs.neovim-flake; + inherit (import ../../configuration.nix inputs) neovimConfiguration; + + builtPackage = neovimConfiguration { + inherit pkgs; + modules = [cfg.settings]; + }; +in { + meta.maintainers = with maintainers; [NotAShelf]; + + options.programs.neovim-flake = { + enable = mkEnableOption "neovim-flake, the extensible neovim-wrapper"; + + builtPackage = mkOption { + type = package; + default = builtPackage; + internal = true; + description = '' + The built neovim-flake package, wrapped with the user's configuration. + ''; + }; + + settings = mkOption { + type = attrsOf anything; + default = {}; + description = "Attribute set of neovim-flake preferences."; + example = literalExpression '' + { + vim.viAlias = false; + vim.vimAlias = true; + vim.lsp = { + enable = true; + formatOnSave = true; + lightbulb.enable = true; + lspsaga.enable = false; + nvimCodeActionMenu.enable = true; + trouble.enable = true; + lspSignature.enable = true; + rust.enable = false; + nix = true; + }; + } + ''; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [builtPackage]; + }; +} diff --git a/flake/packages.nix b/flake/packages.nix index bcf11e9..dec0614 100644 --- a/flake/packages.nix +++ b/flake/packages.nix @@ -5,10 +5,7 @@ pkgs, ... }: let - docs = import ../docs { - inherit pkgs; - nmdSrc = inputs.nmd; - }; + docs = import ../docs {inherit pkgs inputs;}; in { packages = { diff --git a/lib/binds.nix b/lib/binds.nix index 34d7a7c..d42a414 100644 --- a/lib/binds.nix +++ b/lib/binds.nix @@ -66,7 +66,7 @@ mkSetLuaBinding = binding: action: mkLuaBinding binding.value action binding.description; - pushDownDefault = attr: mapAttrs (_name: value: mkDefault value) attr; + pushDownDefault = attr: mapAttrs (_: value: mkDefault value) attr; }; in binds diff --git a/lib/config.nix b/lib/config.nix new file mode 100644 index 0000000..a2b8970 --- /dev/null +++ b/lib/config.nix @@ -0,0 +1,11 @@ +{lib}: let + inherit (lib.options) mkOption; + inherit (lib.types) bool; +in { + mkBool = value: description: + mkOption { + type = bool; + default = value; + inherit description; + }; +} diff --git a/lib/dag.nix b/lib/dag.nix index ba4d81c..39bcc0c 100644 --- a/lib/dag.nix +++ b/lib/dag.nix @@ -107,4 +107,14 @@ in { entryAfter = entryBetween []; entryBefore = before: entryBetween before []; + + mkLuarcSection = section: '' + -- SECTION: ${section.name} + ${section.data} + ''; + + mkVimrcSection = section: '' + " SECTION: ${section.name} + ${section.data} + ''; } diff --git a/lib/default.nix b/lib/default.nix index 94db90b..693aff9 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,6 +1,11 @@ -{lib}: { - types = import ./types {inherit lib;}; +{ + inputs, + lib, + ... +}: { + types = import ./types {inherit inputs lib;}; + config = import ./config.nix {inherit lib;}; binds = import ./binds.nix {inherit lib;}; dag = import ./dag.nix {inherit lib;}; languages = import ./languages.nix {inherit lib;}; diff --git a/lib/stdlib-extended.nix b/lib/stdlib-extended.nix index ff7b7f6..2e05650 100644 --- a/lib/stdlib-extended.nix +++ b/lib/stdlib-extended.nix @@ -1,75 +1,21 @@ -# From home-manager: https://github.com/nix-community/home-manager/blob/master/modules/lib/stdlib-extended.nix -# Just a convenience function that returns the given Nixpkgs standard -# library extended with the HM library. -nixpkgsLib: let - mkNvimLib = import ./.; -in - nixpkgsLib.extend (self: super: rec { - nvim = mkNvimLib {lib = self;}; +# Convenience function that returns the given Nixpkgs standard library +# extended with our functions using `lib.extend`. +nixpkgsLib: inputs: +nixpkgsLib.extend (self: super: { + # WARNING: New functions should not be added here, but to files + # imported by `./default.nix` under their own categories. If your + # function does not fit to any of the existing categories, create + # a new file and import it in `./default.nix.` - mkLuaBinding = key: action: desc: - self.mkIf (key != null) { - "${key}" = { - inherit action desc; - lua = true; - silent = true; - }; - }; + # Makes our custom functions available under `lib.nvim` where stdlib-extended.nix is imported + # with the appropriate arguments. For end-users, a `lib` output will be accessible from the flake. + # E.g. for an input called `neovim-flake`, `inputs.neovim-flake.lib.nvim` will return the set + # below. + nvim = import ./. { + inherit inputs; + lib = self; + }; - mkExprBinding = key: action: desc: - self.mkIf (key != null) { - "${key}" = { - inherit action desc; - lua = true; - silent = true; - expr = true; - }; - }; - - mkBinding = key: action: desc: - self.mkIf (key != null) { - "${key}" = { - inherit action desc; - silent = true; - }; - }; - - mkMappingOption = description: default: - self.mkOption { - type = self.types.nullOr self.types.str; - inherit default description; - }; - - # Utility function that takes two attrsets: - # { someKey = "some_value" } and - # { someKey = { description = "Some Description"; }; } - # and merges them into - # { someKey = { value = "some_value"; description = "Some Description"; }; } - addDescriptionsToMappings = actualMappings: mappingDefinitions: - self.attrsets.mapAttrs (name: value: let - isNested = self.isAttrs value; - returnedValue = - if isNested - then addDescriptionsToMappings actualMappings."${name}" mappingDefinitions."${name}" - else { - value = value; - description = mappingDefinitions."${name}".description; - }; - in - returnedValue) - actualMappings; - - mkSetBinding = binding: action: - mkBinding binding.value action binding.description; - - mkSetExprBinding = binding: action: - mkExprBinding binding.value action binding.description; - - mkSetLuaBinding = binding: action: - mkLuaBinding binding.value action binding.description; - - pushDownDefault = attr: self.mapAttrs (name: value: self.mkDefault value) attr; - - # For forward compatibility. - literalExpression = super.literalExpression or super.literalExample; - }) + # For forward compatibility. + literalExpression = super.literalExpression or super.literalExample; +}) diff --git a/lib/types/dag.nix b/lib/types/dag.nix index 439c09d..a42ed51 100644 --- a/lib/types/dag.nix +++ b/lib/types/dag.nix @@ -1,5 +1,5 @@ # From home-manager: https://github.com/nix-community/home-manager/blob/master/modules/lib/types-dag.nix -# Used for ordering config text. +# Used for ordering configuration text. {lib}: let inherit (lib) @@ -59,8 +59,8 @@ in rec { name = "dagOf"; description = "DAG of ${elemType.description}"; inherit (attrEquivalent) check merge emptyValue; + inherit (elemType) getSubModules; getSubOptions = prefix: elemType.getSubOptions (prefix ++ [""]); - getSubModules = elemType.getSubModules; substSubModules = m: dagOf (elemType.substSubModules m); functor = (defaultFunctor name) // {wrapped = elemType;}; nestedTypes.elemType = elemType; diff --git a/lib/types/default.nix b/lib/types/default.nix index 89ce1ba..d00be95 100644 --- a/lib/types/default.nix +++ b/lib/types/default.nix @@ -1,6 +1,10 @@ -{lib}: let +{ + inputs, + lib, + ... +}: let typesDag = import ./dag.nix {inherit lib;}; - typesPlugin = import ./plugins.nix {inherit lib;}; + typesPlugin = import ./plugins.nix {inherit inputs lib;}; typesLanguage = import ./languages.nix {inherit lib;}; in { inherit (typesDag) dagOf; diff --git a/lib/types/plugins.nix b/lib/types/plugins.nix index f6eceaa..1ac74a6 100644 --- a/lib/types/plugins.nix +++ b/lib/types/plugins.nix @@ -1,139 +1,58 @@ -{lib}: -with lib; let - # Plugin must be same as input name from flake.nix - availablePlugins = [ - # TODO: sort by category - "nvim-treesitter-context" - "gitsigns-nvim" - "plenary-nvim" - "nvim-lspconfig" - "nvim-treesitter" - "lspsaga" - "lspkind" - "nvim-lightbulb" - "lsp-signature" - "nvim-tree-lua" - "nvim-bufferline-lua" - "lualine" - "nvim-autopairs" - "nvim-ts-autotag" - "nvim-web-devicons" - "tokyonight" - "bufdelete-nvim" - "nvim-cmp" - "cmp-nvim-lsp" - "cmp-buffer" - "cmp-vsnip" - "cmp-path" - "cmp-treesitter" - "crates-nvim" - "vim-vsnip" - "nvim-code-action-menu" - "trouble" - "none-ls" - "which-key" - "indent-blankline" - "nvim-cursorline" - "sqls-nvim" - "glow-nvim" - "telescope" - "rust-tools" - "onedark" - "catppuccin" - "dracula" - "oxocarbon" - "gruvbox" - "rose-pine" - "minimap-vim" - "dashboard-nvim" - "alpha-nvim" - "scrollbar-nvim" - "codewindow-nvim" - "nvim-notify" - "cinnamon-nvim" - "cheatsheet-nvim" - "ccc" - "cellular-automaton" - "neocord" - "icon-picker-nvim" - "dressing-nvim" - "orgmode-nvim" - "obsidian-nvim" - "vim-markdown" - "tabular" - "toggleterm-nvim" - "noice-nvim" - "nui-nvim" - "copilot-lua" - "tabnine-nvim" - "nvim-session-manager" - "gesture-nvim" - "comment-nvim" - "kommentary" - "mind-nvim" - "fidget-nvim" - "diffview-nvim" - "todo-comments" - "flutter-tools" - "flutter-tools-patched" - "hop-nvim" - "leap-nvim" - "modes-nvim" - "vim-repeat" - "smartcolumn" - "project-nvim" - "neodev-nvim" - "elixir-ls" - "elixir-tools" - "nvim-colorizer-lua" - "vim-illuminate" - "nvim-surround" - "nvim-dap" - "nvim-dap-ui" - "nvim-navic" - "nvim-navbuddy" - "copilot-cmp" - "lsp-lines" - "vim-dirtytalk" - "highlight-undo" - "nvim-docs-view" - "image-nvim" - "nvim-nio" - ]; +{ + inputs, + lib, + ... +}: let + inherit (lib.options) mkOption; + inherit (lib.attrsets) attrNames mapAttrs' filterAttrs nameValuePair; + inherit (lib.strings) hasPrefix removePrefix isString; + inherit (lib.types) submodule either package enum str lines attrsOf anything listOf nullOr; + + # Get the names of all flake inputs that start with the given prefix. + fromInputs = { + inputs, + prefix, + }: + mapAttrs' (n: v: nameValuePair (removePrefix prefix n) {src = v;}) (filterAttrs (n: _: hasPrefix prefix n) inputs); + + # Get the names of all flake inputs that start with the given prefix. + pluginInputNames = attrNames (fromInputs { + inherit inputs; + prefix = "plugin-"; + }); + # You can either use the name of the plugin or a package. - pluginType = with types; - nullOr ( - either - package - (enum availablePlugins) - ); + pluginType = nullOr ( + either + package + (enum (pluginInputNames ++ ["nvim-treesitter" "flutter-tools-patched" "vim-repeat"])) + ); - pluginsType = types.listOf pluginType; + pluginsType = listOf pluginType; - extraPluginType = with types; - submodule { - options = { - package = mkOption { - type = pluginType; - description = "Plugin Package."; - }; + extraPluginType = submodule { + options = { + package = mkOption { + type = pluginType; + description = "Plugin Package."; + }; - after = mkOption { - type = listOf str; - default = []; - description = "Setup this plugin after the following ones."; - }; + after = mkOption { + type = listOf str; + default = []; + description = "Setup this plugin after the following ones."; + }; - setup = mkOption { - type = lines; - default = ""; - description = "Lua code to run during setup."; - example = "require('aerial').setup {}"; - }; + setup = mkOption { + type = lines; + default = ""; + description = "Lua code to run during setup."; + example = "require('aerial').setup {}"; }; }; + }; in { - inherit extraPluginType; + inherit extraPluginType fromInputs; pluginsOpt = { description, @@ -156,23 +75,25 @@ in { lib.mergeOneOption val defs; }; - # opts is a attrset of options, example: - # ``` - # mkPluginSetupOption "telescope" { - # file_ignore_patterns = mkOption { - # description = "..."; - # type = types.listOf types.str; - # default = []; - # }; - # layout_config.horizontal = mkOption {...}; - # } - # ``` + /* + opts is a attrset of options, example: + ``` + mkPluginSetupOption "telescope" { + file_ignore_patterns = mkOption { + description = "..."; + type = types.listOf types.str; + default = []; + }; + layout_config.horizontal = mkOption {...}; + } + ``` + */ mkPluginSetupOption = pluginName: opts: mkOption { description = "Option table to pass into the setup function of " + pluginName; default = {}; - type = types.submodule { - freeformType = with types; attrsOf anything; + type = submodule { + freeformType = attrsOf anything; options = opts; }; }; diff --git a/modules/basic/config.nix b/modules/basic/config.nix deleted file mode 100644 index a74a6a9..0000000 --- a/modules/basic/config.nix +++ /dev/null @@ -1,188 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (builtins) concatStringsSep; - inherit (lib.modules) mkIf; - inherit (lib.lists) optionals; - inherit (lib.strings) optionalString; - inherit (lib.nvim.dag) entryAfter; - - cfg = config.vim; -in { - config = { - vim.startPlugins = ["plenary-nvim"] ++ optionals (cfg.spellChecking.enableProgrammingWordList) ["vim-dirtytalk"]; - - vim.maps.normal = - mkIf cfg.disableArrows { - "" = { - action = ""; - - noremap = false; - }; - "" = { - action = ""; - - noremap = false; - }; - "" = { - action = ""; - noremap = false; - }; - "" = { - action = ""; - noremap = false; - }; - } - // mkIf cfg.mapLeaderSpace { - "" = { - action = ""; - }; - }; - - vim.maps.insert = mkIf cfg.disableArrows { - "" = { - action = ""; - noremap = false; - }; - "" = { - action = ""; - noremap = false; - }; - "" = { - action = ""; - noremap = false; - }; - "" = { - action = ""; - noremap = false; - }; - }; - - vim.configRC.basic = entryAfter ["globalsScript"] '' - " Settings that are set for everything - set encoding=utf-8 - set mouse=${cfg.mouseSupport} - set tabstop=${toString cfg.tabWidth} - set shiftwidth=${toString cfg.tabWidth} - set softtabstop=${toString cfg.tabWidth} - set expandtab - set cmdheight=${toString cfg.cmdHeight} - set updatetime=${toString cfg.updateTime} - set shortmess+=c - set tm=${toString cfg.mapTimeout} - set hidden - set cursorlineopt=${toString cfg.cursorlineOpt} - set scrolloff=${toString cfg.scrollOffset} - - ${optionalString cfg.debugMode.enable '' - " Debug mode settings - set verbose=${toString cfg.debugMode.level} - set verbosefile=${cfg.debugMode.logFile} - ''} - - ${optionalString cfg.splitBelow '' - set splitbelow - ''} - - ${optionalString cfg.splitRight '' - set splitright - ''} - - ${optionalString cfg.showSignColumn '' - set signcolumn=yes - ''} - - ${optionalString cfg.autoIndent '' - set autoindent - ''} - - ${optionalString cfg.preventJunkFiles '' - set noswapfile - set nobackup - set nowritebackup - ''} - - ${optionalString (cfg.bell == "none") '' - set noerrorbells - set novisualbell - ''} - - ${optionalString (cfg.bell == "on") '' - set novisualbell - ''} - - ${optionalString (cfg.bell == "visual") '' - set noerrorbells - ''} - - ${optionalString (cfg.lineNumberMode == "relative") '' - set relativenumber - ''} - - ${optionalString (cfg.lineNumberMode == "number") '' - set number - ''} - - ${optionalString (cfg.lineNumberMode == "relNumber") '' - set number relativenumber - ''} - - ${optionalString cfg.useSystemClipboard '' - set clipboard+=unnamedplus - ''} - - ${optionalString cfg.mapLeaderSpace '' - let mapleader=" " - let maplocalleader=" " - ''} - - ${optionalString cfg.syntaxHighlighting '' - syntax on - ''} - - ${optionalString (!cfg.wordWrap) '' - set nowrap - ''} - - ${optionalString cfg.hideSearchHighlight '' - set nohlsearch - set incsearch - ''} - - ${optionalString cfg.colourTerm '' - set termguicolors - set t_Co=256 - ''} - - ${optionalString (!cfg.enableEditorconfig) '' - let g:editorconfig = v:false - ''} - - ${optionalString cfg.spellChecking.enable '' - set spell - set spelllang=${concatStringsSep "," cfg.spellChecking.languages}${optionalString cfg.spellChecking.enableProgrammingWordList ",programming"} - ''} - - ${optionalString (cfg.leaderKey != null) '' - let mapleader = "${toString cfg.leaderKey}" - ''} - - ${optionalString (cfg.searchCase == "ignore") '' - set nosmartcase - set ignorecase - ''} - - ${optionalString (cfg.searchCase == "smart") '' - set smartcase - set ignorecase - ''} - - ${optionalString (cfg.searchCase == "sensitive") '' - set nosmartcase - set noignorecase - ''} - ''; - }; -} diff --git a/modules/core/build/config.nix b/modules/core/build/config.nix new file mode 100644 index 0000000..8666784 --- /dev/null +++ b/modules/core/build/config.nix @@ -0,0 +1,304 @@ +{ + config, + lib, + ... +}: let + inherit (builtins) map mapAttrs toJSON filter; + inherit (lib.options) mkOption; + inherit (lib.attrsets) filterAttrs getAttrs attrValues attrNames; + inherit (lib.strings) optionalString isString concatStringsSep; + inherit (lib.misc) mapAttrsFlatten; + inherit (lib.trivial) showWarnings; + inherit (lib.types) bool str oneOf attrsOf nullOr attrs submodule lines; + inherit (lib.nvim.types) dagOf; + inherit (lib.generators) mkLuaInline; + inherit (lib.nvim.dag) entryAnywhere entryAfter topoSort mkLuarcSection mkVimrcSection; + inherit (lib.nvim.lua) toLuaObject; + inherit (lib.nvim.vim) valToVim; + inherit (lib.nvim.config) mkBool; + + cfg = config.vim; + + wrapLuaConfig = luaConfig: '' + lua << EOF + ${optionalString cfg.enableLuaLoader "vim.loader.enable()"} + ${luaConfig} + EOF + ''; + + # Most of the keybindings code is highly inspired by pta2002/nixvim. + # Thank you! + mapConfigOptions = { + silent = + mkBool false + "Whether this mapping should be silent. Equivalent to adding to a map."; + + nowait = + mkBool false + "Whether to wait for extra input on ambiguous mappings. Equivalent to adding to a map."; + + script = + mkBool false + "Equivalent to adding