Merge pull request #36 from NotAShelf/docs-rewrite

docs: improve documentation
This commit is contained in:
NotAShelf 2023-04-02 20:02:15 +03:00 committed by GitHub
commit 7b869ad21e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
36 changed files with 86 additions and 49 deletions

View file

@ -18,7 +18,10 @@ The following is an example of a barebones vim configuration with the default th
[source,nix] [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 outputs = {nixpkgs, neovim-flake, ...}: let
system = "x86_64-linux"; 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!) # Add any custom options (and feel free to upstream them!)
# options = ... # options = ...
config.vim.theme.enable = true; config.vim = {
theme.enable = true;
};
}; };
customNeovim = neovim-flake.lib.neovimConfiguration { customNeovim = neovim-flake.lib.neovimConfiguration {

View file

@ -19,7 +19,7 @@ Followed by importing the HM module.
[source,nix] [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 = { programs.neovim-flake = {
enable = true; enable = true;
# your settings need to go into the settings attrset
settings = { settings = {
vim.viAlias = false; vim.viAlias = false;
vim.vimAlias = true; vim.vimAlias = true;

16
lib/assertions.nix Normal file
View file

@ -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";
}
];
}

View file

@ -2,4 +2,9 @@
dag = import ./dag.nix {inherit lib;}; dag = import ./dag.nix {inherit lib;};
booleans = import ./booleans.nix {inherit lib;}; booleans = import ./booleans.nix {inherit lib;};
types = import ./types {inherit lib;}; types = import ./types {inherit lib;};
imports = [
./assertions.nix
];
} }

View file

@ -45,5 +45,15 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
home.packages = [set.neovim]; 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.";
}
];
}; };
} }

View file

@ -10,7 +10,7 @@ with builtins; {
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
description = "enable autopairs"; description = "Enable autopairs";
}; };
type = mkOption { type = mkOption {

View file

@ -6,6 +6,6 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.comments.comment-nvim = { options.vim.comments.comment-nvim = {
enable = mkEnableOption "comment-nvim"; enable = mkEnableOption "Enable comment-nvim";
}; };
} }

View file

@ -8,7 +8,7 @@ with builtins; let
cfg = config.vim.comments.kommentary; cfg = config.vim.comments.kommentary;
in { in {
options.vim.comments.kommentary = { options.vim.comments.kommentary = {
enable = mkEnableOption "kommentary"; enable = mkEnableOption "Enable kommentary";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -10,7 +10,7 @@ with builtins; {
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
description = "enable autocomplete"; description = "Enable autocomplete via nvim-cmp";
}; };
type = mkOption { type = mkOption {

View file

@ -6,6 +6,6 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.dashboard.alpha = { options.vim.dashboard.alpha = {
enable = mkEnableOption "alpha"; enable = mkEnableOption "Enable alpha.nvim";
}; };
} }

View file

@ -13,8 +13,7 @@ in {
]; ];
vim.luaConfigRC.dashboard-nvim = nvim.dag.entryAnywhere '' vim.luaConfigRC.dashboard-nvim = nvim.dag.entryAnywhere ''
require("dashboard").setup{ require("dashboard").setup{}
}
''; '';
}; };
} }

View file

@ -6,6 +6,6 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.dashboard.dashboard-nvim = { options.vim.dashboard.dashboard-nvim = {
enable = mkEnableOption "dashboard-nvim"; enable = mkEnableOption "Enable dashboard.nvim";
}; };
} }

View file

