mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 08:35:43 +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