Commit graph

42 commits

Author SHA1 Message Date
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
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
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
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
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
Matt Sturgeon
51240cef0e
lib/options: defaultNullOpts delegate string rendering 2024-05-30 14:27:37 +01:00
Matt Sturgeon
ff1ab1700c
lib/options: mkEnum quote default if string
As there's only a handful of call-sites to fix, ensure all `mkEnum`
defaults are passed in as the correct type (tree wide) and change
`mkEnum` to now correctly render string-type defaults "quoted" (like
`mkString` does).
2024-05-30 14:27:37 +01:00
Matt Sturgeon
b113bc69ea
lib/options: mkStr quote default string 2024-05-29 09:50:03 +01:00
Matt Sturgeon
cedc1e4799
lib/options: use code-block for multiline defaults
Detect whether a plugin default is multiline using `hasInfix "\n"`.

Also remove `multiline=false` from the `toPretty` call.
2024-05-29 09:25:55 +01:00
Matt Sturgeon
daa6b0f5cf
lib/options: defaultNullOpts support non-string defaults 2024-05-28 20:16:17 +01:00
Gaetan Lepage
7c4fe30f81 lib/options: introduce new mkPackageOption for dependencies 2024-05-17 22:15:47 +02:00
Gaetan Lepage
26367692da lib/options: rename mkPackageOption to mkPluginPackageOption 2024-05-17 22:15:47 +02:00
Gaetan Lepage
3766e36335 lib/options: change "default: ..." to "Plugin default: ..." 2024-05-17 15:03:21 +02:00
Gaetan Lepage
7697a1cc5a lib/options: refactor 2024-05-17 15:03:21 +02:00
Gaetan Lepage
72ff1489c7 lib/options: make use of previously unused mkNullableWithRaw internally 2024-05-16 22:36:51 +02:00
traxys
62f32bfc71 treewide: Reformat with nixfmt 2024-05-05 22:00:40 +02:00
Gaetan Lepage
d348bb3e03 lib/types: factor out logLevel enum for standalone use 2024-04-07 11:30:24 +02:00
Gaetan Lepage
bd6e7e969e helpers/vim-plugin/mkVimPlugin: remove useless 'with types;' 2024-02-13 10:34:49 +01:00
Gaetan Lepage
e3e14dbe1d helpers/options: add mkSettingsOption 2024-02-12 18:46:13 +01:00
Gaetan Lepage
06e4a4e0c8 helpers/options: allow raw values for border options 2024-02-03 12:45:36 +01:00
Gaetan Lepage
e2c3459d1d lib/helpers: extraOptionsOptions -> neovim-plugin.extraOptionsOptions 2024-01-28 23:39:14 +01:00
Gaetan Lepage
7164a89f72 lib/helpers: factor out nixvimUtils 2024-01-25 17:05:03 +01:00
Gaetan Lepage
98dbe8a89b lib/helpers: internal refactoring 2024-01-25 16:38:59 +01:00