@ -6,7 +6,7 @@
with builtins; with builtins;
with lib; { with lib; {
options.vim.dashboard.startify = { options.vim.dashboard.startify = {
enable = mkEnableOption "Enable startify"; enable = mkEnableOption "Enable vim-startify";
bookmarks = mkOption { bookmarks = mkOption {
default = []; default = [];

View file

@ -7,7 +7,7 @@ with lib;
with builtins; { with builtins; {
options.vim.lsp = { options.vim.lsp = {
lightbulb = { lightbulb = {
enable = mkEnableOption "lightbulb for code actions. Requires emoji font"; enable = mkEnableOption "Lightbulb for code actions. Requires an emoji font";
}; };
}; };
} }

View file

@ -9,7 +9,7 @@ with builtins; let
cfg = config.vim.lsp; cfg = config.vim.lsp;
in { in {
options.vim.lsp = { 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"; formatOnSave = mkEnableOption "Format on save";
nix = { nix = {
enable = mkEnableOption "Nix LSP"; 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"; python = mkEnableOption "Python LSP";

View file

@ -7,7 +7,7 @@ with lib;
with builtins; { with builtins; {
options.vim.lsp = { options.vim.lsp = {
nvimCodeActionMenu = { nvimCodeActionMenu = {
enable = mkEnableOption "nvim code action menu"; enable = mkEnableOption "Enable nvim code action menu";
}; };
}; };
} }

View file

@ -7,7 +7,7 @@ with lib;
with builtins; { with builtins; {
options.vim.lsp = { options.vim.lsp = {
trouble = { trouble = {
enable = mkEnableOption "trouble diagnostics viewer"; enable = mkEnableOption "Enable trouble diagnostics viewer";
}; };
}; };
} }

View file

@ -8,7 +8,7 @@ with builtins; let
cfg = config.vim.markdown; cfg = config.vim.markdown;
in { in {
options.vim.markdown = { options.vim.markdown = {
enable = mkEnableOption "markdown tools and plugins"; enable = mkEnableOption "Enable markdown tools and plugins";
}; };
config = mkIf (cfg.enable) { config = mkIf (cfg.enable) {

View file

@ -6,6 +6,6 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.minimap.codewindow = { options.vim.minimap.codewindow = {
enable = mkEnableOption "Enable minimap-vim plugin"; enable = mkEnableOption "Enable codewindow plugin for minimap view";
}; };
} }

View file

@ -6,6 +6,6 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.minimap.minimap-vim = { options.vim.minimap.minimap-vim = {
enable = mkEnableOption "Enable minimap-vim plugin"; enable = mkEnableOption "Enable minimap-vim plugin for minimap view";
}; };
} }

View file

@ -6,7 +6,7 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.notes.orgmode = { 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 { orgAgendaFiles = mkOption {
type = types.str; type = types.str;
default = "{'~/Dropbox/org/*', '~/my-orgs/**/*'}"; default = "{'~/Dropbox/org/*', '~/my-orgs/**/*'}";

View file

@ -6,7 +6,7 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.notes.todo-comments = { options.vim.notes.todo-comments = {
enable = mkEnableOption "todo-comments"; enable = mkEnableOption "Enable todo-comments";
patterns = { patterns = {
highlight = mkOption { highlight = mkOption {

View file

@ -6,7 +6,7 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.presence.presence-nvim = { options.vim.presence.presence-nvim = {
enable = mkEnableOption "Enable presence.nvim plugin"; enable = mkEnableOption "Enable presence.nvim plugin for discord rich presence";
image_text = mkOption { image_text = mkOption {
type = types.str; type = types.str;

View file

@ -10,7 +10,7 @@ in {
options.vim.statusline.lualine = { options.vim.statusline.lualine = {
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;
description = "Enable lualine"; description = "Enable lualine statusline";
default = true; default = true;
}; };

View file

@ -6,6 +6,6 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.tabline.nvimBufferline = { options.vim.tabline.nvimBufferline = {
enable = mkEnableOption "nvim-bufferline-lua"; enable = mkEnableOption "Enable nvim-bufferline-lua as a bufferline";
}; };
} }

View file

@ -12,7 +12,7 @@ in {
options.vim.theme = { options.vim.theme = {
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;
description = "Enable Theme"; description = "Enable theming";
}; };
name = mkOption { name = mkOption {

View file

@ -6,7 +6,7 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.tidal = { options.vim.tidal = {
enable = mkEnableOption "tidal tools and plugins"; enable = mkEnableOption "Enable tidalcycles tools and plugins";
flash = mkOption { flash = mkOption {
description = ''When sending a paragraph or a single line, vim-tidal will "flash" the selection for some milliseconds''; description = ''When sending a paragraph or a single line, vim-tidal will "flash" the selection for some milliseconds'';

View file

@ -10,19 +10,19 @@ with builtins; {
enable = mkOption { enable = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
description = "enable tree-sitter [nvim-treesitter]"; description = "Enable tree-sitter [nvim-treesitter]";
}; };
fold = mkOption { fold = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
description = "enable fold with tree-sitter"; description = "Enable fold with tree-sitter";
}; };
autotagHtml = mkOption { autotagHtml = mkOption {
default = false; default = false;
type = types.bool; 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 { grammars = mkOption {

View file

@ -6,6 +6,6 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.ui.noice = { options.vim.ui.noice = {
enable = mkEnableOption "noice-nvim"; enable = mkEnableOption "Enable noice-nvim UI modifications";
}; };
} }

View file

@ -6,6 +6,6 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.binds.cheatsheet = { options.vim.binds.cheatsheet = {
enable = mkEnableOption "Searchable cheatsheet for nvim using telescope"; enable = mkEnableOption "Enable cheatsheet-nvim: searchable cheatsheet for nvim using telescope";
}; };
} }

View file

@ -6,6 +6,6 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.binds.whichKey = { options.vim.binds.whichKey = {
enable = mkEnableOption "which-key menu"; enable = mkEnableOption "Enable which-key keybind menu";
}; };
} }

View file

@ -6,6 +6,6 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.utility.colorizer = { options.vim.utility.colorizer = {
enable = mkEnableOption "ccc color picker for neovim"; enable = mkEnableOption "Enable ccc color picker for neovim";
}; };
} }

View file

@ -6,6 +6,6 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.utility.icon-picker = { options.vim.utility.icon-picker = {
enable = mkEnableOption "Nerdfonts icon picker for nvim"; enable = mkEnableOption "Enable nerdfonts icon picker for nvim";
}; };
} }

View file

@ -6,6 +6,6 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.telescope = { options.vim.telescope = {
enable = mkEnableOption "enable telescope"; enable = mkEnableOption "Enable multi-purpose telescope utility";
}; };
} }

View file

@ -6,6 +6,6 @@
with lib; with lib;
with builtins; { with builtins; {
options.vim.utility.venn-nvim = { options.vim.utility.venn-nvim = {
enable = mkEnableOption "draw ASCII diagrams in Neovim"; enable = mkEnableOption "Enable venn.nvim: draw ASCII diagrams in Neovim";
}; };
} }

View file

@ -8,56 +8,56 @@ with builtins; {
options.vim.visuals = { options.vim.visuals = {
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;
description = "visual enhancements"; description = "Enable visual enhancements";
default = false; default = false;
}; };
nvimWebDevicons.enable = mkOption { nvimWebDevicons.enable = mkOption {
type = types.bool; 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; default = false;
}; };
lspkind.enable = mkOption { lspkind.enable = mkOption {
type = types.bool; type = types.bool;
description = "enable vscode-like pictograms for lsp [lspkind]"; description = "Enable vscode-like pictograms for lsp [lspkind]";
default = false; default = false;
}; };
scrollBar.enable = mkOption { scrollBar.enable = mkOption {
type = types.bool; type = types.bool;
description = "enable scrollbar [scrollbar.nvim]"; description = "Enable scrollbar [scrollbar.nvim]";
default = false; default = false;
}; };
smoothScroll.enable = mkOption { smoothScroll.enable = mkOption {
type = types.bool; type = types.bool;
description = "enable smooth scrolling [cinnamon-nvim]"; description = "Enable smooth scrolling [cinnamon-nvim]";
default = false; default = false;
}; };
cellularAutomaton.enable = mkOption { cellularAutomaton.enable = mkOption {
type = types.bool; type = types.bool;
description = "enable cellular automaton [cellular-automaton]"; description = "Enable cellular automaton [cellular-automaton]";
default = false; default = false;
}; };
fidget-nvim = { fidget-nvim = {
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;
description = "enable nvim LSP UI element [fidget-nvim]"; description = "Enable nvim LSP UI element [fidget-nvim]";
default = false; default = false;
}; };
align = { align = {
bottom = mkOption { bottom = mkOption {
type = types.bool; type = types.bool;
description = "align to bottom"; description = "Align to bottom";
default = true; default = true;
}; };
right = mkOption { right = mkOption {
type = types.bool; type = types.bool;
description = "align to right"; description = "Align to right";
default = true; default = true;
}; };
}; };
@ -66,20 +66,20 @@ with builtins; {
cursorWordline = { cursorWordline = {
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;
description = "enable word and delayed line highlight [nvim-cursorline]"; description = "Enable word and delayed line highlight [nvim-cursorline]";
default = false; default = false;
}; };
lineTimeout = mkOption { lineTimeout = mkOption {
type = types.int; type = types.int;
description = "time in milliseconds for cursorline to appear"; description = "Time in milliseconds for cursorline to appear";
}; };
}; };
indentBlankline = { indentBlankline = {
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;
description = "enable indentation guides [indent-blankline]"; description = "Enable indentation guides [indent-blankline]";
default = false; default = false;
}; };