mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-02-23 20:08:30 +00:00
Compare commits
3 commits
2a47a4fdaf
...
9fa922b1c6
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9fa922b1c6 | ||
ab9a7c1600 | |||
![]() |
c957b23aaa |
5 changed files with 46 additions and 17 deletions
2
.github/CONTRIBUTING.md
vendored
2
.github/CONTRIBUTING.md
vendored
|
@ -16,7 +16,7 @@ If you have any questions regarding those files, feel free to open an issue or [
|
|||
|
||||
## Contributing
|
||||
|
||||
The contribution process is mostly documented in the [pull request template](.github/pull_request_template.md). You will find a checklist of items to complete before submitting a pull request. Please make sure you complete it before submitting a pull request. If you are unsure about any of the items, please ask.
|
||||
The contribution process is mostly documented in the [pull request template](pull_request_template.md). You will find a checklist of items to complete before submitting a pull request. Please make sure you complete it before submitting a pull request. If you are unsure about any of the items, please ask.
|
||||
|
||||
### Guidelines
|
||||
|
||||
|
|
|
@ -5,16 +5,19 @@ can add code that relies on other code. However, if you don't know what the
|
|||
entries are called, it's hard to do that, so here is a list of the internal
|
||||
entries in nvf:
|
||||
|
||||
`vim.luaConfigRC` (top-level DAG):
|
||||
## `vim.luaConfigRC` (top-level DAG) {#ch-vim-luaconfigrc}
|
||||
|
||||
1. (`luaConfigPre`) - not a part of the actual DAG, instead, it's simply
|
||||
inserted before the rest of the DAG
|
||||
2. `globalsScript` - used to set globals defined in `vim.globals`
|
||||
3. `basic` - used to set basic configuration options
|
||||
4. `theme` (this is simply placed before `pluginConfigs`, meaning that surrounding entries don't depend on it) - used to set up the theme, which has to be done before other plugins
|
||||
5. `pluginConfigs` - the result of the nested `vim.pluginRC` (internal option,
|
||||
see the [Custom Plugins](/index.xhtml#ch-custom-plugins) page for adding your own
|
||||
plugins) DAG, used to set up internal plugins
|
||||
6. `extraPluginConfigs` - the result of `vim.extraPlugins`, which is not a
|
||||
4. `optionsScript` - used to set options defined in `vim.o`
|
||||
5. `theme` (this is simply placed before `pluginConfigs`, meaning that
|
||||
surrounding entries don't depend on it) - used to set up the theme, which has
|
||||
to be done before other plugins
|
||||
6. `pluginConfigs` - the result of the nested `vim.pluginRC` (internal option,
|
||||
see the [Custom Plugins](/index.xhtml#ch-custom-plugins) page for adding your
|
||||
own plugins) DAG, used to set up internal plugins
|
||||
7. `extraPluginConfigs` - the result of `vim.extraPlugins`, which is not a
|
||||
direct DAG, but is converted to, and resolved as one internally
|
||||
7. `mappings` - the result of `vim.maps`
|
||||
8. `mappings` - the result of `vim.maps`
|
||||
|
|
|
@ -80,10 +80,11 @@
|
|||
maps);
|
||||
in {
|
||||
config = let
|
||||
filterNonNull = attrs: filterAttrs (_: value: value != null) attrs;
|
||||
globalsScript =
|
||||
mapAttrsToList (name: value: "vim.g.${name} = ${toLuaObject value}")
|
||||
(filterNonNull cfg.globals);
|
||||
mapAttrsToList (name: value: "vim.g.${name} = ${toLuaObject value}") cfg.globals;
|
||||
|
||||
optionsScript =
|
||||
mapAttrsToList (name: value: "vim.o.${name} = ${toLuaObject value}") cfg.options;
|
||||
|
||||
extraPluginConfigs = resolveDag {
|
||||
name = "extra plugin configs";
|
||||
|
@ -132,9 +133,12 @@ in {
|
|||
in {
|
||||
vim = {
|
||||
luaConfigRC = {
|
||||
# `vim.g` and `vim.o`
|
||||
globalsScript = entryAnywhere (concatLines globalsScript);
|
||||
# basic
|
||||
pluginConfigs = entryAfter ["basic"] pluginConfigs;
|
||||
optionsScript = entryAfter ["basic"] (concatLines optionsScript);
|
||||
|
||||
# Basic
|
||||
pluginConfigs = entryAfter ["optionsScript"] pluginConfigs;
|
||||
extraPluginConfigs = entryAfter ["pluginConfigs"] extraPluginConfigs;
|
||||
mappings = entryAfter ["extraPluginConfigs"] mappings;
|
||||
};
|
||||
|
|
|
@ -129,16 +129,38 @@ in {
|
|||
globals = mkOption {
|
||||
type = attrs;
|
||||
default = {};
|
||||
example = {"some_variable" = 42;};
|
||||
description = ''
|
||||
An attribute set containing global variable values
|
||||
for storing vim variables as early as possible. If
|
||||
populated, this option will set vim variables in the
|
||||
built luaConfigRC as the first item.
|
||||
|
||||
E.g. {foo = "bar"} will set `vim.g.foo` to "bar" where
|
||||
the type of `bar` in the resulting vimscript will be
|
||||
infered from the type of the value in the `{name = value}`
|
||||
pair.
|
||||
::: {.note}
|
||||
`{foo = "bar";}` will set `vim.g.foo` to "bar", where
|
||||
the type of `bar` in the resulting Lua value will be
|
||||
inferred from the type of the value in the `{name = value;}`
|
||||
pair passed to the option.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
options = mkOption {
|
||||
type = attrs;
|
||||
default = {};
|
||||
example = {visualbell = true;};
|
||||
description = ''
|
||||
An attribute set containing vim options to be set
|
||||
as early as possible. If populated, this option will
|
||||
set vim options in the built luaConfigRC after `basic`
|
||||
and before `pluginConfigs` DAG entries.
|
||||
|
||||
::: {.note}
|
||||
`{foo = "bar";}` will set `vim.o.foo` to "bar", where
|
||||
the type of `bar` in the resulting Lua value will be
|
||||
inferred from the type of the value in the`{name = value;}`
|
||||
pair passed to the option.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue