diff --git a/docs/manual.nix b/docs/manual.nix index 132c20ef..5c2a234d 100644 --- a/docs/manual.nix +++ b/docs/manual.nix @@ -2,13 +2,13 @@ inputs, path, stdenvNoCC, - runCommandLocal, + runCommandNoCCLocal, optionsJSON, release, } @ args: let manual-release = args.release or "unstable"; in - runCommandLocal "nvf-docs-html" { + runCommandNoCCLocal "nvf-docs-html" { nativeBuildInputs = [ (inputs.ndg.packages.${stdenvNoCC.system}.ndg.overrideAttrs { diff --git a/docs/manual/configuring.md b/docs/manual/configuring.md index 99e1755f..4c119bee 100644 --- a/docs/manual/configuring.md +++ b/docs/manual/configuring.md @@ -1,7 +1,7 @@ # Configuring nvf {#ch-configuring} -[helpful tips section]: ./tips.html#ch-helpful-tips -[options reference]: ./options.html +[helpful tips section]: #ch-helpful-tips +[options reference]: /nvf/options.html nvf allows for _very_ extensive configuration in Neovim through the Nix module interface. The below chapters describe several of the options exposed in nvf for diff --git a/docs/manual/configuring/custom-plugins/legacy-method.md b/docs/manual/configuring/custom-plugins/legacy-method.md index f4976e5f..e7821712 100644 --- a/docs/manual/configuring/custom-plugins/legacy-method.md +++ b/docs/manual/configuring/custom-plugins/legacy-method.md @@ -1,17 +1,17 @@ # Legacy Method {#sec-legacy-method} Prior to version **0.5**, the method of adding new plugins was adding the plugin -package to {option}`vim.startPlugins` and adding its configuration as a DAG -under one of `vim.configRC` or {option}`vim.luaConfigRC`. While `configRC` has -been deprecated, users who have not yet updated to 0.5 or those who prefer a -more hands-on approach may choose to use the old method where the load order of -the plugins is explicitly determined by DAGs without internal abstractions. +package to {option}`vim.startPlugins` and adding its configuration as a DAG under +one of `vim.configRC` or {option}`vim.luaConfigRC`. While `configRC` has been +deprecated, users who have not yet updated to 0.5 or those who prefer a more +hands-on approach may choose to use the old method where the load order of the +plugins is explicitly determined by DAGs without internal abstractions. ## Adding New Plugins {#sec-adding-new-plugins} To add a plugin not available in **nvf** as a module to your configuration using -the legacy method, you must add it to {option}`vim.startPlugins` in order to -make it available to Neovim at runtime. +the legacy method, you must add it to {option}`vim.startPlugins` in order to make +it available to Neovim at runtime. ```nix {pkgs, ...}: { diff --git a/docs/manual/configuring/languages.md b/docs/manual/configuring/languages.md index f956a0e3..bd2e487d 100644 --- a/docs/manual/configuring/languages.md +++ b/docs/manual/configuring/languages.md @@ -6,87 +6,49 @@ formatters, and `nvim-lint` linter integration. This gets you capabilities ranging from autocompletion to formatting to diagnostics. The following languages have sections under the `vim.languages` attribute. -- Rust: - [vim.languages.rust.enable](./options.html#option-vim-languages-rust-enable) -- Nix: - [vim.languages.nix.enable](./options.html#option-vim-languages-nix-enable) -- SQL: - [vim.languages.sql.enable](./options.html#option-vim-languages-sql-enable) -- C/C++: - [vim.languages.clang.enable](./options.html#option-vim-languages-clang-enable) -- Typescript/Javascript: - [vim.languages.ts.enable](./options.html#option-vim-languages-ts-enable) -- Python: - [vim.languages.python.enable](./options.html#option-vim-languages-python-enable): -- Zig: - [vim.languages.zig.enable](./options.html#option-vim-languages-zig-enable) -- Markdown: - [vim.languages.markdown.enable](./options.html#option-vim-languages-markdown-enable) -- HTML: - [vim.languages.html.enable](./options.html#option-vim-languages-html-enable) -- Dart: - [vim.languages.dart.enable](./options.html#option-vim-languages-dart-enable) -- Go: [vim.languages.go.enable](./options.html#option-vim-languages-go-enable) -- Lua: - [vim.languages.lua.enable](./options.html#option-vim-languages-lua-enable) -- PHP: - [vim.languages.php.enable](./options.html#option-vim-languages-php-enable) -- F#: - [vim.languages.fsharp.enable](./options.html#option-vim-languages-fsharp-enable) -- Assembly: - [vim.languages.assembly.enable](./options.html#option-vim-languages-assembly-enable) -- Astro: - [vim.languages.astro.enable](./options.html#option-vim-languages-astro-enable) -- Bash: - [vim.languages.bash.enable](./options.html#option-vim-languages-bash-enable) -- Clang: - [vim.languages.clang.enable](./options.html#option-vim-languages-clang-enable) -- Clojure: - [vim.languages.clojure.enable](./options.html#option-vim-languages-clojure-enable) -- C#: - [vim.languages.csharp.enable](./options.html#option-vim-languages-csharp-enable) -- CSS: - [vim.languages.css.enable](./options.html#option-vim-languages-css-enable) -- CUE: - [vim.languages.cue.enable](./options.html#option-vim-languages-cue-enable) -- Elixir: - [vim.languages.elixir.enable](./options.html#option-vim-languages-elixir-enable) -- Gleam: - [vim.languages.gleam.enable](./options.html#option-vim-languages-gleam-enable) -- HCL: - [vim.languages.hcl.enable](./options.html#option-vim-languages-hcl-enable) -- Helm: - [vim.languages.helm.enable](./options.html#option-vim-languages-helm-enable) -- Julia: - [vim.languages.julia.enable](./options.html#option-vim-languages-julia-enable) -- Kotlin: - [vim.languages.kotlin.enable](./options.html#option-vim-languages-kotlin-enable) -- Nim: - [vim.languages.nim.enable](./options.html#option-vim-languages-nim-enable) -- Nu: [vim.languages.nu.enable](./options.html#option-vim-languages-nu-enable) -- OCaml: - [vim.languages.ocaml.enable](./options.html#option-vim-languages-ocaml-enable) -- Odin: - [vim.languages.odin.enable](./options.html#option-vim-languages-odin-enable) -- R: [vim.languages.r.enable](./options.html#option-vim-languages-r-enable) -- Ruby: - [vim.languages.ruby.enable](./options.html#option-vim-languages-ruby-enable) -- Scala: - [vim.languages.scala.enable](./options.html#option-vim-languages-scala-enable) -- Svelte: - [vim.languages.svelte.enable](./options.html#option-vim-languages-svelte-enable) -- Tailwind: - [vim.languages.tailwind.enable](./options.html#option-vim-languages-tailwind-enable) +- Rust: [vim.languages.rust.enable](#opt-vim.languages.rust.enable) +- Nix: [vim.languages.nix.enable](#opt-vim.languages.nix.enable) +- SQL: [vim.languages.sql.enable](#opt-vim.languages.sql.enable) +- C/C++: [vim.languages.clang.enable](#opt-vim.languages.clang.enable) +- Typescript/Javascript: [vim.languages.ts.enable](#opt-vim.languages.ts.enable) +- Python: [vim.languages.python.enable](#opt-vim.languages.python.enable): +- Zig: [vim.languages.zig.enable](#opt-vim.languages.zig.enable) +- Markdown: [vim.languages.markdown.enable](#opt-vim.languages.markdown.enable) +- HTML: [vim.languages.html.enable](#opt-vim.languages.html.enable) +- Dart: [vim.languages.dart.enable](#opt-vim.languages.dart.enable) +- Go: [vim.languages.go.enable](#opt-vim.languages.go.enable) +- Lua: [vim.languages.lua.enable](#opt-vim.languages.lua.enable) +- PHP: [vim.languages.php.enable](#opt-vim.languages.php.enable) +- F#: [vim.languages.fsharp.enable](#opt-vim.languages.fsharp.enable) +- Assembly: [vim.languages.assembly.enable](#opt-vim.languages.assembly.enable) +- Astro: [vim.languages.astro.enable](#opt-vim.languages.astro.enable) +- Bash: [vim.languages.bash.enable](#opt-vim.languages.bash.enable) +- Clang: [vim.languages.clang.enable](#opt-vim.languages.clang.enable) +- Clojure: [vim.languages.clojure.enable](#opt-vim.languages.clojure.enable) +- C#: [vim.languages.csharp.enable](#opt-vim.languages.csharp.enable) +- CSS: [vim.languages.css.enable](#opt-vim.languages.css.enable) +- CUE: [vim.languages.cue.enable](#opt-vim.languages.cue.enable) +- Elixir: [vim.languages.elixir.enable](#opt-vim.languages.elixir.enable) +- Gleam: [vim.languages.gleam.enable](#opt-vim.languages.gleam.enable) +- HCL: [vim.languages.hcl.enable](#opt-vim.languages.hcl.enable) +- Helm: [vim.languages.helm.enable](#opt-vim.languages.helm.enable) +- Julia: [vim.languages.julia.enable](#opt-vim.languages.julia.enable) +- Kotlin: [vim.languages.kotlin.enable](#opt-vim.languages.kotlin.enable) +- Nim: [vim.languages.nim.enable](#opt-vim.languages.nim.enable) +- Nu: [vim.languages.nu.enable](#opt-vim.languages.nu.enable) +- OCaml: [vim.languages.ocaml.enable](#opt-vim.languages.ocaml.enable) +- Odin: [vim.languages.odin.enable](#opt-vim.languages.odin.enable) +- R: [vim.languages.r.enable](#opt-vim.languages.r.enable) +- Ruby: [vim.languages.ruby.enable](#opt-vim.languages.ruby.enable) +- Scala: [vim.languages.scala.enable](#opt-vim.languages.scala.enable) +- Svelte: [vim.languages.svelte.enable](#opt-vim.languages.svelte.enable) +- Tailwind: [vim.languages.tailwind.enable](#opt-vim.languages.tailwind.enable) - Terraform: - [vim.languages.terraform.enable](./options.html#option-vim-languages-terraform-enable) -- Typst: - [vim.languages.typst.enable](./options.html#option-vim-languages-typst-enable) -- Vala: - [vim.languages.vala.enable](./options.html#option-vim-languages-vala-enable) -- WGSL: - [vim.languages.wgsl.enable](./options.html#option-vim-languages-wgsl-enable) -- YAML: - [vim.languages.yaml.enable](./options.html#option-vim-languages-yaml-enable) + [vim.languages.terraform.enable](#opt-vim.languages.terraform.enable) +- Typst: [vim.languages.typst.enable](#opt-vim.languages.typst.enable) +- Vala: [vim.languages.vala.enable](#opt-vim.languages.vala.enable) +- WGSL: [vim.languages.wgsl.enable](#opt-vim.languages.wgsl.enable) +- YAML: [vim.languages.yaml.enable](#opt-vim.languages.yaml.enable) Adding support for more languages, and improving support for existing ones are great places where you can contribute with a PR. diff --git a/docs/manual/configuring/overriding-plugins.md b/docs/manual/configuring/overriding-plugins.md index 55979ce7..223bf5b6 100644 --- a/docs/manual/configuring/overriding-plugins.md +++ b/docs/manual/configuring/overriding-plugins.md @@ -1,10 +1,10 @@ # Overriding plugins {#ch-overriding-plugins} -The [additional plugins section](./hacking.html#sec-additional-plugins) details -the addition of new plugins to nvf under regular circumstances, i.e. while -making a pull request to the project. You may _override_ those plugins in your -config to change source versions, e.g., to use newer versions of plugins that -are not yet updated in **nvf**. +The [additional plugins section](#sec-additional-plugins) details the addition +of new plugins to nvf under regular circumstances, i.e. while making a pull +request to the project. You may _override_ those plugins in your config to +change source versions, e.g., to use newer versions of plugins that are not yet +updated in **nvf**. ```nix vim.pluginOverrides = { diff --git a/docs/manual/hacking.md b/docs/manual/hacking.md index 7af0fed9..85bb3ed1 100644 --- a/docs/manual/hacking.md +++ b/docs/manual/hacking.md @@ -273,7 +273,8 @@ An example, simple keybinding, can look like this: ``` There are many settings available in the options. Please refer to the -[documentation](./options.html#option-vim-keymaps) to see a list of them. +[documentation](https://notashelf.github.io/nvf/options.html#opt-vim.keymaps) to +see a list of them. **nvf** provides a helper function, so that you don't have to write the mapping attribute sets every time: @@ -600,7 +601,7 @@ require('lz.n').load({ }) ``` -[`vim.lazy.plugins` spec]: ./options.html#option-vim-lazy-plugins +[`vim.lazy.plugins` spec]: https://notashelf.github.io/nvf/options.html#opt-vim.lazy.plugins A full list of options can be found in the [`vim.lazy.plugins` spec] on the rendered manual. diff --git a/docs/manual/release-notes/rl-0.1.md b/docs/manual/release-notes/rl-0.1.md index bdb922b5..91037f2a 100644 --- a/docs/manual/release-notes/rl-0.1.md +++ b/docs/manual/release-notes/rl-0.1.md @@ -15,7 +15,7 @@ DAG implementation are from them. longer defined. If you use hare and would like it added back, please file an issue. -- {option}`vim.startPlugins` & {option} `vim-optPlugins` are now an enum of +- {option}`vim.startPlugins) & [](#opt-vim.optPlugins` are now an enum of `string` for options sourced from the flake inputs. Users can still provide vim plugin packages. @@ -44,6 +44,5 @@ vim.luaConfigRC = lib.nvim.dag.entryAnywhere "config here" [MoritzBoehme](https://github.com/MoritzBoehme): -- `catppuccin` theme is now available as a neovim theme - {option}`vim.theme.style` and Lualine theme - {option}`vim.statusline.lualine.theme`. +- `catppuccin` theme is now available as a neovim theme {option}`vim.theme.style` + and Lualine theme {option}`vim.statusline.lualine.theme`. diff --git a/docs/manual/release-notes/rl-0.6.md b/docs/manual/release-notes/rl-0.6.md index f40ecb43..b40e2930 100644 --- a/docs/manual/release-notes/rl-0.6.md +++ b/docs/manual/release-notes/rl-0.6.md @@ -41,7 +41,7 @@ end vim.api.nvim_set_keymap('n', 'a', ':lua camelToSnake()', { noremap = true, silent = true }) ``` -## Changelog {#sec-release-0-6-changelog} +## Changelog {#sec-release-0.6-changelog} [ksonj](https://github.com/ksonj): @@ -95,7 +95,7 @@ vim.api.nvim_set_keymap('n', 'a', ':lua camelToSnake()', { noremap = and also has been removed. - `which-key.nvim` categories can now be customized through - [vim.binds.whichKey.register](./options.html#option-vim-binds-whichKey-register) + [vim.binds.whichKey.register](#opt-vim.binds.whichKey.register) - Added `magick` to `vim.luaPackages` for `image.nvim`. @@ -125,10 +125,10 @@ vim.api.nvim_set_keymap('n', 'a', ':lua camelToSnake()', { noremap = - Lualine module now allows customizing `always_divide_middle`, `ignore_focus` and `disabled_filetypes` through the new options: - [vim.statusline.lualine.alwaysDivideMiddle](./options.html#option-vim-statusline-lualine-alwaysDivideMiddle), - [vim.statusline.lualine.ignoreFocus](./options.html#option-vim-statusline-lualine-ignoreFocus) + [vim.statusline.lualine.alwaysDivideMiddle](#opt-vim.statusline.lualine.alwaysDivideMiddle), + [vim.statusline.lualine.ignoreFocus](#opt-vim.statusline.lualine.ignoreFocus) and - [vim.statusline.lualine.disabledFiletypes](./options.html#option-vim-statusline-lualine-disabledFiletypes). + [vim.statusline.lualine.disabledFiletypes](#opt-vim.statusline.lualine.disabledFiletypes). - Updated all plugin inputs to their latest versions (**21.04.2024**) - this brought minor color changes to the Catppuccin theme. @@ -159,10 +159,10 @@ vim.api.nvim_set_keymap('n', 'a', ':lua camelToSnake()', { noremap = arguments to take `luaBefore`, `luaConfig` and `luaAfter` as strings, which are then concatted inside a lua block. -- Added {option}`vim.luaConfigPre` and {option} `vim-luaConfigPost` for - inserting verbatim Lua configuration before and after the resolved Lua DAG - respectively. Both of those options take strings as the type, so you may read - the contents of a Lua file from a given path. +- Added {option}`vim.luaConfigPre) and [](#opt-vim.luaConfigPost` for inserting + verbatim Lua configuration before and after the resolved Lua DAG respectively. + Both of those options take strings as the type, so you may read the contents + of a Lua file from a given path. - Added `vim.spellchecking.ignoredFiletypes` and `vim.spellChecking.programmingWordlist.enable` for ignoring certain filetypes diff --git a/docs/manual/release-notes/rl-0.7.md b/docs/manual/release-notes/rl-0.7.md index 36d61105..4a3db6ca 100644 --- a/docs/manual/release-notes/rl-0.7.md +++ b/docs/manual/release-notes/rl-0.7.md @@ -115,7 +115,7 @@ The changes are, in no particular order: replicate the same functionality by setting `shiftwidth`, `tabstop` and `softtabstop` under `vim.options` as you see fit. -## Changelog {#sec-release-0-7-changelog} +## Changelog {#sec-release-0.7-changelog} [ItsSorae](https://github.com/ItsSorae): @@ -224,8 +224,8 @@ The changes are, in no particular order: - Remove `autocomplete.type` in favor of per-plugin enable options such as {option}`vim.autocomplete.nvim-cmp.enable`. - Deprecate legacy Vimsnip in favor of Luasnip, and integrate - friendly-snippets for bundled snippets. - {option}`vim.snippets.luasnip.enable` can be used to toggle Luasnip. + friendly-snippets for bundled snippets. {option}`vim.snippets.luasnip.enable` + can be used to toggle Luasnip. - Add sorting function options for completion sources under {option}`vim.autocomplete.nvim-cmp.setupOpts.sorting.comparators` @@ -301,8 +301,8 @@ The changes are, in no particular order: controlling the default behaviour of the `nvim-navic` component on Lualine, which used to occupy `winbar.lualine_c` as long as breadcrumbs are enabled. - `vim.ui.breadcrumbs.alwaysRender` has been renamed to - {option}`vim.ui.breadcrumbs.lualine.winbar.alwaysRender` to be conform to - the new format. + {option}`vim.ui.breadcrumbs.lualine.winbar.alwaysRender` to be conform to the + new format. - Add [basedpyright](https://github.com/detachhead/basedpyright) as a Python LSP server and make it default. diff --git a/docs/manual/release-notes/rl-0.8.md b/docs/manual/release-notes/rl-0.8.md index 62f42638..3fe354c5 100644 --- a/docs/manual/release-notes/rl-0.8.md +++ b/docs/manual/release-notes/rl-0.8.md @@ -74,7 +74,7 @@ - Add {option}`vim.lsp.lightbulb.autocmd.enable` for manually managing the previously managed lightbulb autocommand. - - A warning will occur if {option} vim-lsp-lightbulb-autocmd-enable) and + - A warning will occur if [](#opt-vim.lsp.lightbulb.autocmd.enable) and `vim.lsp.lightbulb.setupOpts.autocmd.enabled` are both set at the same time. Pick only one. @@ -85,7 +85,7 @@ - Add [yazi.nvim] as a companion plugin for Yazi, the terminal file manager. -- Add {option}`vim.autocmds` and {option}`vim-augroups` to allow declaring +- Add {option}`vim.autocmds) and [](#opt-vim.augroups` to allow declaring autocommands via Nix. - Fix plugin `setupOpts` for yanky.nvim and assert if shada is configured as a @@ -225,8 +225,8 @@ [thamenato](https://github.com/thamenato): -[ruff]: https://github.com/astral-sh/ruff -[cue]: https://cuelang.org/ +[ruff]: (https://github.com/astral-sh/ruff) +[cue]: (https://cuelang.org/) - Add [ruff] as a formatter option in `vim.languages.python.format.type`. - Add [cue] support under `vim.languages.cue`. @@ -553,7 +553,7 @@ [valterschutz](https://github.com/valterschutz): -[ruff]: https://github.com/astral-sh/ruff +[ruff]: (https://github.com/astral-sh/ruff) - Add [ruff-fix] as a formatter option in `vim.languages.python.format.type`. diff --git a/docs/manual/tips/plugin-sources.md b/docs/manual/tips/plugin-sources.md index a6f8d71d..7cf6a470 100644 --- a/docs/manual/tips/plugin-sources.md +++ b/docs/manual/tips/plugin-sources.md @@ -26,7 +26,7 @@ startup. } ``` -[`vim.extraPlugins`]: ./options.html#option-vim-extraPlugins +[`vim.extraPlugins`]: https://notashelf.github.io/nvf/options.html#opt-vim.extraPlugins This will fetch aerial.nvim from nixpkgs, and add it to Neovim's runtime path to be loaded manually. Although for plugins that require manual setup, you are @@ -43,7 +43,7 @@ encouraged to use [`vim.extraPlugins`]. } ``` -[custom plugins section]: ./configuring.html#ch-custom-plugins +[custom plugins section]: https://notashelf.github.io/nvf/index.xhtml#ch-custom-plugins More details on the extraPlugins API is documented in the [custom plugins section]. diff --git a/docs/manual/tips/pure-lua-config.md b/docs/manual/tips/pure-lua-config.md index d81d9ee5..e4ce03df 100644 --- a/docs/manual/tips/pure-lua-config.md +++ b/docs/manual/tips/pure-lua-config.md @@ -105,7 +105,7 @@ this } ``` -[DAG system]: ./configuring.html#ch-using-dags +[DAG system]: https://notashelf.github.io/nvf/index.xhtml#ch-using-dags After you load your custom configuration, you may use an `init.lua` located in your custom configuration directory to configure Neovim exactly as you would diff --git a/modules/neovim/init/spellcheck.nix b/modules/neovim/init/spellcheck.nix index 724b432d..9f635bf5 100644 --- a/modules/neovim/init/spellcheck.nix +++ b/modules/neovim/init/spellcheck.nix @@ -29,7 +29,7 @@ in { To add your own language files, you may place your `spell` directory in either {file}`$XDG_CONFIG_HOME/nvf` or in a path that is included in the - [additionalRuntimePaths](./options.html#option-vim-additionalRuntimePaths) list provided by nvf. + [additionalRuntimePaths](#opt-vim.additionalRuntimePaths) list provided by nvf. ''; }; diff --git a/modules/plugins/languages/julia.nix b/modules/plugins/languages/julia.nix index 971e9f03..577798c7 100644 --- a/modules/plugins/languages/julia.nix +++ b/modules/plugins/languages/julia.nix @@ -107,7 +107,7 @@ in { option, since there is no way to provide only the LSP server. If you want to avoid that, you have to change - {option}`vim.lsp.servers.julials.cmd` to use + [vim.lsp.servers.julials.cmd](#opt-vim.lsp.servers._name_.cmd) to use the Julia binary in {env}`PATH`, and add the `LanguageServer` package to Julia in your devshells. diff --git a/modules/wrapper/environment/options.nix b/modules/wrapper/environment/options.nix index 5b2f1f63..d3b28b0f 100644 --- a/modules/wrapper/environment/options.nix +++ b/modules/wrapper/environment/options.nix @@ -47,7 +47,7 @@ in { internally to add plugins to Neovim's runtime. To add additional plugins to your configuration, consider - using the {option}`vim.extraPlugins` + using the [{option}`vim.extraPlugins`](#opt-vim.extraPlugins) option. ''; }; diff --git a/modules/wrapper/rc/options.nix b/modules/wrapper/rc/options.nix index f1baaa17..7ba15bd8 100644 --- a/modules/wrapper/rc/options.nix +++ b/modules/wrapper/rc/options.nix @@ -284,7 +284,7 @@ in { default = ""; defaultText = literalMD '' By default, this option will **append** paths in - {option}`vim-additionalRuntimePaths` + {option}`vim.additionalRuntimePaths` to the `runtimepath` and enable the experimental Lua module loader if {option}`vim.enableLuaLoader` is set to true. '';