This speeds up evaluation and removes IFD. Additionally, this makes it
easier to maintain these library changes, as we don't have to maintain
static patches.
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
This commit only adds Home-Manager specific options, we should add
sections for the different kind of modules too.
This is _not_ added to the man docs, as it is more complex. If need
arises we could look into how to do it.
Including the `moduleDoc` text directly in the `copy_docs` script meant
special chars were interpreted by bash.
Write the text to the nix store so we can `cat` a file instead.
This adds the `nixvimExtend` attribute to the generated standalone
derivation, this attribute takes a module as an argument and returns a
new standalone derivation with the initial module & the extended module
merged together.
* plugin/committia: Use correct maintainers import
* plugins/neocord: Remove redyf as the entry is not in the list
* docs: Allow to add an URL to the plugin
In our basic template we used to provide a check based on
`mkTestDerivationFromNvim`. The issue with this check (that is handled
correctly internally) is that some plugins _can't_ be used in the test
environment, for example image.nvim like in #1085.
This commit introduces a new function to generate such checks,
`mkTestDerivationFromNixvimModule`, that wraps a nixvim configuration
instead of a built nvim instance.
Then a configuration can rely on the newly added
`helpers.enableExceptInTests` attribute to disable parts of the
configuration depending if it is evaluated in tests or in a real final
configuration.
Resolves#1085
This requires pulling quite a lot of code from nixpkgs in order to
make the `either` type work correctly, the effects can be seen for
example in the documentation of `ollama.promps` and `ollama.actions`
* docs: mdbook init
* Separate sub-options into their section
* docs: enable fold
* docs: merge core options into a single section
* doc generation: fix submodules index pages
* docs: add contributing section
* docs: rename 'core' group to 'Neovim Options'
docs: removed the index pages of empty sections
docs: remove obsolete 'mergeFunctionResults' function
* docs: use nix syntax highlighting
* docs: point to the new repo url
* docs: use recursive generation
docs: split submodules into subsections
* docs: fix contributing separator
docs: fix missing submodules docs
This represents a major rearchitecture for nixvim, so I'm leaving this up to track the progress for now, and to serve as a reference for any breaking changes during transition.
The main change is, of course, being able to use nixvim standalone. To do this, you should use the new build function, which takes in two arguments: the system architecture (e.g. x86_64-linux) and the configuration. For the new configuration, do not use the programs.nixvim. prefix.
For module development, the main change is that you should no longer prefix your modules with programs.nixvim..
You can now run `nix build '.#docs'` to build HTML documentation
documenting every single option on nixvim! Fortunately, thanks to
the 'description' field, most options are already documented, but
there are still a fair few that need documenting.
I will be taking care of those in the next few days. When those are
done, I will find a way to automatically rebuild documentation on every
repo push, and also add a PR hook requiring documentation.
Additionally, I will try to find a way to have per-page plugin docs.