mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-01-19 08:22:25 +00:00
autocomplete: move shared code into common parent
This commit is contained in:
parent
8e1dbc7df2
commit
b41af9dbf6
5 changed files with 140 additions and 106 deletions
|
@ -42,6 +42,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
autocomplete = {
|
autocomplete = {
|
||||||
|
enableSharedCmpSources = true;
|
||||||
blink-cmp.setupOpts = {
|
blink-cmp.setupOpts = {
|
||||||
sources = {
|
sources = {
|
||||||
default = ["lsp" "path" "snippets" "buffer"] ++ (attrNames cmpCfg.sources);
|
default = ["lsp" "path" "snippets" "buffer"] ++ (attrNames cmpCfg.sources);
|
||||||
|
|
34
modules/plugins/completion/config.nix
Normal file
34
modules/plugins/completion/config.nix
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib.modules) mkIf;
|
||||||
|
inherit (lib.nvim.attrsets) mapListToAttrs;
|
||||||
|
inherit (builtins) typeOf tryEval;
|
||||||
|
|
||||||
|
cfg = config.vim.autocomplete;
|
||||||
|
getPluginName = plugin:
|
||||||
|
if typeOf plugin == "string"
|
||||||
|
then plugin
|
||||||
|
else if (plugin ? pname && (tryEval plugin.pname).success)
|
||||||
|
then plugin.pname
|
||||||
|
else plugin.name;
|
||||||
|
in {
|
||||||
|
config.vim = mkIf cfg.enableSharedCmpSources {
|
||||||
|
startPlugins = ["rtp-nvim"];
|
||||||
|
lazy.plugins =
|
||||||
|
mapListToAttrs (package: {
|
||||||
|
name = getPluginName package;
|
||||||
|
value = {
|
||||||
|
inherit package;
|
||||||
|
lazy = true;
|
||||||
|
after = ''
|
||||||
|
local path = vim.fn.globpath(vim.o.packpath, 'pack/*/opt/${getPluginName package}')
|
||||||
|
require("rtp_nvim").source_after_plugin_dir(path)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
})
|
||||||
|
cfg.nvim-cmp.sourcePlugins;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,5 +1,8 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
./module.nix
|
||||||
|
./config.nix
|
||||||
|
|
||||||
./nvim-cmp
|
./nvim-cmp
|
||||||
./blink-cmp
|
./blink-cmp
|
||||||
];
|
];
|
||||||
|
|
7
modules/plugins/completion/module.nix
Normal file
7
modules/plugins/completion/module.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{lib, ...}: let
|
||||||
|
inherit (lib.options) mkEnableOption;
|
||||||
|
in {
|
||||||
|
options.vim.autocomplete = {
|
||||||
|
enableSharedCmpSources = mkEnableOption "sources shared by blink.cmp and nvim-cmp";
|
||||||
|
};
|
||||||
|
}
|
|
@ -24,21 +24,7 @@
|
||||||
in {
|
in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
vim = {
|
vim = {
|
||||||
startPlugins = ["rtp-nvim"];
|
lazy.plugins = {
|
||||||
lazy.plugins = mkMerge [
|
|
||||||
(mapListToAttrs (package: {
|
|
||||||
name = getPluginName package;
|
|
||||||
value = {
|
|
||||||
inherit package;
|
|
||||||
lazy = true;
|
|
||||||
after = ''
|
|
||||||
local path = vim.fn.globpath(vim.o.packpath, 'pack/*/opt/${getPluginName package}')
|
|
||||||
require("rtp_nvim").source_after_plugin_dir(path)
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
})
|
|
||||||
cfg.sourcePlugins)
|
|
||||||
{
|
|
||||||
nvim-cmp = {
|
nvim-cmp = {
|
||||||
package = "nvim-cmp";
|
package = "nvim-cmp";
|
||||||
after = ''
|
after = ''
|
||||||
|
@ -68,10 +54,12 @@ in {
|
||||||
|
|
||||||
event = ["InsertEnter" "CmdlineEnter"];
|
event = ["InsertEnter" "CmdlineEnter"];
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
];
|
|
||||||
|
|
||||||
autocomplete.nvim-cmp = {
|
autocomplete = {
|
||||||
|
enableSharedCmpSources = true;
|
||||||
|
|
||||||
|
nvim-cmp = {
|
||||||
sources = {
|
sources = {
|
||||||
nvim-cmp = null;
|
nvim-cmp = null;
|
||||||
buffer = "[Buffer]";
|
buffer = "[Buffer]";
|
||||||
|
@ -137,4 +125,5 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue