mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 08:35:43 +02:00
285 lines
8.9 KiB
Nix
285 lines
8.9 KiB
Nix
{
|
|
defaults = {
|
|
plugins = {
|
|
cmp = {
|
|
enable = true;
|
|
settings.sources = [ { name = "git"; } ];
|
|
};
|
|
|
|
cmp-git.settings = {
|
|
filetypes = [
|
|
"gitcommit"
|
|
"octo"
|
|
];
|
|
remotes = [
|
|
"upstream"
|
|
"origin"
|
|
];
|
|
enableRemoteUrlRewrites = false;
|
|
git = {
|
|
commits = {
|
|
limit = 100;
|
|
sort_by = "require('cmp_git.sort').git.commits";
|
|
format = "require('cmp_git.format').git.commits";
|
|
};
|
|
};
|
|
github = {
|
|
hosts = [ ];
|
|
issues = {
|
|
fields = [
|
|
"title"
|
|
"number"
|
|
"body"
|
|
"updatedAt"
|
|
"state"
|
|
];
|
|
filter = "all";
|
|
limit = 100;
|
|
state = "open";
|
|
sort_by = "require('cmp_git.sort').github.issues";
|
|
format = "require('cmp_git.format').github.issues";
|
|
};
|
|
mentions = {
|
|
limit = 100;
|
|
sort_by = "require('cmp_git.sort').github.mentions";
|
|
format = "require('cmp_git.format').github.mentions";
|
|
};
|
|
pull_requests = {
|
|
fields = [
|
|
"title"
|
|
"number"
|
|
"body"
|
|
"updatedAt"
|
|
"state"
|
|
];
|
|
limit = 100;
|
|
state = "open";
|
|
sort_by = "require('cmp_git.sort').github.pull_requests";
|
|
format = "require('cmp_git.format').github.pull_requests";
|
|
};
|
|
};
|
|
gitlab = {
|
|
hosts = [ ];
|
|
issues = {
|
|
limit = 100;
|
|
state = "opened";
|
|
sort_by = "require('cmp_git.sort').gitlab.pull_requests";
|
|
format = "require('cmp_git.format').gitlab.pull_requests";
|
|
};
|
|
mentions = {
|
|
limit = 100;
|
|
sort_by = "require('cmp_git.sort').gitlab.mentions";
|
|
format = "require('cmp_git.format').gitlab.mentions";
|
|
};
|
|
merge_requests = {
|
|
limit = 100;
|
|
state = "opened";
|
|
sort_by = "require('cmp_git.sort').gitlab.merge_requests";
|
|
format = "require('cmp_git.format').gitlab.merge_requests";
|
|
};
|
|
};
|
|
trigger_actions = [
|
|
{
|
|
debug_name = "git_commits";
|
|
trigger_character = ":";
|
|
action = ''
|
|
function(sources, trigger_char, callback, params, git_info)
|
|
return sources.git:get_commits(callback, params, trigger_char)
|
|
end
|
|
'';
|
|
}
|
|
{
|
|
debug_name = "gitlab_issues";
|
|
trigger_character = "#";
|
|
action = ''
|
|
function(sources, trigger_char, callback, params, git_info)
|
|
return sources.gitlab:get_issues(callback, git_info, trigger_char)
|
|
end
|
|
'';
|
|
}
|
|
{
|
|
debug_name = "gitlab_mentions";
|
|
trigger_character = "@";
|
|
action = ''
|
|
function(sources, trigger_char, callback, params, git_info)
|
|
return sources.gitlab:get_mentions(callback, git_info, trigger_char)
|
|
end
|
|
'';
|
|
}
|
|
{
|
|
debug_name = "gitlab_mrs";
|
|
trigger_character = "!";
|
|
action = ''
|
|
function(sources, trigger_char, callback, params, git_info)
|
|
return sources.gitlab:get_merge_requests(callback, git_info, trigger_char)
|
|
end
|
|
'';
|
|
}
|
|
{
|
|
debug_name = "github_issues_and_pr";
|
|
trigger_character = "#";
|
|
action = ''
|
|
function(sources, trigger_char, callback, params, git_info)
|
|
return sources.github:get_issues_and_prs(callback, git_info, trigger_char)
|
|
end
|
|
'';
|
|
}
|
|
{
|
|
debug_name = "github_mentions";
|
|
trigger_character = "@";
|
|
action = ''
|
|
function(sources, trigger_char, callback, params, git_info)
|
|
return sources.github:get_mentions(callback, git_info, trigger_char)
|
|
end
|
|
'';
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
example = {
|
|
plugins = {
|
|
cmp = {
|
|
enable = true;
|
|
settings.sources = [ { name = "git"; } ];
|
|
};
|
|
|
|
cmp-git.settings = {
|
|
remotes = [
|
|
"upstream"
|
|
"origin"
|
|
"foo"
|
|
];
|
|
github = {
|
|
issues = {
|
|
filter = "all";
|
|
limit = 250;
|
|
state = "all";
|
|
format = ''
|
|
function(_, issue)
|
|
local icon = ({
|
|
open = '',
|
|
closed = '',
|
|
})[string.lower(issue.state)]
|
|
return string.format('%s #%d: %s', icon, issue.number, issue.title)
|
|
end
|
|
'';
|
|
sort_by = ''
|
|
function(issue)
|
|
local kind_rank = issue.pull_request and 1 or 0
|
|
local state_rank = issue.state == 'open' and 0 or 1
|
|
local age = os.difftime(os.time(), require('cmp_git.utils').parse_github_date(issue.updatedAt))
|
|
return string.format('%d%d%010d', kind_rank, state_rank, age)
|
|
end
|
|
'';
|
|
filter_fn.__raw = ''
|
|
function(trigger_char, issue)
|
|
return string.format('%s %s %s', trigger_char, issue.number, issue.title)
|
|
end
|
|
'';
|
|
};
|
|
mentions = {
|
|
limit = 250;
|
|
sort_by = null;
|
|
filter_fn.__raw = ''
|
|
function(trigger_char, mention)
|
|
return string.format('%s %s %s', trigger_char, mention.username)
|
|
end
|
|
'';
|
|
};
|
|
pull_requests = {
|
|
limit = 250;
|
|
state = "all";
|
|
format = ''
|
|
function(_, pr)
|
|
local icon = ({
|
|
open = '',
|
|
closed = '',
|
|
})[string.lower(pr.state)]
|
|
return string.format('%s #%d: %s', icon, pr.number, pr.title)
|
|
end
|
|
'';
|
|
sort_by = ''
|
|
function(pr)
|
|
local state_rank = pr.state == 'open' and 0 or 1
|
|
local age = os.difftime(os.time(), require('cmp_git.utils').parse_github_date(pr.updatedAt))
|
|
return string.format('%d%010d', state_rank, age)
|
|
end
|
|
'';
|
|
filter_fn.__raw = ''
|
|
function(trigger_char, pr)
|
|
return string.format('%s %s %s', trigger_char, pr.number, pr.title)
|
|
end
|
|
'';
|
|
};
|
|
};
|
|
trigger_actions = [
|
|
{
|
|
debug_name = "git_commits";
|
|
trigger_character = ":";
|
|
action = ''
|
|
function(sources, trigger_char, callback, params, git_info)
|
|
return sources.git:get_commits(callback, params, trigger_char)
|
|
end
|
|
'';
|
|
}
|
|
{
|
|
debug_name = "github_issues";
|
|
trigger_character = "#";
|
|
action = ''
|
|
function(sources, trigger_char, callback, params, git_info)
|
|
return sources.github:get_issues(callback, git_info, trigger_char)
|
|
end
|
|
'';
|
|
}
|
|
{
|
|
debug_name = "github_pulls";
|
|
trigger_character = "!";
|
|
action = ''
|
|
function(sources, trigger_char, callback, params, git_info)
|
|
return sources.github:get_pull_requests(callback, git_info, trigger_char)
|
|
end
|
|
'';
|
|
}
|
|
{
|
|
debug_name = "github_mentions";
|
|
trigger_character = "@";
|
|
action = ''
|
|
function(sources, trigger_char, callback, params, git_info)
|
|
return sources.github:get_mentions(callback, git_info, trigger_char)
|
|
end
|
|
'';
|
|
}
|
|
{
|
|
debug_name = "gitlab_issues";
|
|
trigger_character = "#";
|
|
action = ''
|
|
function(sources, trigger_char, callback, params, git_info)
|
|
return sources.gitlab:get_issues(callback, git_info, trigger_char)
|
|
end
|
|
'';
|
|
}
|
|
{
|
|
debug_name = "gitlab_mentions";
|
|
trigger_character = "@";
|
|
action = ''
|
|
function(sources, trigger_char, callback, params, git_info)
|
|
return sources.gitlab:get_mentions(callback, git_info, trigger_char)
|
|
end
|
|
'';
|
|
}
|
|
{
|
|
debug_name = "gitlab_mrs";
|
|
trigger_character = "!";
|
|
action = ''
|
|
function(sources, trigger_char, callback, params, git_info)
|
|
return sources.gitlab:get_merge_requests(callback, git_info, trigger_char)
|
|
end
|
|
'';
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|