mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-09-06 02:11:33 +00:00
treewide: rewrite autocompletion module and related stuff (#404)
* modules/completion: rewrite * treewide: remove vsnip, add luasnip * nvim-cmp: add default sorting * nvim-cmp: load after luasnip * lib: fix docs for mergelessListOf * docs: add changelog entires for rewrite * deprecations: add rewrite deprecations * nvim-cmp: clarify in format description * docs: fix option reference in release notes * treewide: remove reduant `// {default = false;}`s * luasnip: add missing `{option}` for option reference * deprecations: add entry for vsnip * nvim-autopairs: use multiline string * nvim-dap: use outer attribute
This commit is contained in:
parent
ef413736e9
commit
7dbd1cd8d1
33 changed files with 512 additions and 483 deletions
5
lib/attrsets.nix
Normal file
5
lib/attrsets.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{lib}: let
|
||||
inherit (builtins) listToAttrs;
|
||||
in {
|
||||
mapListToAttrs = f: list: listToAttrs (map f list);
|
||||
}
|
|
@ -10,6 +10,7 @@
|
|||
dag = import ./dag.nix {inherit lib;};
|
||||
languages = import ./languages.nix {inherit lib;};
|
||||
lists = import ./lists.nix {inherit lib;};
|
||||
attrsets = import ./attrsets.nix {inherit lib;};
|
||||
lua = import ./lua.nix {inherit lib;};
|
||||
neovimConfiguration = import ../modules {inherit inputs lib;};
|
||||
}
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
{lib}: let
|
||||
inherit (builtins) isString getAttr;
|
||||
inherit (lib.options) mkOption;
|
||||
inherit (lib.attrsets) listToAttrs;
|
||||
inherit (lib.types) bool;
|
||||
inherit (lib.nvim.attrsets) mapListToAttrs;
|
||||
in {
|
||||
# Converts a boolean to a yes/no string. This is used in lots of
|
||||
# configuration formats.
|
||||
|
@ -12,21 +12,21 @@ in {
|
|||
config,
|
||||
diagnosticsProviders,
|
||||
}:
|
||||
listToAttrs
|
||||
(map (v: let
|
||||
type =
|
||||
if isString v
|
||||
then v
|
||||
else getAttr v.type;
|
||||
package =
|
||||
if isString v
|
||||
then diagnosticsProviders.${type}.package
|
||||
else v.package;
|
||||
in {
|
||||
name = "${lang}-diagnostics-${type}";
|
||||
value = diagnosticsProviders.${type}.nullConfig package;
|
||||
})
|
||||
config);
|
||||
mapListToAttrs
|
||||
(v: let
|
||||
type =
|
||||
if isString v
|
||||
then v
|
||||
else getAttr v.type;
|
||||
package =
|
||||
if isString v
|
||||
then diagnosticsProviders.${type}.package
|
||||
else v.package;
|
||||
in {
|
||||
name = "${lang}-diagnostics-${type}";
|
||||
value = diagnosticsProviders.${type}.nullConfig package;
|
||||
})
|
||||
config;
|
||||
|
||||
mkEnable = desc:
|
||||
mkOption {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{lib}: let
|
||||
inherit (lib) isStringLike showOption showFiles getFiles mergeOneOption mergeEqualOption mkOptionType;
|
||||
inherit (lib.strings) isString;
|
||||
inherit (lib.types) anything attrsOf;
|
||||
inherit (lib.options) showOption showFiles getFiles mergeOneOption mergeEqualOption;
|
||||
inherit (lib.strings) isString isStringLike;
|
||||
inherit (lib.types) anything attrsOf listOf mkOptionType;
|
||||
inherit (lib.nvim.types) anythingConcatLists;
|
||||
inherit (builtins) typeOf isAttrs any head concatLists stringLength match;
|
||||
in {
|
||||
|
@ -52,6 +52,16 @@ in {
|
|||
(mergeFunctions.${commonType} or mergeEqualOption) loc defs;
|
||||
};
|
||||
|
||||
mergelessListOf = elemType: let
|
||||
super = listOf elemType;
|
||||
in
|
||||
super
|
||||
// {
|
||||
name = "mergelessListOf";
|
||||
description = "mergeless ${super.description}";
|
||||
merge = mergeEqualOption;
|
||||
};
|
||||
|
||||
char = mkOptionType {
|
||||
name = "char";
|
||||
description = "character";
|
|
@ -6,10 +6,10 @@
|
|||
typesDag = import ./dag.nix {inherit lib;};
|
||||
typesPlugin = import ./plugins.nix {inherit inputs lib;};
|
||||
typesLanguage = import ./languages.nix {inherit lib;};
|
||||
typesTypes = import ./types.nix {inherit lib;};
|
||||
customTypes = import ./custom.nix {inherit lib;};
|
||||
in {
|
||||
inherit (typesDag) dagOf;
|
||||
inherit (typesPlugin) pluginsOpt extraPluginType mkPluginSetupOption luaInline pluginType borderType;
|
||||
inherit (typesLanguage) diagnostics mkGrammarOption;
|
||||
inherit (typesTypes) anythingConcatLists char hexColor;
|
||||
inherit (customTypes) anythingConcatLists char hexColor mergelessListOf;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue