diff --git a/.gitignore b/.gitignore
index d36977dc..2d81b42f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
.tmp
+result
diff --git a/docs/default.nix b/docs/default.nix
new file mode 100644
index 00000000..f60fe88b
--- /dev/null
+++ b/docs/default.nix
@@ -0,0 +1,51 @@
+{ pkgs, lib, ... }:
+let
+ nmdSrc = pkgs.fetchFromGitLab {
+ name = "nmd";
+ owner = "rycee";
+ repo = "nmd";
+ rev = "527245ff605bde88c2dd2ddae21c6479bb7cf8aa";
+ sha256 = "1zi0f9y3wq4bpslx1py3sfgrgd9av41ahpandvs6rvkpisfsqqlp";
+ };
+ nmd = import nmdSrc { inherit pkgs lib; };
+ scrubbedPkgsModule = {
+ imports = [{
+ _module.args = {
+ pkgs = lib.mkForce (nmd.scrubDerivations "pkgs" pkgs);
+ pkgs_i686 = lib.mkForce { };
+ };
+ }];
+ };
+ buildModulesDocs = args:
+ nmd.buildModulesDocs ({
+ moduleRootPaths = [ ./.. ];
+ mkModuleUrl = path:
+ "https://github.com/pta2002/nixvim/blob/master/${path}#blob-path";
+ channelName = "nixvim";
+ } // args);
+ nixvimDocs = buildModulesDocs {
+ modules = [
+ (import ../nixvim.nix {})
+ scrubbedPkgsModule
+ ];
+ docBook.id = "nixvim-options";
+ };
+
+ docs = nmd.buildDocBookDocs {
+ pathName = "";
+ modulesDocs = [ nixvimDocs ];
+ documentsDirectory = ./.;
+ documentType = "book";
+ chunkToc = ''
+
+
+
+
+
+
+
+
+
+ '';
+ };
+in docs.html
diff --git a/docs/man-nixvim.xml b/docs/man-nixvim.xml
new file mode 100644
index 00000000..de162807
--- /dev/null
+++ b/docs/man-nixvim.xml
@@ -0,0 +1,27 @@
+
+
+ nixvim.nix
+ 5
+ NixVim
+
+
+
+ nixvim.nix
+ NixVim configuration specification
+
+
+ Description
+
+ TODO
+
+
+
+ Options
+
+ You can use the following options in your nixvim config
+
+
+
+
diff --git a/docs/man-pages.xml b/docs/man-pages.xml
new file mode 100644
index 00000000..9d4c1ce8
--- /dev/null
+++ b/docs/man-pages.xml
@@ -0,0 +1,11 @@
+
+ NixVim Reference Pages
+
+ NixVim contributors
+ 2021-2022NixVim contributors
+
+
+
+
diff --git a/docs/manual.xml b/docs/manual.xml
new file mode 100644
index 00000000..090643d3
--- /dev/null
+++ b/docs/manual.xml
@@ -0,0 +1,23 @@
+
+
+ NixVim Manual
+
+
+ Preface
+
+ This manual is meant to serve as the ultimate reference for how to use and install NixVim.
+
+
+ If you have any issues, questions, or plugin suggestions please open an issue on the
+ NixVim GitHub
+
+
+
+ Configuration Options
+
+
+
diff --git a/doc/plugins.md b/docs/plugins.md
similarity index 100%
rename from doc/plugins.md
rename to docs/plugins.md
diff --git a/doc/plugins/colorschemes/base16.md b/docs/plugins/colorschemes/base16.md
similarity index 100%
rename from doc/plugins/colorschemes/base16.md
rename to docs/plugins/colorschemes/base16.md
diff --git a/doc/plugins/colorschemes/gruvbox.md b/docs/plugins/colorschemes/gruvbox.md
similarity index 100%
rename from doc/plugins/colorschemes/gruvbox.md
rename to docs/plugins/colorschemes/gruvbox.md
diff --git a/doc/plugins/colorschemes/one.md b/docs/plugins/colorschemes/one.md
similarity index 100%
rename from doc/plugins/colorschemes/one.md
rename to docs/plugins/colorschemes/one.md
diff --git a/doc/plugins/colorschemes/onedark.md b/docs/plugins/colorschemes/onedark.md
similarity index 100%
rename from doc/plugins/colorschemes/onedark.md
rename to docs/plugins/colorschemes/onedark.md
diff --git a/doc/plugins/colorschemes/tokyonight.md b/docs/plugins/colorschemes/tokyonight.md
similarity index 100%
rename from doc/plugins/colorschemes/tokyonight.md
rename to docs/plugins/colorschemes/tokyonight.md
diff --git a/doc/plugins/git/fugitive.md b/docs/plugins/git/fugitive.md
similarity index 100%
rename from doc/plugins/git/fugitive.md
rename to docs/plugins/git/fugitive.md
diff --git a/doc/plugins/git/gitgutter.md b/docs/plugins/git/gitgutter.md
similarity index 100%
rename from doc/plugins/git/gitgutter.md
rename to docs/plugins/git/gitgutter.md
diff --git a/doc/plugins/languages/ledger.md b/docs/plugins/languages/ledger.md
similarity index 100%
rename from doc/plugins/languages/ledger.md
rename to docs/plugins/languages/ledger.md
diff --git a/doc/plugins/languages/nix.md b/docs/plugins/languages/nix.md
similarity index 100%
rename from doc/plugins/languages/nix.md
rename to docs/plugins/languages/nix.md
diff --git a/doc/plugins/languages/treesitter.md b/docs/plugins/languages/treesitter.md
similarity index 100%
rename from doc/plugins/languages/treesitter.md
rename to docs/plugins/languages/treesitter.md
diff --git a/doc/plugins/languages/zig.md b/docs/plugins/languages/zig.md
similarity index 100%
rename from doc/plugins/languages/zig.md
rename to docs/plugins/languages/zig.md
diff --git a/doc/plugins/nvim-lsp/clangd.md b/docs/plugins/nvim-lsp/clangd.md
similarity index 100%
rename from doc/plugins/nvim-lsp/clangd.md
rename to docs/plugins/nvim-lsp/clangd.md
diff --git a/doc/plugins/nvim-lsp/default.md b/docs/plugins/nvim-lsp/default.md
similarity index 100%
rename from doc/plugins/nvim-lsp/default.md
rename to docs/plugins/nvim-lsp/default.md
diff --git a/doc/plugins/nvim-lsp/lspsaga.md b/docs/plugins/nvim-lsp/lspsaga.md
similarity index 100%
rename from doc/plugins/nvim-lsp/lspsaga.md
rename to docs/plugins/nvim-lsp/lspsaga.md
diff --git a/doc/plugins/nvim-lsp/rnix-lsp.md b/docs/plugins/nvim-lsp/rnix-lsp.md
similarity index 100%
rename from doc/plugins/nvim-lsp/rnix-lsp.md
rename to docs/plugins/nvim-lsp/rnix-lsp.md
diff --git a/doc/plugins/nvim-lsp/rust-analyzer.md b/docs/plugins/nvim-lsp/rust-analyzer.md
similarity index 100%
rename from doc/plugins/nvim-lsp/rust-analyzer.md
rename to docs/plugins/nvim-lsp/rust-analyzer.md
diff --git a/doc/plugins/pluginmanagers/packer.md b/docs/plugins/pluginmanagers/packer.md
similarity index 100%
rename from doc/plugins/pluginmanagers/packer.md
rename to docs/plugins/pluginmanagers/packer.md
diff --git a/doc/plugins/statuslines/airline.md b/docs/plugins/statuslines/airline.md
similarity index 100%
rename from doc/plugins/statuslines/airline.md
rename to docs/plugins/statuslines/airline.md
diff --git a/doc/plugins/statuslines/lightline.md b/docs/plugins/statuslines/lightline.md
similarity index 100%
rename from doc/plugins/statuslines/lightline.md
rename to docs/plugins/statuslines/lightline.md
diff --git a/doc/plugins/utils/barbar.md b/docs/plugins/utils/barbar.md
similarity index 100%
rename from doc/plugins/utils/barbar.md
rename to docs/plugins/utils/barbar.md
diff --git a/doc/plugins/utils/commentary.md b/docs/plugins/utils/commentary.md
similarity index 100%
rename from doc/plugins/utils/commentary.md
rename to docs/plugins/utils/commentary.md
diff --git a/doc/plugins/utils/endwise.md b/docs/plugins/utils/endwise.md
similarity index 100%
rename from doc/plugins/utils/endwise.md
rename to docs/plugins/utils/endwise.md
diff --git a/doc/plugins/utils/goyo.md b/docs/plugins/utils/goyo.md
similarity index 100%
rename from doc/plugins/utils/goyo.md
rename to docs/plugins/utils/goyo.md
diff --git a/doc/plugins/utils/nvim-autopairs.md b/docs/plugins/utils/nvim-autopairs.md
similarity index 100%
rename from doc/plugins/utils/nvim-autopairs.md
rename to docs/plugins/utils/nvim-autopairs.md
diff --git a/doc/plugins/utils/startify.md b/docs/plugins/utils/startify.md
similarity index 100%
rename from doc/plugins/utils/startify.md
rename to docs/plugins/utils/startify.md
diff --git a/doc/plugins/utils/telescope.md b/docs/plugins/utils/telescope.md
similarity index 100%
rename from doc/plugins/utils/telescope.md
rename to docs/plugins/utils/telescope.md
diff --git a/doc/plugins/utils/undotree.md b/docs/plugins/utils/undotree.md
similarity index 100%
rename from doc/plugins/utils/undotree.md
rename to docs/plugins/utils/undotree.md
diff --git a/flake.lock b/flake.lock
index 96aafd6d..ef3662b4 100644
--- a/flake.lock
+++ b/flake.lock
@@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
- "lastModified": 1638986258,
- "narHash": "sha256-OceRdctKZRSgqQxVRvvNB0MaEnFMzQqjUffecoDE9eI=",
+ "lastModified": 1641710811,
+ "narHash": "sha256-yVJ+CtwWZY8BnkNIJ/ue5a28yrRM6CkDF1LvmGmqqwM=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "581d2d6c9cd5c289002203581d8aa0861963a933",
+ "rev": "0ecf7d414811f831060cf55707c374d54fbb1dec",
"type": "github"
},
"original": {
@@ -16,9 +16,26 @@
"type": "github"
}
},
+ "nmdSrc": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1637239786,
+ "narHash": "sha256-l2KsnY537mz0blZdqALZKrWXn9PD39CpvotgPnxyIP4=",
+ "owner": "rycee",
+ "repo": "nmd",
+ "rev": "527245ff605bde88c2dd2ddae21c6479bb7cf8aa",
+ "type": "gitlab"
+ },
+ "original": {
+ "owner": "rycee",
+ "repo": "nmd",
+ "type": "gitlab"
+ }
+ },
"root": {
"inputs": {
- "nixpkgs": "nixpkgs"
+ "nixpkgs": "nixpkgs",
+ "nmdSrc": "nmdSrc"
}
}
},
diff --git a/flake.nix b/flake.nix
index 8e49dc8e..7cadbc9c 100644
--- a/flake.nix
+++ b/flake.nix
@@ -3,7 +3,15 @@
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
- outputs = { self, nixpkgs, ... }@inputs: rec {
+ inputs.nmdSrc.url = "gitlab:rycee/nmd";
+ inputs.nmdSrc.flake = false;
+
+ outputs = { self, nixpkgs, nmdSrc, ... }@inputs: rec {
+ packages."x86_64-linux".docs = import ./docs {
+ pkgs = import nixpkgs { system = "x86_64-linux"; };
+ lib = nixpkgs.lib;
+ };
+
nixosModules.nixvim = import ./nixvim.nix { nixos = true; };
homeManagerModules.nixvim = import ./nixvim.nix { homeManager = true; };
diff --git a/nixvim.nix b/nixvim.nix
index aeff199c..729b1833 100644
--- a/nixvim.nix
+++ b/nixvim.nix
@@ -1,5 +1,5 @@
{ nixos ? false, nixOnDroid ? false, homeManager ? false }:
-{ pkgs, lib, config, ... }:
+{ pkgs , lib, config, ... }:
with lib;
let
cfg = config.programs.nixvim;
@@ -100,8 +100,9 @@ in
};
colorscheme = mkOption {
- type = types.str;
+ type = types.nullOr types.str;
description = "The name of the colorscheme";
+ default = null;
};
extraConfigLua = mkOption {
@@ -126,6 +127,7 @@ in
configure = mkOption {
type = types.attrsOf types.anything;
default = { };
+ description = "Internal option";
};
options = mkOption {
@@ -257,7 +259,7 @@ in
in mkIf cfg.enable (if nixos then {
environment.systemPackages = [ wrappedNeovim ];
- programs.nixvim = {
+ programs.neovim = {
configure = configure;
extraConfigLua = extraConfigLua;
@@ -273,14 +275,5 @@ in
extraConfig = configure.customRC;
plugins = cfg.extraPlugins;
};
- } else {
- environment.packages = [ wrappedNeovim ];
- programs.nixvim = {
- configure = configure;
-
- extraConfigLua = extraConfigLua;
- };
-
- environment.etc."xdg/nvim/sysinit.vim".text = neovimConfig.neovimRcContent;
- }));
+ } else {}));
}
diff --git a/plugins/git/gitgutter.nix b/plugins/git/gitgutter.nix
index 4995e3df..a8655584 100644
--- a/plugins/git/gitgutter.nix
+++ b/plugins/git/gitgutter.nix
@@ -91,7 +91,7 @@ in {
};
grep = mkOption {
- type = types.nullOr (types.oneOf [ types.submodule {
+ type = types.nullOr (types.oneOf [ (types.submodule {
options = {
command = mkOption {
type = types.str;
@@ -103,7 +103,7 @@ in {
description = "The package of the grep alternative to use";
};
};
- } types.str]);
+ }) types.str]);
default = null;
description = "A non-standard grep to use instead of the default";
};
diff --git a/plugins/statuslines/airline.nix b/plugins/statuslines/airline.nix
index 696c4b9d..f58b75e4 100644
--- a/plugins/statuslines/airline.nix
+++ b/plugins/statuslines/airline.nix
@@ -30,12 +30,14 @@ in {
sections = mkOption {
default = null;
type = with types; nullOr (submodule {
- a = sectionOption;
- b = sectionOption;
- c = sectionOption;
- x = sectionOption;
- y = sectionOption;
- z = sectionOption;
+ options = {
+ a = sectionOption;
+ b = sectionOption;
+ c = sectionOption;
+ x = sectionOption;
+ y = sectionOption;
+ z = sectionOption;
+ };
});
};
diff --git a/plugins/statuslines/lightline.nix b/plugins/statuslines/lightline.nix
index 5260bfed..3cfff5a4 100644
--- a/plugins/statuslines/lightline.nix
+++ b/plugins/statuslines/lightline.nix
@@ -21,7 +21,7 @@ in {
description = ''
A list of function component definitions.
- You should define the functions themselves in extraConfig
+ You should define the functions themselves in extraConfig
'';
example = ''
programs.nixvim.plugins.lightline = {
diff --git a/plugins/utils/comment-nvim.nix b/plugins/utils/comment-nvim.nix
index 2904a5cc..80873d85 100644
--- a/plugins/utils/comment-nvim.nix
+++ b/plugins/utils/comment-nvim.nix
@@ -64,8 +64,7 @@ in
options = {
basic = mkOption {
type = types.bool;
- description = "operator-pending mapping. Includes 'gcc', 'gcb', 'gc[count]{motion}'
- and 'gb[count]{motion}'";
+ description = "operator-pending mapping. Includes 'gcc', 'gcb', 'gc[count]{motion}' and 'gb[count]{motion}'";
default = true;
};
extra = mkOption {
@@ -75,8 +74,7 @@ in
};
extended = mkOption {
type = types.bool;
- description = "extended mapping. Includes 'g>', 'g<', 'g>[count]{motion}' and
- 'g<[count]{motion}'";
+ description = "extended mapping. Includes 'g>', 'g<', 'g>[count]{motion}' and 'g<[count]{motion}'";
default = false;
};
};
diff --git a/plugins/utils/floaterm.nix b/plugins/utils/floaterm.nix
index 4441ba1b..e9d52b4b 100644
--- a/plugins/utils/floaterm.nix
+++ b/plugins/utils/floaterm.nix
@@ -23,12 +23,12 @@ in
};
winWidth = mkOption {
type = types.nullOr types.float;
- description = "number of columns relative to &columns.";
+ description = "number of columns relative to &columns.";
default = null;
};
winHeight = mkOption {
type = types.nullOr types.float;
- description = "number of lines relative to &lines.";
+ description = "number of lines relative to &lines.";
default = null;
};
borderChars = mkOption {
@@ -38,7 +38,7 @@ in
};
rootMarkers = mkOption {
type = types.nullOr (types.listOf types.str);
- description = "Markers used to detect the project root directory for --cwd=";
+ description = "Markers used to detect the project root directory for --cwd=<root>";
default = null;
};
opener = mkOption {
diff --git a/plugins/utils/startify.nix b/plugins/utils/startify.nix
index 1df6771c..de5d2a98 100644
--- a/plugins/utils/startify.nix
+++ b/plugins/utils/startify.nix
@@ -17,23 +17,25 @@ mkPlugin args {
lists = mkDefaultOpt {
description = "Startify display lists. If it's a string, it'll be interpreted as literal lua code";
global = "startify_lists";
- type = types.listOf (types.oneOf [types.submodule {
- type = mkOption {
- type = types.str;
- description = "The type of the list";
+ type = types.listOf (types.oneOf [(types.submodule {
+ options = {
+ type = mkOption {
+ type = types.str;
+ description = "The type of the list";
+ };
+ # TODO the header should be a literal lua string!
+ header = mkOption {
+ type = types.nullOr (types.listOf types.str);
+ description = "Optional header. It's a list of strings";
+ default = null;
+ };
+ indices = mkOption {
+ type = types.nullOr (types.listOf types.str);
+ description = "Optional indices for the current list";
+ default = null;
+ };
};
- # TODO the header should be a literal lua string!
- header = mkOption {
- type = types.nullOr (types.listOf types.str);
- description = "Optional header. It's a list of strings";
- default = null;
- };
- indices = mkOption {
- type = types.nullOr (types.listOf types.str);
- description = "Optional indices for the current list";
- default = null;
- };
- } types.str]);
+ }) types.str]);
value = val: let
list = map (v: if builtins.isAttrs v then toLuaObject v else v) val;
@@ -131,7 +133,7 @@ mkPlugin args {
};
enableSpecial = mkDefaultOpt {
- description = "Show and ";
+ description = "Show <empty buffer> and <quit>";
global = "startify_enable_special";
type = types.bool;
};