mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 16:39:00 +02:00
plugins/tinygit: init
This commit is contained in:
parent
f464541b18
commit
757e02a183
2 changed files with 247 additions and 0 deletions
62
plugins/by-name/tinygit/default.nix
Normal file
62
plugins/by-name/tinygit/default.nix
Normal file
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
lib.nixvim.plugins.mkNeovimPlugin {
|
||||
name = "tinygit";
|
||||
packPathName = "nvim-tinygit";
|
||||
package = "nvim-tinygit";
|
||||
|
||||
maintainers = [ lib.maintainers.GaetanLepage ];
|
||||
|
||||
extraOptions = {
|
||||
curlPackage = lib.mkPackageOption pkgs "curl" {
|
||||
nullable = true;
|
||||
};
|
||||
|
||||
gitPackage = lib.mkPackageOption pkgs "git" {
|
||||
nullable = true;
|
||||
};
|
||||
};
|
||||
|
||||
extraConfig = cfg: {
|
||||
extraPackages = [
|
||||
cfg.curlPackage
|
||||
cfg.gitPackage
|
||||
];
|
||||
};
|
||||
|
||||
settingsExample = {
|
||||
stage.moveToNextHunkOnStagingToggle = true;
|
||||
commit = {
|
||||
keepAbortedMsgSecs.__raw = "60 * 10";
|
||||
spellcheck = true;
|
||||
subject = {
|
||||
autoFormat.__raw = ''
|
||||
function(subject)
|
||||
-- remove trailing dot https://commitlint.js.org/reference/rules.html#body-full-stop
|
||||
subject = subject:gsub("%.$", "")
|
||||
|
||||
-- sentence case of title after the type
|
||||
subject = subject
|
||||
:gsub("^(%w+: )(.)", function(c1, c2) return c1 .. c2:lower() end) -- no scope
|
||||
:gsub("^(%w+%b(): )(.)", function(c1, c2) return c1 .. c2:lower() end) -- with scope
|
||||
return subject
|
||||
end
|
||||
'';
|
||||
enforceType = true;
|
||||
};
|
||||
};
|
||||
statusline = {
|
||||
blame = {
|
||||
hideAuthorNames = [
|
||||
"John Doe"
|
||||
"johndoe"
|
||||
];
|
||||
ignoreAuthors = [ "🤖 automated" ];
|
||||
maxMsgLen = 55;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
185
tests/test-sources/plugins/by-name/tinygit/default.nix
Normal file
185
tests/test-sources/plugins/by-name/tinygit/default.nix
Normal file
|
@ -0,0 +1,185 @@
|
|||
{
|
||||
empty = {
|
||||
plugins.tinygit.enable = true;
|
||||
};
|
||||
|
||||
defaults = {
|
||||
plugins.tinygit = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
stage = {
|
||||
contextSize = 1;
|
||||
stagedIndicator = "";
|
||||
keymaps = {
|
||||
stagingToggle = "<Space>";
|
||||
gotoHunk = "<CR>";
|
||||
resetHunk = "<C-r>";
|
||||
};
|
||||
moveToNextHunkOnStagingToggle = false;
|
||||
telescopeOpts = {
|
||||
layout_strategy = "horizontal";
|
||||
layout_config = {
|
||||
horizontal = {
|
||||
preview_width = 0.65;
|
||||
height = {
|
||||
__unkeyed = 0.7;
|
||||
min = 20;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
commit = {
|
||||
keepAbortedMsgSecs = 300;
|
||||
border = "rounded";
|
||||
spellcheck = false;
|
||||
wrap = "hard";
|
||||
keymaps = {
|
||||
normal = {
|
||||
abort = "q";
|
||||
confirm = "<CR>";
|
||||
};
|
||||
insert = {
|
||||
confirm = "<C-CR>";
|
||||
};
|
||||
};
|
||||
subject = {
|
||||
autoFormat.__raw = ''
|
||||
function(subject) ---@type nil|fun(subject: string): string
|
||||
subject = subject:gsub("%.$", "") -- remove trailing dot https://commitlint.js.org/reference/rules.html#body-full-stop
|
||||
return subject
|
||||
end
|
||||
'';
|
||||
enforceType = false;
|
||||
types = [
|
||||
"fix"
|
||||
"feat"
|
||||
"chore"
|
||||
"docs"
|
||||
"refactor"
|
||||
"build"
|
||||
"test"
|
||||
"perf"
|
||||
"style"
|
||||
"revert"
|
||||
"ci"
|
||||
"break"
|
||||
];
|
||||
};
|
||||
body = {
|
||||
enforce = false;
|
||||
};
|
||||
};
|
||||
push = {
|
||||
preventPushingFixupCommits = true;
|
||||
confirmationSound = true;
|
||||
openReferencedIssues = false;
|
||||
};
|
||||
github = {
|
||||
icons = {
|
||||
openIssue = "🟢";
|
||||
closedIssue = "🟣";
|
||||
notPlannedIssue = "⚪";
|
||||
openPR = "🟩";
|
||||
mergedPR = "🟪";
|
||||
draftPR = "⬜";
|
||||
closedPR = "🟥";
|
||||
};
|
||||
};
|
||||
history = {
|
||||
diffPopup = {
|
||||
width = 0.8;
|
||||
height = 0.8;
|
||||
border = "rounded";
|
||||
};
|
||||
autoUnshallowIfNeeded = false;
|
||||
};
|
||||
appearance = {
|
||||
mainIcon = "";
|
||||
backdrop = {
|
||||
enabled = true;
|
||||
blend = 40;
|
||||
};
|
||||
};
|
||||
statusline = {
|
||||
blame = {
|
||||
ignoreAuthors = [ ];
|
||||
hideAuthorNames = [ ];
|
||||
maxMsgLen = 40;
|
||||
icon = "ﰖ";
|
||||
};
|
||||
branchState = {
|
||||
icons = {
|
||||
ahead = "";
|
||||
behind = "";
|
||||
diverge = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
example = {
|
||||
plugins.tinygit = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
stage.moveToNextHunkOnStagingToggle = true;
|
||||
commit = {
|
||||
keepAbortedMsgSecs.__raw = "60 * 10";
|
||||
spellcheck = true;
|
||||
subject = {
|
||||
autoFormat.__raw = ''
|
||||
function(subject)
|
||||
-- remove trailing dot https://commitlint.js.org/reference/rules.html#body-full-stop
|
||||
subject = subject:gsub("%.$", "")
|
||||
|
||||
-- sentence case of title after the type
|
||||
subject = subject
|
||||
:gsub("^(%w+: )(.)", function(c1, c2) return c1 .. c2:lower() end) -- no scope
|
||||
:gsub("^(%w+%b(): )(.)", function(c1, c2) return c1 .. c2:lower() end) -- with scope
|
||||
return subject
|
||||
end
|
||||
'';
|
||||
enforceType = true;
|
||||
types = [
|
||||
"fix"
|
||||
"feat"
|
||||
"chore"
|
||||
"docs"
|
||||
"refactor"
|
||||
"build"
|
||||
"test"
|
||||
"perf"
|
||||
"style"
|
||||
"revert"
|
||||
"ci"
|
||||
"break"
|
||||
"improv"
|
||||
];
|
||||
};
|
||||
};
|
||||
push.openReferencedIssues = true;
|
||||
history = {
|
||||
autoUnshallowIfNeeded = true;
|
||||
diffPopup = {
|
||||
width = 0.9;
|
||||
height = 0.9;
|
||||
};
|
||||
};
|
||||
statusline = {
|
||||
blame = {
|
||||
hideAuthorNames = [
|
||||
"John Doe"
|
||||
"johndoe"
|
||||
];
|
||||
ignoreAuthors = [ "🤖 automated" ];
|
||||
maxMsgLen = 55;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue