diff --git a/docs/custom-configs.adoc b/docs/custom-configs.adoc index 17994f7..7f90b00 100644 --- a/docs/custom-configs.adoc +++ b/docs/custom-configs.adoc @@ -18,7 +18,10 @@ The following is an example of a barebones vim configuration with the default th [source,nix] ---- { - inputs.neovim-flake.url = "github:jordanisaacs/neovim-flake"; + inputs.neovim-flake = { + url = "github:notashelf/neovim-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; outputs = {nixpkgs, neovim-flake, ...}: let system = "x86_64-linux"; @@ -27,7 +30,9 @@ The following is an example of a barebones vim configuration with the default th # Add any custom options (and feel free to upstream them!) # options = ... - config.vim.theme.enable = true; + config.vim = { + theme.enable = true; + }; }; customNeovim = neovim-flake.lib.neovimConfiguration { diff --git a/docs/home-manager.adoc b/docs/home-manager.adoc index ed85f90..bd24a16 100644 --- a/docs/home-manager.adoc +++ b/docs/home-manager.adoc @@ -19,7 +19,7 @@ Followed by importing the HM module. [source,nix] ---- { - imports = [ neovim-flake.nixosModules.hm-module ]; + imports = [ neovim-flake.homeManagerModules.default ]; } ---- @@ -29,7 +29,9 @@ Then we should be able to use the given module. E.g. ---- { programs.neovim-flake = { + enable = true; + # your settings need to go into the settings attrset settings = { vim.viAlias = false; vim.vimAlias = true; diff --git a/lib/assertions.nix b/lib/assertions.nix new file mode 100644 index 0000000..49ea8ac --- /dev/null +++ b/lib/assertions.nix @@ -0,0 +1,16 @@ +{ + pkgs, + config, + lib, + ... +}: +with lib; let + cfg = config.vim; +in { + assertions = mkMerge [ + { + assertion = cfg.kommentary.enable; + message = "Kommentary has been deprecated in favor"; + } + ]; +} diff --git a/lib/default.nix b/lib/default.nix index 873f31b..600c999 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -2,4 +2,9 @@ dag = import ./dag.nix {inherit lib;}; booleans = import ./booleans.nix {inherit lib;}; types = import ./types {inherit lib;}; + + imports = [ + ./assertions.nix + ]; + } diff --git a/lib/module/default.nix b/lib/module/default.nix index 7689aef..71c19f6 100644 --- a/lib/module/default.nix +++ b/lib/module/default.nix @@ -45,5 +45,15 @@ in { config = mkIf cfg.enable { home.packages = [set.neovim]; + + assertions = mkMerge [ + mkIf + (config.programs.neovim-flake.enable) + { + assertion = !config.programs.neovim.enable; + message = "You cannot use neovim-flake together with vanilla neovim."; + } + ]; + }; } diff --git a/modules/autopairs/nvim-autopairs/nvim-autopairs.nix b/modules/autopairs/nvim-autopairs/nvim-autopairs.nix index f355919..ecfda6f 100644 --- a/modules/autopairs/nvim-autopairs/nvim-autopairs.nix +++ b/modules/autopairs/nvim-autopairs/nvim-autopairs.nix @@ -10,7 +10,7 @@ with builtins; { enable = mkOption { type = types.bool; default = false; - description = "enable autopairs"; + description = "Enable autopairs"; }; type = mkOption { diff --git a/modules/comments/comment-nvim/comment-nvim.nix b/modules/comments/comment-nvim/comment-nvim.nix index 65c6fbb..0e1369b 100644 --- a/modules/comments/comment-nvim/comment-nvim.nix +++ b/modules/comments/comment-nvim/comment-nvim.nix @@ -6,6 +6,6 @@ with lib; with builtins; { options.vim.comments.comment-nvim = { - enable = mkEnableOption "comment-nvim"; + enable = mkEnableOption "Enable comment-nvim"; }; } diff --git a/modules/comments/kommentary.nix b/modules/comments/kommentary.nix index 25f71f8..37442a2 100644 --- a/modules/comments/kommentary.nix +++ b/modules/comments/kommentary.nix @@ -8,7 +8,7 @@ with builtins; let cfg = config.vim.comments.kommentary; in { options.vim.comments.kommentary = { - enable = mkEnableOption "kommentary"; + enable = mkEnableOption "Enable kommentary"; }; config = mkIf cfg.enable { diff --git a/modules/completion/nvim-cmp/nvim-cmp.nix b/modules/completion/nvim-cmp/nvim-cmp.nix index 59f5f1d..5938525 100644 --- a/modules/completion/nvim-cmp/nvim-cmp.nix +++ b/modules/completion/nvim-cmp/nvim-cmp.nix @@ -10,7 +10,7 @@ with builtins; { enable = mkOption { type = types.bool; default = false; - description = "enable autocomplete"; + description = "Enable autocomplete via nvim-cmp"; }; type = mkOption { diff --git a/modules/dashboard/alpha/alpha.nix b/modules/dashboard/alpha/alpha.nix index 8989b89..40edafb 100644 --- a/modules/dashboard/alpha/alpha.nix +++ b/modules/dashboard/alpha/alpha.nix @@ -6,6 +6,6 @@ with lib; with builtins; { options.vim.dashboard.alpha = { - enable = mkEnableOption "alpha"; + enable = mkEnableOption "Enable alpha.nvim"; }; } diff --git a/modules/dashboard/dashboard-nvim/config.nix b/modules/dashboard/dashboard-nvim/config.nix index 9edf34a..14166f6 100644 --- a/modules/dashboard/dashboard-nvim/config.nix +++ b/modules/dashboard/dashboard-nvim/config.nix @@ -13,8 +13,7 @@ in { ]; vim.luaConfigRC.dashboard-nvim = nvim.dag.entryAnywhere '' - require("dashboard").setup{ - } + require("dashboard").setup{} ''; }; } diff --git a/modules/dashboard/dashboard-nvim/dashboard-nvim.nix b/modules/dashboard/dashboard-nvim/dashboard-nvim.nix index 4600233..e74e39e 100644 --- a/modules/dashboard/dashboard-nvim/dashboard-nvim.nix +++ b/modules/dashboard/dashboard-nvim/dashboard-nvim.nix @@ -6,6 +6,6 @@ with lib; with builtins; { options.vim.dashboard.dashboard-nvim = { - enable = mkEnableOption "dashboard-nvim"; + enable = mkEnableOption "Enable dashboard.nvim"; }; } diff --git a/modules/dashboard/startify/startify.nix b/modules/dashboard/startify/startify.nix index 3467920..5d75964 100644 --- a/modules/dashboard/startify/startify.nix +++ b/modules/dashboard/startify/startify.nix @@ -6,7 +6,7 @@ with builtins; with lib; { options.vim.dashboard.startify = { - enable = mkEnableOption "Enable startify"; + enable = mkEnableOption "Enable vim-startify"; bookmarks = mkOption { default = []; diff --git a/modules/lsp/lightbulb/lightbulb.nix b/modules/lsp/lightbulb/lightbulb.nix index ae1c829..b754835 100644 --- a/modules/lsp/lightbulb/lightbulb.nix +++ b/modules/lsp/lightbulb/lightbulb.nix @@ -7,7 +7,7 @@ with lib; with builtins; { options.vim.lsp = { lightbulb = { - enable = mkEnableOption "lightbulb for code actions. Requires emoji font"; + enable = mkEnableOption "Lightbulb for code actions. Requires an emoji font"; }; }; } diff --git a/modules/lsp/module.nix b/modules/lsp/module.nix index 42ed054..4cc256c 100644 --- a/modules/lsp/module.nix +++ b/modules/lsp/module.nix @@ -9,7 +9,7 @@ with builtins; let cfg = config.vim.lsp; in { options.vim.lsp = { - enable = mkEnableOption "neovim lsp support"; + enable = mkEnableOption "Enable neovim lsp support. Requires language specific LSPs to be anabled to take effect"; formatOnSave = mkEnableOption "Format on save"; nix = { enable = mkEnableOption "Nix LSP"; @@ -45,7 +45,7 @@ in { }, }, ''; - description = "options to pass to rust analyzer"; + description = "Options to pass to rust analyzer"; }; }; python = mkEnableOption "Python LSP"; diff --git a/modules/lsp/nvim-code-action-menu/nvim-code-action-menu.nix b/modules/lsp/nvim-code-action-menu/nvim-code-action-menu.nix index 8bcd5d0..95058e6 100644 --- a/modules/lsp/nvim-code-action-menu/nvim-code-action-menu.nix +++ b/modules/lsp/nvim-code-action-menu/nvim-code-action-menu.nix @@ -7,7 +7,7 @@ with lib; with builtins; { options.vim.lsp = { nvimCodeActionMenu = { - enable = mkEnableOption "nvim code action menu"; + enable = mkEnableOption "Enable nvim code action menu"; }; }; } diff --git a/modules/lsp/trouble/trouble.nix b/modules/lsp/trouble/trouble.nix index af44921..2a5c392 100644 --- a/modules/lsp/trouble/trouble.nix +++ b/modules/lsp/trouble/trouble.nix @@ -7,7 +7,7 @@ with lib; with builtins; { options.vim.lsp = { trouble = { - enable = mkEnableOption "trouble diagnostics viewer"; + enable = mkEnableOption "Enable trouble diagnostics viewer"; }; }; } diff --git a/modules/markdown/module.nix b/modules/markdown/module.nix index cfcb792..761f58c 100644 --- a/modules/markdown/module.nix +++ b/modules/markdown/module.nix @@ -8,7 +8,7 @@ with builtins; let cfg = config.vim.markdown; in { options.vim.markdown = { - enable = mkEnableOption "markdown tools and plugins"; + enable = mkEnableOption "Enable markdown tools and plugins"; }; config = mkIf (cfg.enable) { diff --git a/modules/minimap/codewindow/codewindow.nix b/modules/minimap/codewindow/codewindow.nix index 2e71f57..58c7a85 100644 --- a/modules/minimap/codewindow/codewindow.nix +++ b/modules/minimap/codewindow/codewindow.nix @@ -6,6 +6,6 @@ with lib; with builtins; { options.vim.minimap.codewindow = { - enable = mkEnableOption "Enable minimap-vim plugin"; + enable = mkEnableOption "Enable codewindow plugin for minimap view"; }; } diff --git a/modules/minimap/minimap-vim/minimap-vim.nix b/modules/minimap/minimap-vim/minimap-vim.nix index 11c0748..33d166a 100644 --- a/modules/minimap/minimap-vim/minimap-vim.nix +++ b/modules/minimap/minimap-vim/minimap-vim.nix @@ -6,6 +6,6 @@ with lib; with builtins; { options.vim.minimap.minimap-vim = { - enable = mkEnableOption "Enable minimap-vim plugin"; + enable = mkEnableOption "Enable minimap-vim plugin for minimap view"; }; } diff --git a/modules/notes/orgmode/orgmode.nix b/modules/notes/orgmode/orgmode.nix index 5bac116..68a7620 100644 --- a/modules/notes/orgmode/orgmode.nix +++ b/modules/notes/orgmode/orgmode.nix @@ -6,7 +6,7 @@ with lib; with builtins; { options.vim.notes.orgmode = { - enable = mkEnableOption "Neovim plugin for Emac Orgmode. Get the best of both worlds."; + enable = mkEnableOption "Enable nvim-orgmode: Neovim plugin for Emac Orgmode. Get the best of both worlds"; orgAgendaFiles = mkOption { type = types.str; default = "{'~/Dropbox/org/*', '~/my-orgs/**/*'}"; diff --git a/modules/notes/todo-comments/todo-comments.nix b/modules/notes/todo-comments/todo-comments.nix index 773a8a1..3064e75 100644 --- a/modules/notes/todo-comments/todo-comments.nix +++ b/modules/notes/todo-comments/todo-comments.nix @@ -6,7 +6,7 @@ with lib; with builtins; { options.vim.notes.todo-comments = { - enable = mkEnableOption "todo-comments"; + enable = mkEnableOption "Enable todo-comments"; patterns = { highlight = mkOption { diff --git a/modules/rich-presence/presence-nvim/presence-nvim.nix b/modules/rich-presence/presence-nvim/presence-nvim.nix index 420e809..491aadd 100644 --- a/modules/rich-presence/presence-nvim/presence-nvim.nix +++ b/modules/rich-presence/presence-nvim/presence-nvim.nix @@ -6,7 +6,7 @@ with lib; with builtins; { options.vim.presence.presence-nvim = { - enable = mkEnableOption "Enable presence.nvim plugin"; + enable = mkEnableOption "Enable presence.nvim plugin for discord rich presence"; image_text = mkOption { type = types.str; diff --git a/modules/statusline/lualine/lualine.nix b/modules/statusline/lualine/lualine.nix index b0e32a1..f95850a 100644 --- a/modules/statusline/lualine/lualine.nix +++ b/modules/statusline/lualine/lualine.nix @@ -10,7 +10,7 @@ in { options.vim.statusline.lualine = { enable = mkOption { type = types.bool; - description = "Enable lualine"; + description = "Enable lualine statusline"; default = true; }; diff --git a/modules/tabline/nvim-bufferline/nvim-bufferline.nix b/modules/tabline/nvim-bufferline/nvim-bufferline.nix index 4a98dbd..ad707bf 100644 --- a/modules/tabline/nvim-bufferline/nvim-bufferline.nix +++ b/modules/tabline/nvim-bufferline/nvim-bufferline.nix @@ -6,6 +6,6 @@ with lib; with builtins; { options.vim.tabline.nvimBufferline = { - enable = mkEnableOption "nvim-bufferline-lua"; + enable = mkEnableOption "Enable nvim-bufferline-lua as a bufferline"; }; } diff --git a/modules/theme/theme.nix b/modules/theme/theme.nix index 4d92269..16a2713 100644 --- a/modules/theme/theme.nix +++ b/modules/theme/theme.nix @@ -12,7 +12,7 @@ in { options.vim.theme = { enable = mkOption { type = types.bool; - description = "Enable Theme"; + description = "Enable theming"; }; name = mkOption { diff --git a/modules/tidal/tidal.nix b/modules/tidal/tidal.nix index 8db4b12..9554571 100644 --- a/modules/tidal/tidal.nix +++ b/modules/tidal/tidal.nix @@ -6,7 +6,7 @@ with lib; with builtins; { options.vim.tidal = { - enable = mkEnableOption "tidal tools and plugins"; + enable = mkEnableOption "Enable tidalcycles tools and plugins"; flash = mkOption { description = ''When sending a paragraph or a single line, vim-tidal will "flash" the selection for some milliseconds''; diff --git a/modules/treesitter/treesitter.nix b/modules/treesitter/treesitter.nix index f36a3f4..ab3cea6 100644 --- a/modules/treesitter/treesitter.nix +++ b/modules/treesitter/treesitter.nix @@ -10,19 +10,19 @@ with builtins; { enable = mkOption { default = false; type = types.bool; - description = "enable tree-sitter [nvim-treesitter]"; + description = "Enable tree-sitter [nvim-treesitter]"; }; fold = mkOption { default = false; type = types.bool; - description = "enable fold with tree-sitter"; + description = "Enable fold with tree-sitter"; }; autotagHtml = mkOption { default = false; type = types.bool; - description = "enable autoclose and rename html tag [nvim-ts-autotag]"; + description = "Enable autoclose and rename html tag [nvim-ts-autotag]"; }; grammars = mkOption { diff --git a/modules/ui/noice/noice.nix b/modules/ui/noice/noice.nix index 5a50fd3..481785e 100644 --- a/modules/ui/noice/noice.nix +++ b/modules/ui/noice/noice.nix @@ -6,6 +6,6 @@ with lib; with builtins; { options.vim.ui.noice = { - enable = mkEnableOption "noice-nvim"; + enable = mkEnableOption "Enable noice-nvim UI modifications"; }; } diff --git a/modules/utility/binds/cheatsheet/cheatsheet.nix b/modules/utility/binds/cheatsheet/cheatsheet.nix index b48f7be..c16b1f4 100644 --- a/modules/utility/binds/cheatsheet/cheatsheet.nix +++ b/modules/utility/binds/cheatsheet/cheatsheet.nix @@ -6,6 +6,6 @@ with lib; with builtins; { options.vim.binds.cheatsheet = { - enable = mkEnableOption "Searchable cheatsheet for nvim using telescope"; + enable = mkEnableOption "Enable cheatsheet-nvim: searchable cheatsheet for nvim using telescope"; }; } diff --git a/modules/utility/binds/which-key/which-key.nix b/modules/utility/binds/which-key/which-key.nix index b00c586..4135451 100644 --- a/modules/utility/binds/which-key/which-key.nix +++ b/modules/utility/binds/which-key/which-key.nix @@ -6,6 +6,6 @@ with lib; with builtins; { options.vim.binds.whichKey = { - enable = mkEnableOption "which-key menu"; + enable = mkEnableOption "Enable which-key keybind menu"; }; } diff --git a/modules/utility/colorizer/colorizer.nix b/modules/utility/colorizer/colorizer.nix index fdcd34c..565f3f6 100644 --- a/modules/utility/colorizer/colorizer.nix +++ b/modules/utility/colorizer/colorizer.nix @@ -6,6 +6,6 @@ with lib; with builtins; { options.vim.utility.colorizer = { - enable = mkEnableOption "ccc color picker for neovim"; + enable = mkEnableOption "Enable ccc color picker for neovim"; }; } diff --git a/modules/utility/icon-picker/icon-picker.nix b/modules/utility/icon-picker/icon-picker.nix index fe9b05f..231a8b4 100644 --- a/modules/utility/icon-picker/icon-picker.nix +++ b/modules/utility/icon-picker/icon-picker.nix @@ -6,6 +6,6 @@ with lib; with builtins; { options.vim.utility.icon-picker = { - enable = mkEnableOption "Nerdfonts icon picker for nvim"; + enable = mkEnableOption "Enable nerdfonts icon picker for nvim"; }; } diff --git a/modules/utility/telescope/telescope.nix b/modules/utility/telescope/telescope.nix index 4d2cbc1..1ba45b8 100644 --- a/modules/utility/telescope/telescope.nix +++ b/modules/utility/telescope/telescope.nix @@ -6,6 +6,6 @@ with lib; with builtins; { options.vim.telescope = { - enable = mkEnableOption "enable telescope"; + enable = mkEnableOption "Enable multi-purpose telescope utility"; }; } diff --git a/modules/utility/venn/venn.nix b/modules/utility/venn/venn.nix index ae93354..8885f64 100644 --- a/modules/utility/venn/venn.nix +++ b/modules/utility/venn/venn.nix @@ -6,6 +6,6 @@ with lib; with builtins; { options.vim.utility.venn-nvim = { - enable = mkEnableOption "draw ASCII diagrams in Neovim"; + enable = mkEnableOption "Enable venn.nvim: draw ASCII diagrams in Neovim"; }; } diff --git a/modules/visuals/visuals.nix b/modules/visuals/visuals.nix index f09ff42..7fe03ad 100644 --- a/modules/visuals/visuals.nix +++ b/modules/visuals/visuals.nix @@ -8,56 +8,56 @@ with builtins; { options.vim.visuals = { enable = mkOption { type = types.bool; - description = "visual enhancements"; + description = "Enable visual enhancements"; default = false; }; nvimWebDevicons.enable = mkOption { type = types.bool; - description = "enable dev icons. required for certain plugins [nvim-web-devicons]"; + description = "Enable dev icons. required for certain plugins [nvim-web-devicons]"; default = false; }; lspkind.enable = mkOption { type = types.bool; - description = "enable vscode-like pictograms for lsp [lspkind]"; + description = "Enable vscode-like pictograms for lsp [lspkind]"; default = false; }; scrollBar.enable = mkOption { type = types.bool; - description = "enable scrollbar [scrollbar.nvim]"; + description = "Enable scrollbar [scrollbar.nvim]"; default = false; }; smoothScroll.enable = mkOption { type = types.bool; - description = "enable smooth scrolling [cinnamon-nvim]"; + description = "Enable smooth scrolling [cinnamon-nvim]"; default = false; }; cellularAutomaton.enable = mkOption { type = types.bool; - description = "enable cellular automaton [cellular-automaton]"; + description = "Enable cellular automaton [cellular-automaton]"; default = false; }; fidget-nvim = { enable = mkOption { type = types.bool; - description = "enable nvim LSP UI element [fidget-nvim]"; + description = "Enable nvim LSP UI element [fidget-nvim]"; default = false; }; align = { bottom = mkOption { type = types.bool; - description = "align to bottom"; + description = "Align to bottom"; default = true; }; right = mkOption { type = types.bool; - description = "align to right"; + description = "Align to right"; default = true; }; }; @@ -66,20 +66,20 @@ with builtins; { cursorWordline = { enable = mkOption { type = types.bool; - description = "enable word and delayed line highlight [nvim-cursorline]"; + description = "Enable word and delayed line highlight [nvim-cursorline]"; default = false; }; lineTimeout = mkOption { type = types.int; - description = "time in milliseconds for cursorline to appear"; + description = "Time in milliseconds for cursorline to appear"; }; }; indentBlankline = { enable = mkOption { type = types.bool; - description = "enable indentation guides [indent-blankline]"; + description = "Enable indentation guides [indent-blankline]"; default = false; };