From 9906b59a1f04e5d6d2b89cf5315785f130b775d3 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Tue, 1 Aug 2023 13:54:35 +1000 Subject: [PATCH 01/27] feat(schema): add config.json --- schemas/config.json | 352 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 352 insertions(+) create mode 100644 schemas/config.json diff --git a/schemas/config.json b/schemas/config.json new file mode 100644 index 00000000000..03b0cbc396b --- /dev/null +++ b/schemas/config.json @@ -0,0 +1,352 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "definitions": { + "color": { + "type": "string", + "oneOf": [ + { + "examples": [ + "default", + "black", + "red", + "green", + "yellow", + "blue", + "magenta", + "cyan", + "white" + ] + }, + { + "pattern": "^#[0-9a-fA-F]{6}$", + "examples": [ + "#ff00ff" + ] + } + ] + } + }, + "title": "settings", + "description": "Settings of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "gui": { + "title": "gui", + "description": "Settings of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "windowSize": { + "title": "window size", + "description": "A window size of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "enum": [ + "normal", + "half", + "full" + ], + "default": "normal" + }, + "scrollHeight": { + "title": "scroll height", + "description": "A scroll height of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "integer", + "minimum": 1, + "default": 2 + }, + "scrollPastBottom": { + "title": "scroll past bottom", + "description": "Whether to allow scrolling past bottom of the current window\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": true + }, + "sidePanelWidth": { + "title": "side panel width", + "description": "A width of the current side panel\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "number", + "minimum": 0, + "maximum": 1, + "default": 0.3333 + }, + "expandFocusedSidePanel": { + "title": "expand focused side panel", + "description": "Whether to expand focused side panel of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": false + }, + "mainPanelSplitMode": { + "title": "main panel split mode", + "description": "A split mode of the current main panel\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "enum": [ + "horizontal", + "flexible", + "vertical" + ], + "default": "flexible" + }, + "language": { + "title": "language", + "description": "A language of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "enum": [ + "auto", + "en", + "zh", + "pl", + "nl", + "ja", + "ko", + "ru" + ], + "default": "auto" + }, + "timeFormat": { + "title": "time format", + "description": "A time format of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "02 Jan 06" + }, + "shortTimeFormat": { + "title": "short time format", + "description": "A short time format of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "3:04PM" + }, + "theme": { + "title": "theme", + "description": "Settings of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "activeBorderColor": { + "title": "active border color", + "description": "Active border colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "description": "An active border color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "$ref": "#/definitions/color" + } + }, + "inactiveBorderColor": { + "title": "inactive border color", + "description": "Inactive border colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "description": "An inactive border color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "$ref": "#/definitions/color" + } + }, + "searchingActiveBorderColor": { + "title": "searching active border color", + "description": "Searching active border colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "description": "A searching active border color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "$ref": "#/definitions/color" + } + }, + "optionsTextColor": { + "title": "options text color", + "description": "Option text colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "description": "An option text color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "$ref": "#/definitions/color" + } + }, + "selectedLineBgColor": { + "title": "selected line bg color", + "description": "Selected line background colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "description": "A selected line background color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "$ref": "#/definitions/color" + } + }, + "selectedRangeBgColor": { + "title": "selected range bg color", + "description": "Selected range background colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "description": "A selected range background color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "$ref": "#/definitions/color" + } + }, + "cherryPickedCommitBgColor": { + "title": "cherry picked commit bg color", + "description": "Cherry picked commit background colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "description": "A cherry picked commit background color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "$ref": "#/definitions/color" + } + }, + "cherryPickedCommitFgColor": { + "title": "cherry picked commit fg color", + "description": "Cherry picked commit foreground colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "description": "A cherry picked commit foreground color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "$ref": "#/definitions/color" + } + }, + "unstagedChangesColor": { + "title": "unstaged changes color", + "description": "Unstaged changes colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "description": "An unstaged changes color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "$ref": "#/definitions/color" + } + }, + "defaultFgColor": { + "title": "default fg color", + "description": "Default foreground colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "description": "A default foreground color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "$ref": "#/definitions/color" + } + } + }, + "additionalProperties": false + }, + "commitLength": { + "title": "commit length", + "description": "Settings of the current commit length\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "show": { + "title": "show", + "description": "Whether to show the current commit length\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "mouseEvents": { + "title": "mouse events", + "description": "Whether to enable mouse events of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": true + }, + "skipDiscardChangeWarning": { + "title": "skip discard change warning", + "description": "Whether to disable change warning of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": false + }, + "skipStashWarning": { + "title": "skip stash warning", + "description": "Whether to disable stash warning of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": false + }, + "showFileTree": { + "title": "show file tree", + "description": "Whether to render render files of the current UI in a tree format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": true + }, + "showListFooter": { + "title": "show list footer", + "description": "Whether to show list footer of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": true + }, + "showRandomTip": { + "title": "show random tip", + "description": "Whether to show a random tip of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": true + }, + "showBranchCommitHash": { + "title": "show branch commit hash", + "description": "Whether to show a branch commit hash of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": false + }, + "showBottomLine": { + "title": "show bottom line", + "description": "Whether to show a bottom line of the current UI unless there is an important information\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": true + }, + "showCommandLog": { + "title": "show command log", + "description": "Whether to show command log of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": true + }, + "nerdFontsVersion": { + "title": "nerd fonts version", + "description": "A nerd font version of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "enum": [ + "2", + "3", + "" + ], + "default": "" + }, + "commandLogSize": { + "title": "command log size", + "description": "A command log size of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "integer", + "minimum": 0, + "default": 8 + }, + "splitDiff": { + "title": "split diff", + "description": "Whether to skip diff of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "enum": [ + "auto", + "always" + ], + "default": "auto" + }, + "skipRewordInEditorWarning": { + "title": "skip reword in editor warning", + "description": "Whether to skip a confirmation before launching a reword editor\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": false + }, + "border": { + "title": "border", + "description": "A border style of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "enum": [ + "single", + "double", + "rounded", + "hidden" + ], + "default": "single" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false +} \ No newline at end of file From bd095a790e025c5aa4245f424c8813e2597ef2e8 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Tue, 1 Aug 2023 16:10:24 +1000 Subject: [PATCH 02/27] feat(schema): support 'git' key --- schemas/config.json | 196 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 196 insertions(+) diff --git a/schemas/config.json b/schemas/config.json index 03b0cbc396b..3023cf4debc 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -346,6 +346,202 @@ } }, "additionalProperties": false + }, + "git": { + "title": "git", + "description": "Git settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "paging": { + "title": "paging", + "description": "Pager settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md", + "type": "object", + "properties": { + "colorArg": { + "title": "color argument", + "description": "A pager color argument\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md", + "type": "string", + "enum": [ + "always", + "never" + ], + "default": "always" + }, + "useConfig": { + "title": "use config", + "description": "Whether to use a config\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md", + "type": "boolean", + "default": false + }, + "pager": { + "title": "pager", + "description": "A pager\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md", + "type": "string", + "minLength": 1, + "examples": [ + "delta --dark --paging=never", + "diff-so-fancy", + "ydiff -p cat -s --wrap --width={{columnWidth}}" + ] + } + }, + "additionalProperties": false + }, + "commit": { + "title": "commit", + "description": "Commit settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "signOff": { + "title": "sign off", + "description": "Whether to sign commits off\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "merging": { + "title": "merging", + "description": "Merging settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "manualCommit": { + "title": "manual commit", + "description": "Whether to use manual commits\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": false + }, + "args": { + "title": "arguments", + "description": "Additional CLI arguments for 'git merge'\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "", + "examples": [ + "--no-ff" + ] + } + }, + "additionalProperties": false + }, + "log": { + "title": "log", + "description": "Log settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "order": { + "title": "order", + "description": "A commit order\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "enum": [ + "date-order", + "author-date-order", + "topo-order", + "default" + ], + "default": "topo-order" + }, + "showGraph": { + "title": "show graph", + "description": "Whether to show a graph\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "enum": [ + "always", + "never", + "when-maximised" + ], + "default": "when-maximised" + }, + "showWholeGraph": { + "title": "show whole graph", + "description": "Whether to show the whole graph\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "skipHookPrefix": { + "title": "skip hook prefix", + "description": "A prefix to skip\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "WIP" + }, + "mainBranches": { + "title": "main branches", + "description": "Main branches\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "array", + "uniqueItems": true, + "items": { + "description": "A main branch\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "minLength": 1, + "examples": [ + "main", + "master" + ] + }, + "default": [ + "main", + "master" + ] + }, + "autoFetch": { + "title": "auto fetch", + "description": "Whether to automatically fetch\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": true + }, + "autoRefresh": { + "title": "auto refresh", + "description": "Whether to automatically refresh\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": true + }, + "fetchAll": { + "title": "fetch all", + "description": "Whether to fetch everything\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": true + }, + "branchLogCmd": { + "title": "branch log cmd", + "description": "A log command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "git log --graph --color=always --abbrev-commit --decorate --date=relative --pretty=medium {{branchName}} --" + }, + "allBranchesLogCmd": { + "title": "all branches log cmd", + "description": "A log command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "git log --graph --all --color=always --abbrev-commit --decorate --date=relative --pretty=medium" + }, + "overrideGpg": { + "title": "override gpg", + "description": "Whether not to spawn a separate process while using GPG\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": false + }, + "disableForcePushing": { + "title": "disable force pushing", + "description": "Whether to disable force pushing\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": false + }, + "parseEmoji": { + "title": "parse emoji", + "description": "Whether to parse emoji\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": false + }, + "diffContextSize": { + "title": "diff context size", + "description": "how many lines of context are shown around a change in diffs\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "integer", + "default": 3 + } + }, + "additionalProperties": false } }, "additionalProperties": false From 975d1e81c0f30bebb39819d215fc87c760fcbbd2 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Tue, 1 Aug 2023 16:12:21 +1000 Subject: [PATCH 03/27] feat(schema): simplify descriptions --- schemas/config.json | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/schemas/config.json b/schemas/config.json index 3023cf4debc..24757980060 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -26,18 +26,18 @@ ] } }, - "title": "settings", - "description": "Settings of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "title": "ui settings", + "description": "Global UI settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "object", "properties": { "gui": { "title": "gui", - "description": "Settings of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "Settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "object", "properties": { "windowSize": { "title": "window size", - "description": "A window size of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "A window size\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "string", "enum": [ "normal", @@ -48,7 +48,7 @@ }, "scrollHeight": { "title": "scroll height", - "description": "A scroll height of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "A scroll height\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "integer", "minimum": 1, "default": 2 @@ -69,7 +69,7 @@ }, "expandFocusedSidePanel": { "title": "expand focused side panel", - "description": "Whether to expand focused side panel of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "Whether to expand focused side panel\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "boolean", "default": false }, @@ -86,7 +86,7 @@ }, "language": { "title": "language", - "description": "A language of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "A language\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "string", "enum": [ "auto", @@ -102,13 +102,13 @@ }, "timeFormat": { "title": "time format", - "description": "A time format of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "A time format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "string", "default": "02 Jan 06" }, "shortTimeFormat": { "title": "short time format", - "description": "A short time format of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "A short time format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "string", "default": "3:04PM" }, @@ -246,61 +246,61 @@ }, "mouseEvents": { "title": "mouse events", - "description": "Whether to enable mouse events of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "Whether to enable mouse events\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "boolean", "default": true }, "skipDiscardChangeWarning": { "title": "skip discard change warning", - "description": "Whether to disable change warning of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "Whether to disable change warning\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "boolean", "default": false }, "skipStashWarning": { "title": "skip stash warning", - "description": "Whether to disable stash warning of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "Whether to disable stash warning\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "boolean", "default": false }, "showFileTree": { "title": "show file tree", - "description": "Whether to render render files of the current UI in a tree format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "Whether to render render files in a tree format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "boolean", "default": true }, "showListFooter": { "title": "show list footer", - "description": "Whether to show list footer of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "Whether to show list footer\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "boolean", "default": true }, "showRandomTip": { "title": "show random tip", - "description": "Whether to show a random tip of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "Whether to show a random tip\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "boolean", "default": true }, "showBranchCommitHash": { "title": "show branch commit hash", - "description": "Whether to show a branch commit hash of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "Whether to show a branch commit hash\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "boolean", "default": false }, "showBottomLine": { "title": "show bottom line", - "description": "Whether to show a bottom line of the current UI unless there is an important information\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "Whether to show a bottom line unless there is an important information\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "boolean", "default": true }, "showCommandLog": { "title": "show command log", - "description": "Whether to show command log of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "Whether to show command log\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "boolean", "default": true }, "nerdFontsVersion": { "title": "nerd fonts version", - "description": "A nerd font version of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "A nerd font version\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "string", "enum": [ "2", @@ -311,14 +311,14 @@ }, "commandLogSize": { "title": "command log size", - "description": "A command log size of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "A command log size\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "integer", "minimum": 0, "default": 8 }, "splitDiff": { "title": "split diff", - "description": "Whether to skip diff of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "Whether to skip diff\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "string", "enum": [ "auto", @@ -334,7 +334,7 @@ }, "border": { "title": "border", - "description": "A border style of the current UI\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "A border style\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "string", "enum": [ "single", From 44f445d04d3ced808c9c90580f1c01d92ef0a29c Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Thu, 3 Aug 2023 15:37:59 +1000 Subject: [PATCH 04/27] fix(schema): colors --- schemas/config.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/schemas/config.json b/schemas/config.json index 24757980060..b1a28eb6739 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -6,7 +6,6 @@ "oneOf": [ { "examples": [ - "default", "black", "red", "green", @@ -14,7 +13,12 @@ "blue", "magenta", "cyan", - "white" + "white", + "bold", + "default", + "reverse", + "underline", + "strikethrough" ] }, { From 21903eec5ce0408f20f4280925ec5136410fe9ba Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Thu, 3 Aug 2023 15:41:52 +1000 Subject: [PATCH 05/27] fix(schema): descriptions --- schemas/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/config.json b/schemas/config.json index b1a28eb6739..38423d9e408 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -31,7 +31,7 @@ } }, "title": "ui settings", - "description": "Global UI settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "UI settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "object", "properties": { "gui": { From 694ba92e1541c15b28a5f11008fadb36dd27e967 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Thu, 3 Aug 2023 17:59:47 +1000 Subject: [PATCH 06/27] feat(schema): support os settings --- schemas/config.json | 96 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/schemas/config.json b/schemas/config.json index 38423d9e408..c8316be658c 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -546,6 +546,102 @@ } }, "additionalProperties": false + }, + "os": { + "title": "os", + "description": "OS settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "copyToClipboardCmd": { + "title": "copy to clipboard cmd", + "description": "A copy to clipboard command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "", + "examples": [ + "printf \"\\033]52;c;$(printf {{text}} | base64)\\a\" > /dev/tty" + ] + }, + "editPreset": { + "title": "edit preset", + "description": "An edit preset\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "enum": [ + "vim", + "nvim", + "emacs", + "nano", + "vscode", + "sublime", + "bbedit", + "kakoune", + "helix", + "xcode" + ], + "default": "" + }, + "edit": { + "title": "edit", + "description": "An editor command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "", + "examples": [ + "vim", + "nvim", + "emacs", + "nano", + "vscode", + "sublime", + "bbedit", + "kakoune", + "helix", + "xcode" + ] + }, + "editAtLine": { + "title": "edit at line", + "description": "An editor command to open at specific line\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "", + "examples": [ + "vim +{{line}} {{filename}}", + "nvim +{{line}} {{filename}}", + "emacs +{{line}} {{filename}}", + "nano +{{line}} {{filename}}", + "vscode -g {{filename}}:{{line}}", + "vscode --goto {{filename}}:{{line}}", + "sublime {{filename}}:{{line}}" + ] + }, + "editAtLineAndWait": { + "title": "edit at line and wait", + "description": "An editor command to open at specific line and wait\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "", + "examples": [ + "vim +{{line}} {{filename}}", + "nvim +{{line}} {{filename}}", + "emacs +{{line}} {{filename}}", + "nano +{{line}} {{filename}}", + "vscode -g {{filename}}:{{line}} -w", + "vscode --goto {{filename}}:{{line}} --wait", + "sublime {{filename}}:{{line}} -w", + "sublime {{filename}}:{{line}} --wait" + ] + }, + "open": { + "title": "open", + "description": "An editor command for non-text files\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "" + }, + "openLink": { + "title": "open link", + "description": "An open link\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "" + } + }, + "additionalProperties": false } }, "additionalProperties": false From 3bab5b5a056270db805f2559fa8abef7d2efb65e Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Thu, 3 Aug 2023 18:10:28 +1000 Subject: [PATCH 07/27] feat(schema): support refresher settings --- schemas/config.json | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/schemas/config.json b/schemas/config.json index c8316be658c..7048780b8d9 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -642,6 +642,28 @@ } }, "additionalProperties": false + }, + "refresher": { + "title": "refresher", + "description": "Refresh settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "refreshInterval": { + "title": "refresh interval", + "description": "A file/submodule refresh interval in seconds\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "integer", + "minimum": 0, + "default": 10 + }, + "fetchInterval": { + "title": "fetch interval", + "description": "A re-fetch interval in seconds\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "integer", + "minimum": 0, + "default": 60 + } + }, + "additionalProperties": false } }, "additionalProperties": false From ea384cddbaab8314e9b1f23011df9fc661774d73 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Thu, 3 Aug 2023 18:11:48 +1000 Subject: [PATCH 08/27] feat(schema): use better links for os settings --- schemas/config.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/schemas/config.json b/schemas/config.json index 7048780b8d9..a80a14121a4 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -549,12 +549,12 @@ }, "os": { "title": "os", - "description": "OS settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "OS settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing", "type": "object", "properties": { "copyToClipboardCmd": { "title": "copy to clipboard cmd", - "description": "A copy to clipboard command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "A copy to clipboard command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing", "type": "string", "default": "", "examples": [ @@ -563,7 +563,7 @@ }, "editPreset": { "title": "edit preset", - "description": "An edit preset\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "An edit preset\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing", "type": "string", "enum": [ "vim", @@ -581,7 +581,7 @@ }, "edit": { "title": "edit", - "description": "An editor command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "An editor command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing", "type": "string", "default": "", "examples": [ @@ -599,7 +599,7 @@ }, "editAtLine": { "title": "edit at line", - "description": "An editor command to open at specific line\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "An editor command to open at specific line\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing", "type": "string", "default": "", "examples": [ @@ -614,7 +614,7 @@ }, "editAtLineAndWait": { "title": "edit at line and wait", - "description": "An editor command to open at specific line and wait\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "An editor command to open at specific line and wait\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing", "type": "string", "default": "", "examples": [ @@ -630,7 +630,7 @@ }, "open": { "title": "open", - "description": "An editor command for non-text files\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "An editor command for non-text files\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing", "type": "string", "default": "" }, From 92ea0e074d176f7b38eb93a01a72763f1558ddcd Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Sat, 5 Aug 2023 20:51:13 +1000 Subject: [PATCH 09/27] feat(schema): support update settings --- schemas/config.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/schemas/config.json b/schemas/config.json index a80a14121a4..b8b7d799e0c 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -664,6 +664,32 @@ } }, "additionalProperties": false + }, + "update": { + "title": "update", + "description": "Update settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "method": { + "title": "method", + "description": "A method\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "enum": [ + "prompt", + "background", + "never" + ], + "default": "prompt" + }, + "days": { + "title": "days", + "description": "A day count\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "integer", + "minimum": 0, + "default": 14 + } + }, + "additionalProperties": false } }, "additionalProperties": false From f4043cbb7306ee459d47823ded444337155bf552 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Sat, 5 Aug 2023 21:00:37 +1000 Subject: [PATCH 10/27] feat(schema): support remaining top-level keys --- schemas/config.json | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/schemas/config.json b/schemas/config.json index b8b7d799e0c..372864b5f69 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -690,6 +690,42 @@ } }, "additionalProperties": false + }, + "confirmOnQuit": { + "title": "confirm on quit", + "description": "Whether to confirm on on quit\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": false + }, + "quitOnTopLevelReturn": { + "title": "quit on top level return", + "description": "Whether to quit on 'esc' press when when there is nothing to cancel/close\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": false + }, + "disableStartupPopups": { + "title": "disable startup popups", + "description": "Whether to disable startup popups\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": false + }, + "notARepository": { + "title": "not a repository", + "description": "An action for non-repositories\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "enum": [ + "prompt", + "create", + "skip", + "quit" + ], + "default": "prompt" + }, + "promptToReturnFromSubprocess": { + "title": "prompt to return from subprocess", + "description": "Whether to show confirmation on subprocess termination\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": true } }, "additionalProperties": false From bc619cfed87cd6884c55c5169d2ea8a325c711a2 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Sat, 5 Aug 2023 22:06:33 +1000 Subject: [PATCH 11/27] feat(schema): support keybindings --- schemas/config.json | 800 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 800 insertions(+) diff --git a/schemas/config.json b/schemas/config.json index 372864b5f69..c4d449c0f39 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -726,6 +726,806 @@ "description": "Whether to show confirmation on subprocess termination\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "boolean", "default": true + }, + "keybinding": { + "title": "keybinding", + "description": "Keybinding settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "universal": { + "title": "universal", + "description": "Universal keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "quit": { + "title": "quit", + "description": "A quit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "q" + }, + "quit-alt1": { + "title": "quit-alt1", + "description": "A quit-alt1 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-c>" + }, + "return": { + "title": "return", + "description": "A return keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<esc>" + }, + "quitWithoutChangingDirectory": { + "title": "quit without changing directory", + "description": "A quit without changing directory keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "Q" + }, + "togglePanel": { + "title": "toggle panel", + "description": "A toggle panel keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<tab>" + }, + "prevItem": { + "title": "prev item", + "description": "A previous item keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<up>" + }, + "nextItem": { + "title": "next item", + "description": "A next item keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<down>" + }, + "prevItem-alt": { + "title": "prev item-alt", + "description": "A previous item-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "k" + }, + "nextItem-alt": { + "title": "next item-alt", + "description": "A next item-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "j" + }, + "prevPage": { + "title": "prev page", + "description": "A previous page keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "," + }, + "nextPage": { + "title": "next page", + "description": "A next page keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "." + }, + "gotoTop": { + "title": "goto top", + "description": "A goto top keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<" + }, + "gotoBottom": { + "title": "goto bottom", + "description": "A goto bottom keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": ">" + }, + "scrollLeft": { + "title": "scroll left", + "description": "A scroll left keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "H" + }, + "scrollRight": { + "title": "scroll right", + "description": "A scroll right keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "L" + }, + "prevBlock": { + "title": "prev block", + "description": "A previous block keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<left>" + }, + "nextBlock": { + "title": "next block", + "description": "A next block keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<right>" + }, + "prevBlock-alt": { + "title": "prev block-alt", + "description": "A previous block-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "h" + }, + "nextBlock-alt": { + "title": "next block-alt", + "description": "A next block-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "l" + }, + "jumpToBlock": { + "title": "jump to block", + "description": "A jump to block keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "array", + "default": [ + "1", + "2", + "3", + "4", + "5" + ] + }, + "nextMatch": { + "title": "next match", + "description": "A next match keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "n" + }, + "prevMatch": { + "title": "prev match", + "description": "A previous match keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "N" + }, + "optionMenu": { + "title": "option menu", + "description": "An option menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "null", + "default": null + }, + "optionMenu-alt1": { + "title": "option menu-alt1", + "description": "An option menu-alt1 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "?" + }, + "select": { + "title": "select", + "description": "A select keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<space>" + }, + "goInto": { + "title": "go into", + "description": "A go into keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<enter>" + }, + "openRecentRepos": { + "title": "open recent repos", + "description": "An open recent repos keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-r>" + }, + "confirm": { + "title": "confirm", + "description": "A confirm keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<enter>" + }, + "remove": { + "title": "remove", + "description": "A remove keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "d" + }, + "new": { + "title": "new", + "description": "A new keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "n" + }, + "edit": { + "title": "edit", + "description": "A edit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "e" + }, + "openFile": { + "title": "open file", + "description": "An open file keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "o" + }, + "scrollUpMain": { + "title": "scroll up main", + "description": "A scroll up main keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<pgup>" + }, + "scrollDownMain": { + "title": "scroll down main", + "description": "A scroll down main keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<pgdown>" + }, + "scrollUpMain-alt1": { + "title": "scroll up main-alt1", + "description": "A scroll up main-alt1 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "K" + }, + "scrollDownMain-alt1": { + "title": "scroll down main-alt1", + "description": "A scroll down main-alt1 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "J" + }, + "scrollUpMain-alt2": { + "title": "scroll up main-alt2", + "description": "A scroll up main-alt2 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-u>" + }, + "scrollDownMain-alt2": { + "title": "scroll down main-alt2", + "description": "A scroll down main-alt2 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-d>" + }, + "executeCustomCommand": { + "title": "execute custom command", + "description": "A execute custom command keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": ":" + }, + "createRebaseOptionsMenu": { + "title": "create rebase options menu", + "description": "A create rebase options menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "m" + }, + "pushFiles": { + "title": "push files", + "description": "A push files keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "P" + }, + "pullFiles": { + "title": "pull files", + "description": "A pull files keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "p" + }, + "refresh": { + "title": "refresh", + "description": "A refresh keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "R" + }, + "createPatchOptionsMenu": { + "title": "create patch options menu", + "description": "A create patch options menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-p>" + }, + "nextTab": { + "title": "next tab", + "description": "A next tab keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "]" + }, + "prevTab": { + "title": "prev tab", + "description": "A previous tab keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "[" + }, + "nextScreenMode": { + "title": "next screen mode", + "description": "A next screen mode keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "+" + }, + "prevScreenMode": { + "title": "prev screen mode", + "description": "A previous screen mode keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "_" + }, + "undo": { + "title": "undo", + "description": "An undo keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "z" + }, + "redo": { + "title": "redo", + "description": "A redo keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-z>" + }, + "filteringMenu": { + "title": "filtering menu", + "description": "A filtering menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-s>" + }, + "diffingMenu": { + "title": "diffing menu", + "description": "A diffing menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "W" + }, + "diffingMenu-alt": { + "title": "diffing menu-alt", + "description": "A diffing menu-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-e>" + }, + "copyToClipboard": { + "title": "copy to clipboard", + "description": "A copy to clipboard keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-o>" + }, + "submitEditorText": { + "title": "submit editor text", + "description": "A submit editor text keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<enter>" + }, + "extrasMenu": { + "title": "extras menu", + "description": "A extras menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "@" + }, + "toggleWhitespaceInDiffView": { + "title": "toggle whitespace in diff view", + "description": "A toggle whitespace in diff view keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-w>" + }, + "increaseContextInDiffView": { + "title": "increase context in diff view", + "description": "A increase context in diff view keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "}" + }, + "decreaseContextInDiffView": { + "title": "decrease context in diff view", + "description": "A decrease context in diff view keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "{" + } + }, + "additionalProperties": false + }, + "status": { + "title": "status", + "description": "Status keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "checkForUpdate": { + "title": "check for update", + "description": "A check for update keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "u" + }, + "recentRepos": { + "title": "recent repos", + "description": "A recent repos keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<enter>" + } + }, + "additionalProperties": false + }, + "files": { + "title": "files", + "description": "File keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "commitChanges": { + "title": "commit changes", + "description": "A commit changes keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "c" + }, + "commitChangesWithoutHook": { + "title": "commit changes without hook", + "description": "A commit changes without hook keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "w" + }, + "amendLastCommit": { + "title": "amend last commit", + "description": "A amend last commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "A" + }, + "commitChangesWithEditor": { + "title": "commit changes with editor", + "description": "A commit changes with editor keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "C" + }, + "ignoreFile": { + "title": "ignore file", + "description": "A ignore file keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "i" + }, + "refreshFiles": { + "title": "refresh files", + "description": "A refresh files keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "r" + }, + "stashAllChanges": { + "title": "stash all changes", + "description": "A stash all changes keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "s" + }, + "viewStashOptions": { + "title": "view stash options", + "description": "A view stash options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "S" + }, + "toggleStagedAll": { + "title": "toggle staged all", + "description": "A toggle staged all keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "a" + }, + "viewResetOptions": { + "title": "view reset options", + "description": "A view reset options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "D" + }, + "fetch": { + "title": "fetch", + "description": "A fetch keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "f" + }, + "toggleTreeView": { + "title": "toggle tree view", + "description": "A toggle tree view keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "`" + }, + "openMergeTool": { + "title": "open merge tool", + "description": "A open merge tool keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "M" + }, + "openStatusFilter": { + "title": "open status filter", + "description": "A open status filter keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-b>" + } + }, + "additionalProperties": false + }, + "branches": { + "title": "branches", + "description": "Branch keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "createPullRequest": { + "title": "create pull request", + "description": "A create pull request keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "o" + }, + "viewPullRequestOptions": { + "title": "view pull request options", + "description": "A view pull request options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "O" + }, + "checkoutBranchByName": { + "title": "checkout branch by name", + "description": "A checkout branch by name keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "c" + }, + "forceCheckoutBranch": { + "title": "force checkout branch", + "description": "A force checkout branch keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "F" + }, + "rebaseBranch": { + "title": "rebase branch", + "description": "A rebase branch keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "r" + }, + "renameBranch": { + "title": "rename branch", + "description": "A rename branch keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "R" + }, + "mergeIntoCurrentBranch": { + "title": "merge into current branch", + "description": "A merge into current branch keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "M" + }, + "viewGitFlowOptions": { + "title": "view git flow options", + "description": "A view git flow options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "i" + }, + "fastForward": { + "title": "fast forward", + "description": "A fast forward keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "f" + }, + "createTag": { + "title": "create tag", + "description": "A create tag keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "T" + }, + "pushTag": { + "title": "push tag", + "description": "A push tag keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "P" + }, + "setUpstream": { + "title": "set upstream", + "description": "A set upstream keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "u" + }, + "fetchRemote": { + "title": "fetch remote", + "description": "A fetch remote keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "f" + } + }, + "additionalProperties": false + }, + "commits": { + "title": "commits", + "description": "Commit keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "squashDown": { + "title": "squash down", + "description": "A squash down keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "s" + }, + "renameCommit": { + "title": "rename commit", + "description": "A rename commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "r" + }, + "renameCommitWithEditor": { + "title": "rename commit with editor", + "description": "A rename commit with editor keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "R" + }, + "viewResetOptions": { + "title": "view reset options", + "description": "A view reset options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "g" + }, + "markCommitAsFixup": { + "title": "mark commit as fixup", + "description": "A mark commit as fixup keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "f" + }, + "createFixupCommit": { + "title": "create fixup commit", + "description": "A create fixup commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "F" + }, + "squashAboveCommits": { + "title": "squash above commits", + "description": "A squash above commits keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "S" + }, + "moveDownCommit": { + "title": "move down commit", + "description": "A move down commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-j>" + }, + "moveUpCommit": { + "title": "move up commit", + "description": "A move up commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-k>" + }, + "amendToCommit": { + "title": "amend to commit", + "description": "A amend to commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "A" + }, + "pickCommit": { + "title": "pick commit", + "description": "A pick commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "p" + }, + "revertCommit": { + "title": "revert commit", + "description": "A revert commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "t" + }, + "cherryPickCopy": { + "title": "cherry pick copy", + "description": "A cherry pick copy keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "c" + }, + "cherryPickCopyRange": { + "title": "cherry pick copy range", + "description": "A cherry pick copy range keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "C" + }, + "pasteCommits": { + "title": "paste commits", + "description": "A paste commits keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "v" + }, + "tagCommit": { + "title": "tag commit", + "description": "A tag commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "T" + }, + "checkoutCommit": { + "title": "checkout commit", + "description": "A checkout commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<space>" + }, + "resetCherryPick": { + "title": "reset cherry pick", + "description": "A reset cherry pick keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-R>" + }, + "copyCommitMessageToClipboard": { + "title": "copy commit message to clipboard", + "description": "A copy commit message to clipboard keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-y>" + }, + "openLogMenu": { + "title": "open log menu", + "description": "A open log menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "<c-l>" + }, + "viewBisectOptions": { + "title": "view bisect options", + "description": "A view bisect options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "b" + } + }, + "additionalProperties": false + }, + "stash": { + "title": "stash", + "description": "Stash keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "popStash": { + "title": "pop stash", + "description": "A pop stash keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "g" + }, + "renameStash": { + "title": "rename stash", + "description": "A rename stash keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "r" + } + }, + "additionalProperties": false + }, + "commitFiles": { + "title": "commit files", + "description": "Commit file keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "checkoutCommitFile": { + "title": "checkout commit file", + "description": "A checkout commit file keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "c" + } + }, + "additionalProperties": false + }, + "main": { + "title": "main", + "description": "Main keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "toggleDragSelect": { + "title": "toggle drag select", + "description": "A toggle drag select keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "v" + }, + "toggleDragSelect-alt": { + "title": "toggle drag select-alt", + "description": "A toggle drag select-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "V" + }, + "toggleSelectHunk": { + "title": "toggle select hunk", + "description": "A toggle select hunk keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "a" + }, + "pickBothHunks": { + "title": "pick both hunks", + "description": "A pick both hunks keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "b" + } + }, + "additionalProperties": false + }, + "submodules": { + "title": "submodules", + "description": "Submodules keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "object", + "properties": { + "init": { + "title": "init", + "description": "An init keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "i" + }, + "update": { + "title": "update", + "description": "An update keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "u" + }, + "bulkMenu": { + "title": "bulk menu", + "description": "A bulk menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "string", + "default": "b" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false } }, "additionalProperties": false From ae87be3e6b73c329d17a5728658e3ce7b3ca30f7 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Sat, 5 Aug 2023 22:17:06 +1000 Subject: [PATCH 12/27] fix(schema): color definition --- schemas/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/config.json b/schemas/config.json index c4d449c0f39..98bf4b3b9a0 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -5,7 +5,7 @@ "type": "string", "oneOf": [ { - "examples": [ + "enum": [ "black", "red", "green", From 76c20fc7320940486cc388c292e84cb760d4f4a2 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Sat, 5 Aug 2023 22:18:59 +1000 Subject: [PATCH 13/27] feat(schema): support settings for custom colors --- schemas/config.json | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/schemas/config.json b/schemas/config.json index 98bf4b3b9a0..e5f43b10619 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -347,6 +347,39 @@ "hidden" ], "default": "single" + }, + "authorColors": { + "title": "author colors", + "description": "Author colors", + "type": "object", + "properties": { + "*": { + "title": "author color", + "description": "An author color", + "$ref": "#/definitions/color" + } + }, + "patternProperties": { + ".": { + "title": "author color", + "description": "An author color", + "$ref": "#/definitions/color" + } + }, + "additionalProperties": false + }, + "branchColors": { + "title": "branch colors", + "description": "Branch colors", + "type": "object", + "patternProperties": { + ".": { + "title": "branch color", + "description": "A branch color", + "$ref": "#/definitions/color" + } + }, + "additionalProperties": false } }, "additionalProperties": false From 56db49e2cb7ea832f8bb7f5be1837d3327169dc3 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Sat, 5 Aug 2023 22:23:26 +1000 Subject: [PATCH 14/27] fix(schema): permit disabling keybindings --- schemas/config.json | 245 +++++++++++++++++++++++--------------------- 1 file changed, 128 insertions(+), 117 deletions(-) diff --git a/schemas/config.json b/schemas/config.json index e5f43b10619..430173d122e 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -28,6 +28,17 @@ ] } ] + }, + "keybinding": { + "type": [ + "string", + "null" + ], + "examples": [ + "<enter>", + "<c-b>", + "g" + ] } }, "title": "ui settings", @@ -773,115 +784,115 @@ "quit": { "title": "quit", "description": "A quit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "q" }, "quit-alt1": { "title": "quit-alt1", "description": "A quit-alt1 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-c>" }, "return": { "title": "return", "description": "A return keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<esc>" }, "quitWithoutChangingDirectory": { "title": "quit without changing directory", "description": "A quit without changing directory keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "Q" }, "togglePanel": { "title": "toggle panel", "description": "A toggle panel keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<tab>" }, "prevItem": { "title": "prev item", "description": "A previous item keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<up>" }, "nextItem": { "title": "next item", "description": "A next item keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<down>" }, "prevItem-alt": { "title": "prev item-alt", "description": "A previous item-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "k" }, "nextItem-alt": { "title": "next item-alt", "description": "A next item-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "j" }, "prevPage": { "title": "prev page", "description": "A previous page keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "," }, "nextPage": { "title": "next page", "description": "A next page keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "." }, "gotoTop": { "title": "goto top", "description": "A goto top keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<" }, "gotoBottom": { "title": "goto bottom", "description": "A goto bottom keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": ">" }, "scrollLeft": { "title": "scroll left", "description": "A scroll left keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "H" }, "scrollRight": { "title": "scroll right", "description": "A scroll right keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "L" }, "prevBlock": { "title": "prev block", "description": "A previous block keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<left>" }, "nextBlock": { "title": "next block", "description": "A next block keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<right>" }, "prevBlock-alt": { "title": "prev block-alt", "description": "A previous block-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "h" }, "nextBlock-alt": { "title": "next block-alt", "description": "A next block-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "l" }, "jumpToBlock": { @@ -899,13 +910,13 @@ "nextMatch": { "title": "next match", "description": "A next match keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "n" }, "prevMatch": { "title": "prev match", "description": "A previous match keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "N" }, "optionMenu": { @@ -917,217 +928,217 @@ "optionMenu-alt1": { "title": "option menu-alt1", "description": "An option menu-alt1 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "?" }, "select": { "title": "select", "description": "A select keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<space>" }, "goInto": { "title": "go into", "description": "A go into keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<enter>" }, "openRecentRepos": { "title": "open recent repos", "description": "An open recent repos keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-r>" }, "confirm": { "title": "confirm", "description": "A confirm keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<enter>" }, "remove": { "title": "remove", "description": "A remove keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "d" }, "new": { "title": "new", "description": "A new keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "n" }, "edit": { "title": "edit", "description": "A edit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "e" }, "openFile": { "title": "open file", "description": "An open file keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "o" }, "scrollUpMain": { "title": "scroll up main", "description": "A scroll up main keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<pgup>" }, "scrollDownMain": { "title": "scroll down main", "description": "A scroll down main keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<pgdown>" }, "scrollUpMain-alt1": { "title": "scroll up main-alt1", "description": "A scroll up main-alt1 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "K" }, "scrollDownMain-alt1": { "title": "scroll down main-alt1", "description": "A scroll down main-alt1 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "J" }, "scrollUpMain-alt2": { "title": "scroll up main-alt2", "description": "A scroll up main-alt2 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-u>" }, "scrollDownMain-alt2": { "title": "scroll down main-alt2", "description": "A scroll down main-alt2 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-d>" }, "executeCustomCommand": { "title": "execute custom command", "description": "A execute custom command keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": ":" }, "createRebaseOptionsMenu": { "title": "create rebase options menu", "description": "A create rebase options menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "m" }, "pushFiles": { "title": "push files", "description": "A push files keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "P" }, "pullFiles": { "title": "pull files", "description": "A pull files keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "p" }, "refresh": { "title": "refresh", "description": "A refresh keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "R" }, "createPatchOptionsMenu": { "title": "create patch options menu", "description": "A create patch options menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-p>" }, "nextTab": { "title": "next tab", "description": "A next tab keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "]" }, "prevTab": { "title": "prev tab", "description": "A previous tab keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "[" }, "nextScreenMode": { "title": "next screen mode", "description": "A next screen mode keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "+" }, "prevScreenMode": { "title": "prev screen mode", "description": "A previous screen mode keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "_" }, "undo": { "title": "undo", "description": "An undo keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "z" }, "redo": { "title": "redo", "description": "A redo keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-z>" }, "filteringMenu": { "title": "filtering menu", "description": "A filtering menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-s>" }, "diffingMenu": { "title": "diffing menu", "description": "A diffing menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "W" }, "diffingMenu-alt": { "title": "diffing menu-alt", "description": "A diffing menu-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-e>" }, "copyToClipboard": { "title": "copy to clipboard", "description": "A copy to clipboard keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-o>" }, "submitEditorText": { "title": "submit editor text", "description": "A submit editor text keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<enter>" }, "extrasMenu": { "title": "extras menu", "description": "A extras menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "@" }, "toggleWhitespaceInDiffView": { "title": "toggle whitespace in diff view", "description": "A toggle whitespace in diff view keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-w>" }, "increaseContextInDiffView": { "title": "increase context in diff view", "description": "A increase context in diff view keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "}" }, "decreaseContextInDiffView": { "title": "decrease context in diff view", "description": "A decrease context in diff view keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "{" } }, @@ -1141,13 +1152,13 @@ "checkForUpdate": { "title": "check for update", "description": "A check for update keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "u" }, "recentRepos": { "title": "recent repos", "description": "A recent repos keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<enter>" } }, @@ -1161,85 +1172,85 @@ "commitChanges": { "title": "commit changes", "description": "A commit changes keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "c" }, "commitChangesWithoutHook": { "title": "commit changes without hook", "description": "A commit changes without hook keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "w" }, "amendLastCommit": { "title": "amend last commit", "description": "A amend last commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "A" }, "commitChangesWithEditor": { "title": "commit changes with editor", "description": "A commit changes with editor keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "C" }, "ignoreFile": { "title": "ignore file", "description": "A ignore file keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "i" }, "refreshFiles": { "title": "refresh files", "description": "A refresh files keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "r" }, "stashAllChanges": { "title": "stash all changes", "description": "A stash all changes keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "s" }, "viewStashOptions": { "title": "view stash options", "description": "A view stash options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "S" }, "toggleStagedAll": { "title": "toggle staged all", "description": "A toggle staged all keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "a" }, "viewResetOptions": { "title": "view reset options", "description": "A view reset options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "D" }, "fetch": { "title": "fetch", "description": "A fetch keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "f" }, "toggleTreeView": { "title": "toggle tree view", "description": "A toggle tree view keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "`" }, "openMergeTool": { "title": "open merge tool", "description": "A open merge tool keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "M" }, "openStatusFilter": { "title": "open status filter", "description": "A open status filter keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-b>" } }, @@ -1253,79 +1264,79 @@ "createPullRequest": { "title": "create pull request", "description": "A create pull request keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "o" }, "viewPullRequestOptions": { "title": "view pull request options", "description": "A view pull request options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "O" }, "checkoutBranchByName": { "title": "checkout branch by name", "description": "A checkout branch by name keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "c" }, "forceCheckoutBranch": { "title": "force checkout branch", "description": "A force checkout branch keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "F" }, "rebaseBranch": { "title": "rebase branch", "description": "A rebase branch keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "r" }, "renameBranch": { "title": "rename branch", "description": "A rename branch keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "R" }, "mergeIntoCurrentBranch": { "title": "merge into current branch", "description": "A merge into current branch keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "M" }, "viewGitFlowOptions": { "title": "view git flow options", "description": "A view git flow options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "i" }, "fastForward": { "title": "fast forward", "description": "A fast forward keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "f" }, "createTag": { "title": "create tag", "description": "A create tag keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "T" }, "pushTag": { "title": "push tag", "description": "A push tag keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "P" }, "setUpstream": { "title": "set upstream", "description": "A set upstream keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "u" }, "fetchRemote": { "title": "fetch remote", "description": "A fetch remote keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "f" } }, @@ -1339,127 +1350,127 @@ "squashDown": { "title": "squash down", "description": "A squash down keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "s" }, "renameCommit": { "title": "rename commit", "description": "A rename commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "r" }, "renameCommitWithEditor": { "title": "rename commit with editor", "description": "A rename commit with editor keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "R" }, "viewResetOptions": { "title": "view reset options", "description": "A view reset options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "g" }, "markCommitAsFixup": { "title": "mark commit as fixup", "description": "A mark commit as fixup keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "f" }, "createFixupCommit": { "title": "create fixup commit", "description": "A create fixup commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "F" }, "squashAboveCommits": { "title": "squash above commits", "description": "A squash above commits keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "S" }, "moveDownCommit": { "title": "move down commit", "description": "A move down commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-j>" }, "moveUpCommit": { "title": "move up commit", "description": "A move up commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-k>" }, "amendToCommit": { "title": "amend to commit", "description": "A amend to commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "A" }, "pickCommit": { "title": "pick commit", "description": "A pick commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "p" }, "revertCommit": { "title": "revert commit", "description": "A revert commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "t" }, "cherryPickCopy": { "title": "cherry pick copy", "description": "A cherry pick copy keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "c" }, "cherryPickCopyRange": { "title": "cherry pick copy range", "description": "A cherry pick copy range keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "C" }, "pasteCommits": { "title": "paste commits", "description": "A paste commits keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "v" }, "tagCommit": { "title": "tag commit", "description": "A tag commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "T" }, "checkoutCommit": { "title": "checkout commit", "description": "A checkout commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<space>" }, "resetCherryPick": { "title": "reset cherry pick", "description": "A reset cherry pick keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-R>" }, "copyCommitMessageToClipboard": { "title": "copy commit message to clipboard", "description": "A copy commit message to clipboard keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-y>" }, "openLogMenu": { "title": "open log menu", "description": "A open log menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "<c-l>" }, "viewBisectOptions": { "title": "view bisect options", "description": "A view bisect options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "b" } }, @@ -1473,13 +1484,13 @@ "popStash": { "title": "pop stash", "description": "A pop stash keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "g" }, "renameStash": { "title": "rename stash", "description": "A rename stash keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "r" } }, @@ -1493,7 +1504,7 @@ "checkoutCommitFile": { "title": "checkout commit file", "description": "A checkout commit file keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "c" } }, @@ -1507,25 +1518,25 @@ "toggleDragSelect": { "title": "toggle drag select", "description": "A toggle drag select keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "v" }, "toggleDragSelect-alt": { "title": "toggle drag select-alt", "description": "A toggle drag select-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "V" }, "toggleSelectHunk": { "title": "toggle select hunk", "description": "A toggle select hunk keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "a" }, "pickBothHunks": { "title": "pick both hunks", "description": "A pick both hunks keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "b" } }, @@ -1539,19 +1550,19 @@ "init": { "title": "init", "description": "An init keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "i" }, "update": { "title": "update", "description": "An update keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "u" }, "bulkMenu": { "title": "bulk menu", "description": "A bulk menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", - "type": "string", + "$ref": "#/definitions/keybinding", "default": "b" } }, From 02866ab1588548c90704da898ad0bb28ed34945d Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Sat, 5 Aug 2023 22:29:36 +1000 Subject: [PATCH 15/27] feat(schema): support services --- schemas/config.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/schemas/config.json b/schemas/config.json index 430173d122e..a9595a96bf2 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -1570,6 +1570,20 @@ } }, "additionalProperties": false + }, + "services": { + "title": "services", + "description": "Service settings", + "type": "object", + "patternProperties": { + ".": { + "title": "service", + "description": "A service", + "type": "string", + "pattern": "^[^:]+:[^:]+$" + } + }, + "additionalProperties": false } }, "additionalProperties": false From b9719b4b2bba7de63a8b7176f2579202ee50d1eb Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Sat, 5 Aug 2023 22:35:20 +1000 Subject: [PATCH 16/27] feat(schema): support commit prefixes --- schemas/config.json | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/schemas/config.json b/schemas/config.json index a9595a96bf2..7d82b9b38b6 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -587,6 +587,44 @@ "description": "how many lines of context are shown around a change in diffs\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "integer", "default": 3 + }, + "commitPrefixes": { + "title": "commit prefixes", + "description": "Commit prefixes", + "type": "object", + "patternProperties": { + ".": { + "title": "repository path", + "description": "A repository path", + "type": "object", + "required": [ + "pattern", + "replace" + ], + "properties": { + "pattern": { + "title": "pattern", + "description": "A pattern", + "type": "string", + "minLength": 1, + "examples": [ + "^\\w+\\/(\\w+-\\w+).*" + ] + }, + "replace": { + "title": "replace", + "description": "A replacement", + "type": "string", + "minLength": 1, + "examples": [ + "[$1] " + ] + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false } }, "additionalProperties": false From 6388b0dbea0932f0d662766c0fa00bf37974336b Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Sun, 6 Aug 2023 04:40:01 +1000 Subject: [PATCH 17/27] feat(schema): add links to docs --- schemas/config.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/schemas/config.json b/schemas/config.json index 7d82b9b38b6..3cc5bd1440a 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -361,19 +361,19 @@ }, "authorColors": { "title": "author colors", - "description": "Author colors", + "description": "Author colors\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-author-color", "type": "object", "properties": { "*": { "title": "author color", - "description": "An author color", + "description": "An author color\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-author-color", "$ref": "#/definitions/color" } }, "patternProperties": { ".": { "title": "author color", - "description": "An author color", + "description": "An author color\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-author-color", "$ref": "#/definitions/color" } }, @@ -381,12 +381,12 @@ }, "branchColors": { "title": "branch colors", - "description": "Branch colors", + "description": "Branch colors\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-branch-color", "type": "object", "patternProperties": { ".": { "title": "branch color", - "description": "A branch color", + "description": "A branch color\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-branch-color", "$ref": "#/definitions/color" } }, @@ -590,12 +590,12 @@ }, "commitPrefixes": { "title": "commit prefixes", - "description": "Commit prefixes", + "description": "Commit prefixes\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#predefined-commit-message-prefix", "type": "object", "patternProperties": { ".": { "title": "repository path", - "description": "A repository path", + "description": "A repository path\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#predefined-commit-message-prefix", "type": "object", "required": [ "pattern", @@ -604,7 +604,7 @@ "properties": { "pattern": { "title": "pattern", - "description": "A pattern", + "description": "A pattern\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#predefined-commit-message-prefix", "type": "string", "minLength": 1, "examples": [ @@ -613,7 +613,7 @@ }, "replace": { "title": "replace", - "description": "A replacement", + "description": "A replacement\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#predefined-commit-message-prefix", "type": "string", "minLength": 1, "examples": [ @@ -1611,12 +1611,12 @@ }, "services": { "title": "services", - "description": "Service settings", + "description": "Service settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-pull-request-urls", "type": "object", "patternProperties": { ".": { "title": "service", - "description": "A service", + "description": "A service\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-pull-request-urls", "type": "string", "pattern": "^[^:]+:[^:]+$" } From f3af388eb65c1a13251cce20dce18c6bc8a64c9a Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Mon, 7 Aug 2023 00:55:44 +1000 Subject: [PATCH 18/27] feat(schema): support top custom command keys --- schemas/config.json | 104 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/schemas/config.json b/schemas/config.json index 3cc5bd1440a..6cd49e1155b 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -1622,6 +1622,110 @@ } }, "additionalProperties": false + }, + "customCommands": { + "title": "custom commands", + "description": "Custom commands\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "object", + "required": [ + "key", + "command", + "context" + ], + "properties": { + "key": { + "title": "key", + "description": "A command trigger\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "$ref": "#/definitions/keybinding" + }, + "command": { + "title": "command", + "description": "A command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "string", + "default": "", + "examples": [ + "git fetch {{.Form.Remote}} {{.Form.Branch}} && git checkout FETCH_HEAD" + ] + }, + "context": { + "title": "context", + "description": "A context\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "string", + "enum": [ + "status", + "files", + "worktrees", + "localBranches", + "remotes", + "remoteBranches", + "tags", + "commits", + "reflogCommits", + "subCommits", + "commitFiles", + "stash", + "global" + ] + }, + "subprocess": { + "title": "subprocess", + "description": "Whether to run command in subprocess\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "boolean", + "default": false + }, + "prompts": { + "title": "prompts", + "description": "Prompts before running a command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "object", + "properties": {}, + "additionalProperties": false + }, + "loadingText": { + "title": "loading text", + "description": "Text to display while waiting for command to finish\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "string", + "default": "", + "examples": [ + "Loading..." + ] + }, + "description": { + "title": "description", + "description": "A description\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "string", + "default": "", + "examples": [ + "Checkout a remote branch as FETCH_HEAD" + ] + }, + "stream": { + "title": "stream", + "description": "Whether to stream command output to Command Log panel\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "boolean", + "default": false + }, + "showOutput": { + "title": "show output", + "description": "Whether to show the command output in popup\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "boolean", + "default": false + }, + "after": { + "title": "after", + "description": "Actions to take after the command has completed\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "object", + "properties": { + "checkForConflicts": { + "title": "check for conflicts", + "description": "Whether to check for conflicts before running command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false } }, "additionalProperties": false From c19a69624c88355f5d3d80de2f3cae53e91a27e0 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Mon, 7 Aug 2023 01:27:48 +1000 Subject: [PATCH 19/27] feat(schema): support input prompt --- schemas/config.json | 116 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 113 insertions(+), 3 deletions(-) diff --git a/schemas/config.json b/schemas/config.json index 6cd49e1155b..34092dd270f 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -39,6 +39,33 @@ "<c-b>", "g" ] + }, + "custom-commands-prompts-type-property": { + "title": "type", + "description": "A type\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#common-fields", + "type": "string", + "enum": [ + "input", + "confirm", + "menu", + "menuFromCommand" + ] + }, + "custom-commands-prompts-title-property": { + "title": "title", + "description": "A title\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#common-fields", + "type": "string", + "examples": [ + "Remote branch:" + ] + }, + "custom-commands-prompts-key-property": { + "title": "key", + "description": "A key\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#common-fields", + "type": "string", + "examples": [ + "Branch" + ] } }, "title": "ui settings", @@ -1676,9 +1703,92 @@ "prompts": { "title": "prompts", "description": "Prompts before running a command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", - "type": "object", - "properties": {}, - "additionalProperties": false + "type": "array", + "items": { + "description": "A prompt before running a command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/custom-commands-prompts-type-property" + }, + "title": { + "$ref": "#/definitions/custom-commands-prompts-title-property" + }, + "key": { + "$ref": "#/definitions/custom-commands-prompts-key-property" + } + }, + "allOf": [ + { + "if": { + "properties": { + "type": { + "const": "input" + } + } + }, + "then": { + "properties": { + "type": { + "$ref": "#/definitions/custom-commands-prompts-type-property" + }, + "title": { + "$ref": "#/definitions/custom-commands-prompts-title-property" + }, + "key": { + "$ref": "#/definitions/custom-commands-prompts-key-property" + }, + "initialValue": { + "title": "initial value", + "description": "An initial value\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input", + "type": "string" + }, + "suggestions": { + "title": "suggestions", + "description": "Whether to show suggestions as the input is entered\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input", + "type": "object", + "oneOf": [ + { + "properties": { + "preset": { + "title": "preset", + "description": "A preset\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input", + "type": "string", + "enum": [ + "authors", + "branches", + "files", + "refs", + "remotes", + "remoteBranches", + "tags" + ] + } + }, + "additionalProperties": false + }, + { + "properties": { + "command": { + "title": "command", + "description": "A command where each line in the output is suggestion\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input", + "type": "string", + "default": "", + "examples": [ + "git branch --format='%(refname:short)'" + ] + } + }, + "additionalProperties": false + } + ] + } + }, + "additionalProperties": false + } + } + ] + } }, "loadingText": { "title": "loading text", From 8242d270f2eb7c9982aa58319e0d250808c134ae Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Mon, 7 Aug 2023 01:31:08 +1000 Subject: [PATCH 20/27] feat(schema): require top keys for prompt --- schemas/config.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/schemas/config.json b/schemas/config.json index 34092dd270f..3b909183ca6 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -1707,6 +1707,11 @@ "items": { "description": "A prompt before running a command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", "type": "object", + "required": [ + "type", + "title", + "key" + ], "properties": { "type": { "$ref": "#/definitions/custom-commands-prompts-type-property" From 14c18b3e933292ee3b753fb2689413c9110b0a25 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Mon, 7 Aug 2023 01:33:06 +1000 Subject: [PATCH 21/27] feat(schema): support confirm prompt --- schemas/config.json | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/schemas/config.json b/schemas/config.json index 3b909183ca6..616668accd0 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -1791,6 +1791,37 @@ }, "additionalProperties": false } + }, + { + "if": { + "properties": { + "type": { + "const": "confirm" + } + } + }, + "then": { + "properties": { + "type": { + "$ref": "#/definitions/custom-commands-prompts-type-property" + }, + "title": { + "$ref": "#/definitions/custom-commands-prompts-title-property" + }, + "key": { + "$ref": "#/definitions/custom-commands-prompts-key-property" + }, + "body": { + "title": "body", + "description": "A body\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#confirm", + "type": "string", + "examples": [ + "Are you sure you want to push to the remote?" + ] + } + }, + "additionalProperties": false + } } ] } From b3a1c9c23b68ed29da15d000f4564f3761db3b63 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Mon, 7 Aug 2023 01:43:20 +1000 Subject: [PATCH 22/27] feat(schema): support menu prompt --- schemas/config.json | 63 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/schemas/config.json b/schemas/config.json index 616668accd0..e4a475b7b19 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -1822,6 +1822,69 @@ }, "additionalProperties": false } + }, + { + "if": { + "properties": { + "type": { + "const": "menu" + } + } + }, + "then": { + "required": [ + "options" + ], + "properties": { + "type": { + "$ref": "#/definitions/custom-commands-prompts-type-property" + }, + "title": { + "$ref": "#/definitions/custom-commands-prompts-title-property" + }, + "key": { + "$ref": "#/definitions/custom-commands-prompts-key-property" + }, + "options": { + "title": "options", + "description": "Options\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu", + "type": "array", + "uniqueItems": true, + "items": { + "description": "An option", + "type": "object", + "required": [ + "value" + ], + "properties": { + "name": { + "title": "name", + "description": "A first label part\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu", + "type": "string", + "default": "" + }, + "description": { + "title": "description", + "description": "A second label part\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu", + "type": "string", + "default": "" + }, + "value": { + "title": "value", + "description": "the value that will be used in the command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu", + "type": "string", + "minLength": 1, + "examples": [ + "feature" + ] + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false + } } ] } From e71bef048c09254cfb6d39d26dc171f5405ff031 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Mon, 7 Aug 2023 01:51:02 +1000 Subject: [PATCH 23/27] feat(schema): support menus from commands --- schemas/config.json | 62 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/schemas/config.json b/schemas/config.json index e4a475b7b19..d4119135a52 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -1885,6 +1885,68 @@ }, "additionalProperties": false } + }, + { + "if": { + "properties": { + "type": { + "const": "menuFromCommand" + } + } + }, + "then": { + "required": [ + "command" + ], + "properties": { + "type": { + "$ref": "#/definitions/custom-commands-prompts-type-property" + }, + "title": { + "$ref": "#/definitions/custom-commands-prompts-title-property" + }, + "key": { + "$ref": "#/definitions/custom-commands-prompts-key-property" + }, + "command": { + "title": "command", + "description": "A command to generate options\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command", + "type": "string", + "default": "", + "examples": [ + "git branch -r --list {{.SelectedRemote.Name }}/*" + ] + }, + "filter": { + "title": "filter", + "description": "A regex specifying groups which kept from command output\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command", + "type": "string", + "default": "", + "examples": [ + ".*{{.SelectedRemote.Name }}/(?P<branch>.*)" + ] + }, + "valueFormat": { + "title": "valueFormat", + "description": "A value format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command", + "type": "string", + "default": "", + "examples": [ + "{{ .branch }}" + ] + }, + "labelFormat": { + "title": "labelFormat", + "description": "A label format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command", + "type": "string", + "default": "", + "examples": [ + "{{ .branch | green }}" + ] + } + }, + "additionalProperties": false + } } ] } From 32ddbd3246e18d500ba92818860a72172c2fea6f Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Mon, 7 Aug 2023 01:58:09 +1000 Subject: [PATCH 24/27] fix(schema): add missing property --- schemas/config.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/schemas/config.json b/schemas/config.json index d4119135a52..db527c00535 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -386,6 +386,12 @@ ], "default": "single" }, + "animateExplosion": { + "title": "animate explosion", + "description": "Whether to show explosion animation when nuking working tree\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "type": "boolean", + "default": true + }, "authorColors": { "title": "author colors", "description": "Author colors\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-author-color", From eb4e38465e80c46010c6578dbde6f5c2e7724c14 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Mon, 7 Aug 2023 01:59:51 +1000 Subject: [PATCH 25/27] fix(schema): description rewording --- schemas/config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/schemas/config.json b/schemas/config.json index db527c00535..ac2bce578d3 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -388,7 +388,7 @@ }, "animateExplosion": { "title": "animate explosion", - "description": "Whether to show explosion animation when nuking working tree\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "Whether to show explosion animation while nuking working tree\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "boolean", "default": true }, @@ -814,7 +814,7 @@ }, "quitOnTopLevelReturn": { "title": "quit on top level return", - "description": "Whether to quit on 'esc' press when when there is nothing to cancel/close\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", + "description": "Whether to quit on 'esc' press while there is nothing to cancel/close\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default", "type": "boolean", "default": false }, From 0ff24408ffc8f134e2cb74f7b87772b7612c8fa7 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Mon, 7 Aug 2023 02:01:34 +1000 Subject: [PATCH 26/27] fix(schema): allow empty strings for edit presets --- schemas/config.json | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/schemas/config.json b/schemas/config.json index ac2bce578d3..3f38aa3bcd1 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -680,17 +680,24 @@ "title": "edit preset", "description": "An edit preset\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing", "type": "string", - "enum": [ - "vim", - "nvim", - "emacs", - "nano", - "vscode", - "sublime", - "bbedit", - "kakoune", - "helix", - "xcode" + "oneOf": [ + { + "enum": [ + "vim", + "nvim", + "emacs", + "nano", + "vscode", + "sublime", + "bbedit", + "kakoune", + "helix", + "xcode" + ] + }, + { + "const": "" + } ], "default": "" }, From c232abc861755afc42fc807b9434e29e6e27302f Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg <EmilySeville7cfg@gmail.com> Date: Mon, 7 Aug 2023 02:08:44 +1000 Subject: [PATCH 27/27] fix(schema): custom command definition --- schemas/config.json | 643 ++++++++++++++++++++++---------------------- 1 file changed, 324 insertions(+), 319 deletions(-) diff --git a/schemas/config.json b/schemas/config.json index 3f38aa3bcd1..721e77af8ff 100644 --- a/schemas/config.json +++ b/schemas/config.json @@ -1666,350 +1666,355 @@ "customCommands": { "title": "custom commands", "description": "Custom commands\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", - "type": "object", - "required": [ - "key", - "command", - "context" - ], - "properties": { - "key": { - "title": "key", - "description": "A command trigger\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", - "$ref": "#/definitions/keybinding" - }, - "command": { - "title": "command", - "description": "A command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", - "type": "string", - "default": "", - "examples": [ - "git fetch {{.Form.Remote}} {{.Form.Branch}} && git checkout FETCH_HEAD" - ] - }, - "context": { - "title": "context", - "description": "A context\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", - "type": "string", - "enum": [ - "status", - "files", - "worktrees", - "localBranches", - "remotes", - "remoteBranches", - "tags", - "commits", - "reflogCommits", - "subCommits", - "commitFiles", - "stash", - "global" - ] - }, - "subprocess": { - "title": "subprocess", - "description": "Whether to run command in subprocess\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", - "type": "boolean", - "default": false - }, - "prompts": { - "title": "prompts", - "description": "Prompts before running a command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", - "type": "array", - "items": { - "description": "A prompt before running a command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", - "type": "object", - "required": [ - "type", - "title", - "key" - ], - "properties": { - "type": { - "$ref": "#/definitions/custom-commands-prompts-type-property" - }, - "title": { - "$ref": "#/definitions/custom-commands-prompts-title-property" + "type": "array", + "uniqueItems": true, + "items": { + "description": "A custom command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "object", + "required": [ + "key", + "command", + "context" + ], + "properties": { + "key": { + "title": "key", + "description": "A command trigger\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "$ref": "#/definitions/keybinding" + }, + "command": { + "title": "command", + "description": "A command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "string", + "default": "", + "examples": [ + "git fetch {{.Form.Remote}} {{.Form.Branch}} && git checkout FETCH_HEAD" + ] + }, + "context": { + "title": "context", + "description": "A context\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "string", + "enum": [ + "status", + "files", + "worktrees", + "localBranches", + "remotes", + "remoteBranches", + "tags", + "commits", + "reflogCommits", + "subCommits", + "commitFiles", + "stash", + "global" + ] + }, + "subprocess": { + "title": "subprocess", + "description": "Whether to run command in subprocess\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "boolean", + "default": false + }, + "prompts": { + "title": "prompts", + "description": "Prompts before running a command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "array", + "items": { + "description": "A prompt before running a command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "object", + "required": [ + "type", + "title", + "key" + ], + "properties": { + "type": { + "$ref": "#/definitions/custom-commands-prompts-type-property" + }, + "title": { + "$ref": "#/definitions/custom-commands-prompts-title-property" + }, + "key": { + "$ref": "#/definitions/custom-commands-prompts-key-property" + } }, - "key": { - "$ref": "#/definitions/custom-commands-prompts-key-property" - } - }, - "allOf": [ - { - "if": { - "properties": { - "type": { - "const": "input" + "allOf": [ + { + "if": { + "properties": { + "type": { + "const": "input" + } } + }, + "then": { + "properties": { + "type": { + "$ref": "#/definitions/custom-commands-prompts-type-property" + }, + "title": { + "$ref": "#/definitions/custom-commands-prompts-title-property" + }, + "key": { + "$ref": "#/definitions/custom-commands-prompts-key-property" + }, + "initialValue": { + "title": "initial value", + "description": "An initial value\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input", + "type": "string" + }, + "suggestions": { + "title": "suggestions", + "description": "Whether to show suggestions as the input is entered\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input", + "type": "object", + "oneOf": [ + { + "properties": { + "preset": { + "title": "preset", + "description": "A preset\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input", + "type": "string", + "enum": [ + "authors", + "branches", + "files", + "refs", + "remotes", + "remoteBranches", + "tags" + ] + } + }, + "additionalProperties": false + }, + { + "properties": { + "command": { + "title": "command", + "description": "A command where each line in the output is suggestion\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input", + "type": "string", + "default": "", + "examples": [ + "git branch --format='%(refname:short)'" + ] + } + }, + "additionalProperties": false + } + ] + } + }, + "additionalProperties": false } }, - "then": { - "properties": { - "type": { - "$ref": "#/definitions/custom-commands-prompts-type-property" - }, - "title": { - "$ref": "#/definitions/custom-commands-prompts-title-property" - }, - "key": { - "$ref": "#/definitions/custom-commands-prompts-key-property" - }, - "initialValue": { - "title": "initial value", - "description": "An initial value\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input", - "type": "string" + { + "if": { + "properties": { + "type": { + "const": "confirm" + } + } + }, + "then": { + "properties": { + "type": { + "$ref": "#/definitions/custom-commands-prompts-type-property" + }, + "title": { + "$ref": "#/definitions/custom-commands-prompts-title-property" + }, + "key": { + "$ref": "#/definitions/custom-commands-prompts-key-property" + }, + "body": { + "title": "body", + "description": "A body\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#confirm", + "type": "string", + "examples": [ + "Are you sure you want to push to the remote?" + ] + } }, - "suggestions": { - "title": "suggestions", - "description": "Whether to show suggestions as the input is entered\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input", - "type": "object", - "oneOf": [ - { + "additionalProperties": false + } + }, + { + "if": { + "properties": { + "type": { + "const": "menu" + } + } + }, + "then": { + "required": [ + "options" + ], + "properties": { + "type": { + "$ref": "#/definitions/custom-commands-prompts-type-property" + }, + "title": { + "$ref": "#/definitions/custom-commands-prompts-title-property" + }, + "key": { + "$ref": "#/definitions/custom-commands-prompts-key-property" + }, + "options": { + "title": "options", + "description": "Options\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu", + "type": "array", + "uniqueItems": true, + "items": { + "description": "An option", + "type": "object", + "required": [ + "value" + ], "properties": { - "preset": { - "title": "preset", - "description": "A preset\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input", + "name": { + "title": "name", + "description": "A first label part\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu", "type": "string", - "enum": [ - "authors", - "branches", - "files", - "refs", - "remotes", - "remoteBranches", - "tags" - ] - } - }, - "additionalProperties": false - }, - { - "properties": { - "command": { - "title": "command", - "description": "A command where each line in the output is suggestion\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input", + "default": "" + }, + "description": { + "title": "description", + "description": "A second label part\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu", "type": "string", - "default": "", + "default": "" + }, + "value": { + "title": "value", + "description": "the value that will be used in the command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu", + "type": "string", + "minLength": 1, "examples": [ - "git branch --format='%(refname:short)'" + "feature" ] } }, "additionalProperties": false } - ] - } - }, - "additionalProperties": false - } - }, - { - "if": { - "properties": { - "type": { - "const": "confirm" - } - } - }, - "then": { - "properties": { - "type": { - "$ref": "#/definitions/custom-commands-prompts-type-property" - }, - "title": { - "$ref": "#/definitions/custom-commands-prompts-title-property" - }, - "key": { - "$ref": "#/definitions/custom-commands-prompts-key-property" + } }, - "body": { - "title": "body", - "description": "A body\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#confirm", - "type": "string", - "examples": [ - "Are you sure you want to push to the remote?" - ] - } - }, - "additionalProperties": false - } - }, - { - "if": { - "properties": { - "type": { - "const": "menu" - } + "additionalProperties": false } }, - "then": { - "required": [ - "options" - ], - "properties": { - "type": { - "$ref": "#/definitions/custom-commands-prompts-type-property" - }, - "title": { - "$ref": "#/definitions/custom-commands-prompts-title-property" - }, - "key": { - "$ref": "#/definitions/custom-commands-prompts-key-property" - }, - "options": { - "title": "options", - "description": "Options\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu", - "type": "array", - "uniqueItems": true, - "items": { - "description": "An option", - "type": "object", - "required": [ - "value" - ], - "properties": { - "name": { - "title": "name", - "description": "A first label part\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu", - "type": "string", - "default": "" - }, - "description": { - "title": "description", - "description": "A second label part\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu", - "type": "string", - "default": "" - }, - "value": { - "title": "value", - "description": "the value that will be used in the command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu", - "type": "string", - "minLength": 1, - "examples": [ - "feature" - ] - } - }, - "additionalProperties": false + { + "if": { + "properties": { + "type": { + "const": "menuFromCommand" } } }, - "additionalProperties": false - } - }, - { - "if": { - "properties": { - "type": { - "const": "menuFromCommand" - } - } - }, - "then": { - "required": [ - "command" - ], - "properties": { - "type": { - "$ref": "#/definitions/custom-commands-prompts-type-property" - }, - "title": { - "$ref": "#/definitions/custom-commands-prompts-title-property" - }, - "key": { - "$ref": "#/definitions/custom-commands-prompts-key-property" - }, - "command": { - "title": "command", - "description": "A command to generate options\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command", - "type": "string", - "default": "", - "examples": [ - "git branch -r --list {{.SelectedRemote.Name }}/*" - ] - }, - "filter": { - "title": "filter", - "description": "A regex specifying groups which kept from command output\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command", - "type": "string", - "default": "", - "examples": [ - ".*{{.SelectedRemote.Name }}/(?P<branch>.*)" - ] - }, - "valueFormat": { - "title": "valueFormat", - "description": "A value format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command", - "type": "string", - "default": "", - "examples": [ - "{{ .branch }}" - ] + "then": { + "required": [ + "command" + ], + "properties": { + "type": { + "$ref": "#/definitions/custom-commands-prompts-type-property" + }, + "title": { + "$ref": "#/definitions/custom-commands-prompts-title-property" + }, + "key": { + "$ref": "#/definitions/custom-commands-prompts-key-property" + }, + "command": { + "title": "command", + "description": "A command to generate options\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command", + "type": "string", + "default": "", + "examples": [ + "git branch -r --list {{.SelectedRemote.Name }}/*" + ] + }, + "filter": { + "title": "filter", + "description": "A regex specifying groups which kept from command output\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command", + "type": "string", + "default": "", + "examples": [ + ".*{{.SelectedRemote.Name }}/(?P<branch>.*)" + ] + }, + "valueFormat": { + "title": "valueFormat", + "description": "A value format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command", + "type": "string", + "default": "", + "examples": [ + "{{ .branch }}" + ] + }, + "labelFormat": { + "title": "labelFormat", + "description": "A label format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command", + "type": "string", + "default": "", + "examples": [ + "{{ .branch | green }}" + ] + } }, - "labelFormat": { - "title": "labelFormat", - "description": "A label format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command", - "type": "string", - "default": "", - "examples": [ - "{{ .branch | green }}" - ] - } - }, - "additionalProperties": false + "additionalProperties": false + } } - } + ] + } + }, + "loadingText": { + "title": "loading text", + "description": "Text to display while waiting for command to finish\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "string", + "default": "", + "examples": [ + "Loading..." ] + }, + "description": { + "title": "description", + "description": "A description\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "string", + "default": "", + "examples": [ + "Checkout a remote branch as FETCH_HEAD" + ] + }, + "stream": { + "title": "stream", + "description": "Whether to stream command output to Command Log panel\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "boolean", + "default": false + }, + "showOutput": { + "title": "show output", + "description": "Whether to show the command output in popup\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "boolean", + "default": false + }, + "after": { + "title": "after", + "description": "Actions to take after the command has completed\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "object", + "properties": { + "checkForConflicts": { + "title": "check for conflicts", + "description": "Whether to check for conflicts before running command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false } }, - "loadingText": { - "title": "loading text", - "description": "Text to display while waiting for command to finish\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", - "type": "string", - "default": "", - "examples": [ - "Loading..." - ] - }, - "description": { - "title": "description", - "description": "A description\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", - "type": "string", - "default": "", - "examples": [ - "Checkout a remote branch as FETCH_HEAD" - ] - }, - "stream": { - "title": "stream", - "description": "Whether to stream command output to Command Log panel\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", - "type": "boolean", - "default": false - }, - "showOutput": { - "title": "show output", - "description": "Whether to show the command output in popup\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", - "type": "boolean", - "default": false - }, - "after": { - "title": "after", - "description": "Actions to take after the command has completed\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", - "type": "object", - "properties": { - "checkForConflicts": { - "title": "check for conflicts", - "description": "Whether to check for conflicts before running command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings", - "type": "boolean", - "default": false - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false + "additionalProperties": false + } } }, "additionalProperties": false