Matt Sturgeon
1b7efacdf4
wrappers: bootstrap "helpers" directly
...
We don't need to pass a `getHelpers` function in, since we can just
import `../lib/helpers.nix`.
2024-07-08 16:24:06 +01:00
Gaetan Lepage
6055d0f28c
lib/types: allow emptyTable as a valid rawLua value
2024-07-08 10:21:49 +02:00
Matt Sturgeon
c12694f4ba
lib/deprecation: add transitionType
...
Based on `types.coerceTo`, which is like `types.either` but coerces the
left-hand type into the right-hand type.
`transitionType` only shows the right-hand type in its description and
also prints a warning when the left-hand type is used.
Co-authored-by: Silvan Mosberger <contact@infinisil.com>
2024-07-07 16:02:37 +01:00
Matt Sturgeon
843fb302eb
lib/neovim-plugin: allow disabling installPackage
...
Some plugins may wish to handle package installation themselves.
2024-07-06 13:01:07 +01:00
Matt Sturgeon
9b25eaaa6f
lib/to-lua: fix removing empties nested in lists
...
- Add options for removing empty/null list entries (default false)
- Fix recursion into attrs that are themselves list entries
Fixes #1804
2024-07-03 16:44:30 +01:00
Matt Sturgeon
b0d8c00264
lib/vim-plugin: fix + improve settings example
...
`foo_bar = true` -> `${prefix}foo_bar=1` is incorrect and confusing.
See related issue #1741
2024-06-29 00:09:43 +01:00
Matt Sturgeon
039f6c1973
lib/lua: workaround builtins.match
alias issue
...
It seems that `with lib` isn't (always) bringing `match` into scope
Odd, but we can fix by explicitly using `builtins.match`.
2024-06-28 23:59:39 +01:00
Matt Sturgeon
7c35bdb3f7
lib/neovim-plugin: allow overriding settings description
...
- The `setup` function name can be overridden with `setup`
(default ".setup")
- The entire `settings` option description can be overridden with
`settingsDescription`
- `luaName` and `setup` are used in the default description
2024-06-28 22:58:31 +01:00
Matt Sturgeon
c351c175ec
lib/neovim-plugin: support not having settings
...
Allow callers to explicitly set `settingsOptions = null` to disable
creating the `settings` option.
`settingsOptions` still defaults to `{ }`.
2024-06-28 22:58:30 +01:00
Matt Sturgeon
aff12581d8
lib/lua: refactor toLuaObject, now configurable
...
Heavily based on nixpkgs lib.generators.toPretty
2024-06-28 22:44:43 +01:00
Jamis Hartley
479430c2d8
maintainers: add sheemap
2024-06-28 01:09:46 +01:00
Matt Sturgeon
53a9599cc4
lib/lua: pad table ,
with a space
...
Makes toLuaObject's output a little more readable.
2024-06-26 12:35:47 +01:00
Matt Sturgeon
00ce71f51a
lib/lua: only quote table keys when needed
2024-06-26 12:31:05 +01:00
Matt Sturgeon
01cf43dbaa
lib/lua: add isKeyword
and isIdentifier
...
Allow testing whether a string is a valid lua identifier or a reserved
keyword.
2024-06-26 11:40:52 +01:00
Matt Sturgeon
54d118869b
lib/deprecation: init with mkDeprecatedSubOptionModule
...
Similar to `lib.mkRemovedOptionModule` but tweaked to work with
sub-options (e.g. settings options).
Also uses warnings instead of assertions.
2024-06-25 15:48:33 +01:00
Nikita Shirokov
54207d1eff
maintainers: add braindefender
2024-06-22 07:13:11 +07:00
Matt Sturgeon
9000e69f4b
lib/options: drop special case for string defaults
...
No longer assume that string-type plugin defaults are already
pre-formatted.
Instead, pre-formatted values should be defined using
`literalExpression` or `literalMD`.
2024-06-21 08:45:30 +01:00
Gaetan Lepage
735fbeece8
Revert "helpers/vim-plugin: fix mkVimPlugin when defaultPackage.meta.homepage doesn't exist"
...
This reverts commit a6b247359f
.
2024-06-21 08:53:33 +02:00
Gaetan Lepage
846b3c991e
helpers/vim-plugin: fix mkVimPlugin when defaultPackage.meta.homepage doesn't exist
2024-06-18 11:38:52 +02:00
Matt Sturgeon
36b4a39b2b
lib/types: allow assigning raw lua to string lua
...
Relax the check a little to allow (slightly) incorrect usage and enable migrating option types to string lua types.
2024-06-17 00:01:40 +01:00
Matt Sturgeon
2d063c2c24
lib/types: simplify isRawType
...
No change in behaviour.
2024-06-17 00:01:39 +01:00
Matt Sturgeon
69e43a6bf9
plugins/none-ls: refactor mkRaw
...
- Allow passing raw types through mkRaw
- Throw an error when passing invalid input into mkRaw
2024-06-17 00:01:39 +01:00
Matt Sturgeon
582641a639
lib/options: fix minor typo
2024-06-14 12:29:53 +01:00
Matt Sturgeon
8e8c22ce65
lib/options: rename convertArgs
to processDefaultNullArgs
2024-06-14 12:28:59 +01:00
Matt Sturgeon
5cec79e59f
lib/options: migrate defaultNullOpts
to use pluginDefault
...
Rename all instances where the plugin default argument is named
`default` to `pluginDefault` to avoid conflict.
2024-06-14 12:25:06 +01:00
Matt Sturgeon
e51b8b9b5c
lib/options: remove defaultNullOpts.mkDesc
...
Leave a stub for now, which aborts with an error message.
2024-06-14 10:56:11 +01:00
Matt Sturgeon
a8943f2502
lib/options: allow pluginDefault
in any helper
...
All helpers eventually go through `mkNullOrOption`, so we can move where
`pluginDefault` is handled there.
Added a private helper `processNixvimArgs` that can be used by any future
helper that needs to call `lib.mkOption` directly.
It might make sense to offer a `helpers.mkOption` which simply wraps
`lib.mkOption` but with support for custom args like `pluginDefault`?
2024-06-14 10:49:05 +01:00
Matt Sturgeon
33a32c9417
lib/options: move "plugin default" into defaultText
...
Introduce a new `helpers.pluginDefaultText` and deprecate `helpers.defaultNullOpts.mkDesc`.
Displaying the "plugin default" within `defaultText` ensures that both
defaults are grouped together in the docs.
Also take the first step towards transitioning `defaultNullOpts` from
using `default` to `pluginDefault` to mean "plugin default".
2024-06-10 15:11:21 +01:00
Matt Sturgeon
f34fda8d99
meta: extend meta.nixvimInfo
support treewide
...
Rather than supplying a `kind` and `name` pair, we now supply a raw
path.
This path could point to any nixvim option.
2024-06-07 22:22:55 +01:00
Matt Sturgeon
b2a477260d
docs: emphasise "Plugin default" to match nixpkgs
...
Nixpkg's "headings" are emphasised in italics ("Default", "Example",
"Type", etc). We should match the style.
2024-06-07 17:47:33 +01:00
Matt Sturgeon
ade4539b3f
lib/options: defaultNullOpts
don't require having a default
...
Made the `default` and `description` arguments optional for all prime
variants of `defaultNullOpts` functions.
If neither `default` nor `description` are provided, the option will
have no description.
The "Plugin default" line is only added when a `default` argument is
present (`args ? default`).
2024-06-07 17:34:46 +01:00
Matt Sturgeon
302262304e
lib/keymaps: refactor mkMapOptionSubmodule
again
...
Allow passing in `key` and `action` as either bool or an attrset.
If `false`, the option is omitted. If `true` or an attrset, the option is included.
If an attrset is used, it will update the default `mkOption` args.
This is useful for overriding `type` or adding an `example`.
2024-06-07 15:42:54 +01:00
Matt Sturgeon
c16533b3f7
lib: add upperFirstChar
...
A util function to capitalize the first character of a string.
2024-06-07 09:17:29 +01:00
Matt Sturgeon
f7e009d29e
lib/options: add mkEnum'
argument assertions
2024-06-02 03:18:11 +01:00
Matt Sturgeon
a2443ac0d6
lib/options: add more defaultNullOpts
'variants
...
All `defaultNullOpts` functions now have a prime variant.
2024-06-02 03:18:10 +01:00
Matt Sturgeon
df3aa86713
lib/keymap-helpers: refactor mkMapOptionSubmodule
...
Make the `key` and `action` options optional, and allow configuring
whether `action` can be a raw type.
2024-06-01 16:19:35 +01:00
Matt Sturgeon
87d6654a9f
lib/options: remove mkStr
assert
...
If a non-string is passed in, it'll be formatted here. This is okay
because `mkDesc` will not re-format anyway.
2024-06-01 15:08:14 +01:00
Matt Sturgeon
297aa6d0a2
lib/options: make mkPackageOption
use mkNullOrOption'
2024-06-01 14:33:43 +01:00
Matt Sturgeon
1bb4cb9c6c
lib/options: add mkAttrsOf'
& mkListOf'
(etc)
2024-06-01 14:33:43 +01:00
Matt Sturgeon
e0b60bac8b
lib/options: add mkNullableWithRaw'
variant
2024-06-01 14:33:42 +01:00
Matt Sturgeon
84b2b0d90c
lib/options: add mkNullable'
variant
2024-06-01 14:33:42 +01:00
Matt Sturgeon
ed56221499
lib/options: add mkNullOrStrLuaFnOr'
variant
2024-06-01 14:33:42 +01:00
Matt Sturgeon
5bcb6184b0
lib/options: add mkNullOrStrLuaOr'
variant
2024-06-01 14:33:41 +01:00
Matt Sturgeon
56ee982cb4
lib/options: add mkNullOrLuaFn'
variant
2024-06-01 14:33:41 +01:00
Matt Sturgeon
207bfc6e69
lib/options: add mkNullOrLua'
variant
2024-06-01 14:33:41 +01:00
Matt Sturgeon
3a151bbf09
lib/options: add mkNullOrStr'
variant
2024-06-01 14:33:41 +01:00
Matt Sturgeon
9bf7724b98
lib/options: add mkCompositeOption'
variant
2024-06-01 14:33:40 +01:00
Matt Sturgeon
fc542329cd
lib/options: add mkNullOrOption'
variant
2024-06-01 14:33:40 +01:00
Matt Sturgeon
57003fea4e
lib/options: inline mkDefaultDesc
into mkDesc
...
And add function documentation.
2024-06-01 14:33:40 +01:00
Gaetan Lepage
d15fade62b
helpers/toLuaObject: fix rawKey handling
2024-05-31 23:31:11 +02:00