ok/jj
1
0
Fork 0
forked from mirrors/jj
jj/src/config-schema.json
Yuya Nishihara 904e9c5520 cli: add ui.log-word-wrap option
Unlike Mercurial, this isn't a template keyword/function, but a config knob.
Exposing graph_width to templater wouldn't be easy, and I don't think it's
better to handle terminal wrapping in template.

I'm not sure if patch content should be wrapped, so this option only applies
to the template output for now.

Closes #1043
2023-03-11 12:01:17 +09:00

289 lines
11 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "Jujutsu config",
"type": "object",
"description": "User configuration for Jujutsu VCS. See https://github.com/martinvonz/jj/blob/main/docs/config.md for details",
"properties": {
"user": {
"type": "object",
"description": "Settings about the user",
"properties": {
"name": {
"type": "string",
"description": "Full name of the user, used in commits"
},
"email": {
"type": "string",
"description": "User's email address, used in commits",
"format": "email"
}
}
},
"operation": {
"type": "object",
"description": "Metadata to be attached to jj operations (shown in jj op log)",
"properties": {
"hostname": {
"type": "string",
"format": "hostname"
},
"username": {
"type": "string"
}
}
},
"push": {
"type": "object",
"properties": {
"branch-prefix": {
"type": "string",
"description": "Prefix used when pushing a change ID as a new branch",
"default": "push-"
}
}
},
"ui": {
"type": "object",
"description": "UI settings",
"properties": {
"allow-init-native": {
"type": "boolean",
"description": "Whether to allow initializing a repo with the native backend",
"default": false
},
"default-revset": {
"type": "string",
"description": "Default set of revisions to show when no explicit revset is given for jj log and similar commands",
"default": "@ | (remote_branches() | tags()).. | ((remote_branches() | tags())..)-"
},
"color": {
"description": "Whether to colorize command output",
"enum": [
"always",
"never",
"auto"
],
"default": "auto"
},
"pager": {
"type": "string",
"description": "Pager to use for displaying command output",
"default": "less -FRX"
},
"diff": {
"type": "object",
"description": "Options for how diffs are displayed",
"properties": {
"format": {
"description": "The diff format to use",
"enum": [
"color-words",
"git",
"summary"
],
"default": "color-words"
}
}
},
"graph": {
"type": "object",
"description": "Options for rendering revision graphs from jj log etc",
"properties": {
"style": {
"description": "Style of connectors/markings used to render the graph. See https://github.com/martinvonz/jj/blob/main/docs/config.md#graph-style",
"enum": [
"legacy",
"curved",
"square",
"ascii",
"ascii-large"
],
"default": "legacy"
}
}
},
"log-word-wrap": {
"type": "boolean",
"description": "Whether to wrap log template output",
"default": false
},
"editor": {
"type": "string",
"description": "Editor to use for commands that involve editing text"
},
"diff-editor": {
"type": "string",
"description": "Editor tool to use for editing diffs",
"default": "meld"
},
"merge-editor": {
"type": "string",
"description": "Tool to use for resolving three-way merges. Behavior for a given tool name can be configured in merge-tools.TOOL tables"
}
}
},
"colors": {
"type": "object",
"description": "Mapping from jj formatter labels to colors",
"definitions": {
"colors": {
"enum": [
"black",
"red",
"green",
"yellow",
"blue",
"magenta",
"cyan",
"white",
"bright black",
"bright red",
"bright green",
"bright yellow",
"bright blue",
"bright magenta",
"bright cyan",
"bright white"
]
},
"basicFormatterLabels": {
"enum": [
"description",
"change_id",
"commit_id",
"author",
"committer",
"working_copies",
"current_working_copy",
"branches",
"tags",
"git_refs",
"is_git_head",
"divergent",
"conflict"
]
}
},
"propertyNames": {
"oneOf": [
{
"$ref": "#/properties/colors/definitions/basicFormatterLabels"
},
{
"type": "string"
}
]
},
"additionalProperties": {
"description": "A color profile for the given formatter label. Either a bare color name used as the foreground color or a table describing color and formatting",
"oneOf": [
{
"$ref": "#/properties/colors/definitions/colors"
},
{
"type": "object",
"properties": {
"fg": {
"$ref": "#/properties/colors/definitions/colors"
},
"bg": {
"$ref": "#/properties/colors/definitions/colors"
},
"bold": {
"type": "boolean"
},
"underline": {
"type": "boolean"
}
}
}
]
}
},
"git": {
"type": "object",
"description": "Settings for git behavior (when using git backend)",
"properties": {
"auto-local-branch": {
"type": "boolean",
"description": "Whether jj creates a local branch with the same name when it imports a remote-tracking branch from git. See https://github.com/martinvonz/jj/blob/main/docs/config.md#automatic-local-branch-creation",
"default": true
},
"fetch": {
"description": "The remote(s) from which commits are fetched",
"default": "origin",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"push": {
"type": "string",
"description": "The remote to which commits are pushed",
"default": "origin"
}
}
},
"merge-tools": {
"type": "object",
"description": "Tables of custom options to pass to the given merge tool (selected in ui.merge-editor)",
"additionalProperties": {
"type": "object",
"properties": {
"program": {
"type": "string"
},
"edit-args": {
"type": "array",
"items": {
"type": "string"
}
},
"merge-args": {
"type": "array",
"items": {
"type": "string"
}
},
"merge-tool-edits-conflict-markers": {
"type": "boolean",
"description": "Whether to populate the output file with conflict markers before starting the merge tool. See https://github.com/martinvonz/jj/blob/main/docs/config.md#editing-conflict-markers-with-a-tool-or-a-text-editor",
"default": false
}
}
}
},
"revset-aliases": {
"type": "object",
"description": "Custom symbols/function aliases that can used in revset expressions",
"additionalProperties": {
"type": "string"
}
},
"template-aliases": {
"type": "object",
"description": "Custom symbols/function aliases that can used in templates",
"additionalProperties": {
"type": "string"
}
},
"aliases": {
"type": "object",
"description": "Custom subcommand aliases to be supported by the jj command",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}