mirror of
https://github.com/NotAShelf/neovim-flake.git
synced 2024-11-07 13:45:58 +01:00
wrapper/rc: add vim.additionaLuafiles
Allows the user to specify a list of lua files that will be called via `luafile`. All paths that are passed to this option are checked by `builtins.isPath` so attempting to source paths that do not exist do not result in a broken Lua configuration.
This commit is contained in:
parent
7c1a8e2c1e
commit
407ecf00d5
3 changed files with 57 additions and 9 deletions
|
@ -6,13 +6,14 @@ Release notes for release 0.7
|
|||
|
||||
[ItsSorae](https://github.com/ItsSorae):
|
||||
|
||||
- Added support for [typst](https://typst.app/) under `vim.languages.typst`
|
||||
This will enable the `typst-lsp` language server, and the `typstfmt` formatter
|
||||
- Added support for [typst](https://typst.app/) under `vim.languages.typst` This
|
||||
will enable the `typst-lsp` language server, and the `typstfmt` formatter
|
||||
|
||||
[frothymarrow](https://github.com/frothymarrow):
|
||||
|
||||
- Modified type for [](#opt-vim.visuals.fidget-nvim.setupOpts.progress.display.overrides)
|
||||
from `anything` to a `submodule` for better type checking.
|
||||
- Modified type for
|
||||
[](#opt-vim.visuals.fidget-nvim.setupOpts.progress.display.overrides) from
|
||||
`anything` to a `submodule` for better type checking.
|
||||
- Fix null `vim.lsp.mappings` generating an error and not being filtered out.
|
||||
|
||||
[horriblename](https://github.com/horriblename):
|
||||
|
@ -25,6 +26,9 @@ Release notes for release 0.7
|
|||
automatically if you have autoformatting enabled, but can be disabled manually
|
||||
if you choose to.
|
||||
|
||||
- Add `vim.extraLuaFiles` for optionally sourcing additional lua files in your
|
||||
configuration.
|
||||
|
||||
- Refactor `programs.languages.elixir` to use lspconfig and none-ls for LSP and
|
||||
formatter setups respectively. Diagnostics support is considered, and may be
|
||||
added once the [credo](https://github.com/rrrene/credo) linter has been added
|
||||
|
|
|
@ -133,6 +133,14 @@ in {
|
|||
configRC = {
|
||||
globalsScript = entryAnywhere (concatStringsSep "\n" globalsScript);
|
||||
|
||||
# Call additional lua files with :luafile in Vimscript
|
||||
# section of the configuration, only after
|
||||
# the luaScript section has been evaluated
|
||||
extraLuaFiles = let
|
||||
callLuaFiles = map (file: "luafile ${file}") cfg.extraLuaFiles;
|
||||
in
|
||||
entryAfter ["globalScript"] (concatStringsSep "\n" callLuaFiles);
|
||||
|
||||
# wrap the lua config in a lua block
|
||||
# using the wrapLuaConfic function from the lib
|
||||
luaScript = let
|
||||
|
@ -148,7 +156,7 @@ in {
|
|||
inherit mapResult;
|
||||
};
|
||||
in
|
||||
entryAfter ["globalsScript"] luaConfig;
|
||||
entryAnywhere luaConfig;
|
||||
|
||||
extraPluginConfigs = let
|
||||
mapResult = result: (wrapLuaConfig {
|
||||
|
|
|
@ -37,8 +37,8 @@ in {
|
|||
To avoid leaking imperative user configuration into your
|
||||
configuration, this is enabled by default. If you wish
|
||||
to load configuration from user configuration directories
|
||||
(e.g. `$HOME/.config/nvim`, `$HOME/.config/nvim/after`
|
||||
and `$HOME/.local/share/nvim/site`) you may set this
|
||||
(e.g. {file}`$HOME/.config/nvim`, {file}`$HOME/.config/nvim/after`
|
||||
and {file}`$HOME/.local/share/nvim/site`) you may set this
|
||||
option to true.
|
||||
:::
|
||||
'';
|
||||
|
@ -68,16 +68,52 @@ in {
|
|||
active runtimepath of the Neovim. This can be used to
|
||||
add additional lookup paths for configs, plugins, spell
|
||||
languages and other things you would generally place in
|
||||
your `$HOME/.config/nvim`.
|
||||
your {file}`$HOME/.config/nvim`.
|
||||
|
||||
This is meant as a declarative alternative to throwing
|
||||
files into `~/.config/nvim` and having the Neovim
|
||||
files into {file}`~/.config/nvim` and having the Neovim
|
||||
wrapper pick them up. For more details on
|
||||
`vim.o.runtimepath`, and what paths to use; please see
|
||||
[the official documentation](https://neovim.io/doc/user/options.html#'runtimepath')
|
||||
'';
|
||||
};
|
||||
|
||||
extraLuaFiles = mkOption {
|
||||
type = listOf (either path str);
|
||||
default = [];
|
||||
example = literalExpression ''
|
||||
[
|
||||
# absolute path, as a string - impure
|
||||
"$HOME/.config/nvim/my-lua-file.lua"
|
||||
|
||||
# relative path, as a path - pure
|
||||
./nvim/my-lua-file.lua
|
||||
|
||||
# source type path - pure and reproducible
|
||||
(builtins.source {
|
||||
path = ./nvim/my-lua-file.lua;
|
||||
name = "my-lua-file";
|
||||
})
|
||||
]
|
||||
'';
|
||||
|
||||
description = ''
|
||||
Additional lua files that will be sourced by Neovim.
|
||||
Takes both absolute and relative paths, all of which
|
||||
will be called via the `luafile` command in Neovim.
|
||||
|
||||
See [lua-commands](https://neovim.io/doc/user/lua.html#lua-commands)
|
||||
on the Neovim documentation for more details.
|
||||
|
||||
::: {.warning}
|
||||
All paths passed to this option must be valid. If Neovim cannot
|
||||
resolve the path you are attempting to sourcee, then your configuration
|
||||
will error, and Neovim will not start. Please ensure that all paths
|
||||
are correct before using this option.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
globals = mkOption {
|
||||
type = attrs;
|
||||
default = {};
|
||||
|
|
Loading…
Reference in a new issue