mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
plugins/cmp-ai: move to by-name
This commit is contained in:
parent
f1addaaddf
commit
a61193abcc
4 changed files with 89 additions and 100 deletions
89
plugins/by-name/cmp-ai/default.nix
Normal file
89
plugins/by-name/cmp-ai/default.nix
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (lib.nixvim) defaultNullOpts;
|
||||||
|
in
|
||||||
|
lib.nixvim.neovim-plugin.mkNeovimPlugin {
|
||||||
|
name = "cmp-ai";
|
||||||
|
|
||||||
|
maintainers = [ lib.maintainers.GaetanLepage ];
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
{ cmpSourcePlugins.cmp_ai = "cmp-ai"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
moduleName = "cmp_ai.config";
|
||||||
|
setup = ":setup";
|
||||||
|
|
||||||
|
settingsOptions = {
|
||||||
|
max_lines = defaultNullOpts.mkUnsignedInt 50 ''
|
||||||
|
How many lines of buffer context to use.
|
||||||
|
'';
|
||||||
|
|
||||||
|
run_on_every_keystroke = defaultNullOpts.mkBool true ''
|
||||||
|
Generate new completion items on every keystroke.
|
||||||
|
'';
|
||||||
|
|
||||||
|
provider = defaultNullOpts.mkStr "HF" ''
|
||||||
|
Which AI provider to use.
|
||||||
|
|
||||||
|
Check the [README](https://github.com/tzachar/cmp-ai/blob/main/README.md) to learn about
|
||||||
|
available options.
|
||||||
|
'';
|
||||||
|
|
||||||
|
provider_options = defaultNullOpts.mkAttrsOf lib.types.anything { } ''
|
||||||
|
Options to forward to the provider.
|
||||||
|
'';
|
||||||
|
|
||||||
|
notify = defaultNullOpts.mkBool true ''
|
||||||
|
As some completion sources can be quit slow, setting this to `true` will trigger a
|
||||||
|
notification when a completion starts and ends using `vim.notify`.
|
||||||
|
'';
|
||||||
|
|
||||||
|
notify_callback = defaultNullOpts.mkLuaFn' {
|
||||||
|
description = ''
|
||||||
|
The default notify function uses `vim.notify`, but an override can be configured.
|
||||||
|
'';
|
||||||
|
pluginDefault = ''
|
||||||
|
function(msg)
|
||||||
|
vim.notify(msg)
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
example = ''
|
||||||
|
function(msg)
|
||||||
|
require('notify').notify(msg, vim.log.levels.INFO, {
|
||||||
|
title = 'OpenAI',
|
||||||
|
render = 'compact',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
ignored_file_types = defaultNullOpts.mkAttrsOf' {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = "Which filetypes to ignore.";
|
||||||
|
pluginDefault = { };
|
||||||
|
example = {
|
||||||
|
lua = true;
|
||||||
|
html = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
settingsExample = {
|
||||||
|
max_lines = 1000;
|
||||||
|
provider = "HF";
|
||||||
|
notify = true;
|
||||||
|
notify_callback = ''
|
||||||
|
function(msg)
|
||||||
|
vim.notify(msg)
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
run_on_every_keystroke = true;
|
||||||
|
ignored_file_types = {
|
||||||
|
lua = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,95 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
inherit (lib.nixvim) defaultNullOpts;
|
|
||||||
|
|
||||||
cfg = config.plugins.cmp-ai;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
meta.maintainers = [ lib.maintainers.GaetanLepage ];
|
|
||||||
|
|
||||||
options.plugins.cmp-ai = {
|
|
||||||
settings = lib.nixvim.mkSettingsOption {
|
|
||||||
description = "Options provided to the `require('cmp_ai.config'):setup` function.";
|
|
||||||
|
|
||||||
options = {
|
|
||||||
max_lines = defaultNullOpts.mkUnsignedInt 50 ''
|
|
||||||
How many lines of buffer context to use.
|
|
||||||
'';
|
|
||||||
|
|
||||||
run_on_every_keystroke = defaultNullOpts.mkBool true ''
|
|
||||||
Generate new completion items on every keystroke.
|
|
||||||
'';
|
|
||||||
|
|
||||||
provider = defaultNullOpts.mkStr "HF" ''
|
|
||||||
Which AI provider to use.
|
|
||||||
|
|
||||||
Check the [README](https://github.com/tzachar/cmp-ai/blob/main/README.md) to learn about
|
|
||||||
available options.
|
|
||||||
'';
|
|
||||||
|
|
||||||
provider_options = defaultNullOpts.mkAttrsOf lib.types.anything { } ''
|
|
||||||
Options to forward to the provider.
|
|
||||||
'';
|
|
||||||
|
|
||||||
notify = defaultNullOpts.mkBool true ''
|
|
||||||
As some completion sources can be quit slow, setting this to `true` will trigger a
|
|
||||||
notification when a completion starts and ends using `vim.notify`.
|
|
||||||
'';
|
|
||||||
|
|
||||||
notify_callback = defaultNullOpts.mkLuaFn' {
|
|
||||||
description = ''
|
|
||||||
The default notify function uses `vim.notify`, but an override can be configured.
|
|
||||||
'';
|
|
||||||
pluginDefault = ''
|
|
||||||
function(msg)
|
|
||||||
vim.notify(msg)
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
example = ''
|
|
||||||
function(msg)
|
|
||||||
require('notify').notify(msg, vim.log.levels.INFO, {
|
|
||||||
title = 'OpenAI',
|
|
||||||
render = 'compact',
|
|
||||||
})
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
ignored_file_types = defaultNullOpts.mkAttrsOf' {
|
|
||||||
type = lib.types.bool;
|
|
||||||
description = "Which filetypes to ignore.";
|
|
||||||
pluginDefault = { };
|
|
||||||
example = {
|
|
||||||
lua = true;
|
|
||||||
html = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
example = {
|
|
||||||
max_lines = 1000;
|
|
||||||
provider = "HF";
|
|
||||||
notify = true;
|
|
||||||
notify_callback = ''
|
|
||||||
function(msg)
|
|
||||||
vim.notify(msg)
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
run_on_every_keystroke = true;
|
|
||||||
ignored_file_types = {
|
|
||||||
lua = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
extraConfigLua = ''
|
|
||||||
require('cmp_ai.config'):setup(${lib.nixvim.toLuaObject cfg.settings})
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -10,10 +10,6 @@ let
|
||||||
# More complex cmp sources can instead be defined as their own plugin
|
# More complex cmp sources can instead be defined as their own plugin
|
||||||
# and register their source-name association using the `cmpSourcePlugins` option.
|
# and register their source-name association using the `cmpSourcePlugins` option.
|
||||||
sources = [
|
sources = [
|
||||||
{
|
|
||||||
pluginName = "cmp-ai";
|
|
||||||
sourceName = "cmp_ai";
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
pluginName = "cmp-async-path";
|
pluginName = "cmp-async-path";
|
||||||
sourceName = "async_path";
|
sourceName = "async_path";
|
||||||
|
@ -202,7 +198,6 @@ in
|
||||||
# For extra cmp plugins
|
# For extra cmp plugins
|
||||||
imports = [
|
imports = [
|
||||||
./copilot-cmp.nix
|
./copilot-cmp.nix
|
||||||
./cmp-ai.nix
|
|
||||||
./cmp-git.nix
|
./cmp-git.nix
|
||||||
./cmp-tabnine.nix
|
./cmp-tabnine.nix
|
||||||
./crates-nvim.nix
|
./crates-nvim.nix
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue