Skip to content

Commit

Permalink
Define config TOML/JSON schema
Browse files Browse the repository at this point in the history
Can be used with tools like taplo-lsp to show hints & validation in
editors/IDEs. Won't apply automatically to config files until it's
submitted to schemastore.org, but in the meantime it can be used via a
schema directive
(https://taplo.tamasfe.dev/configuration/directives.html#the-schema-directive)
or other manual config mechanism.

Context in #879.
  • Loading branch information
dbarnett committed Jan 2, 2023
1 parent 4835681 commit 8017ce2
Showing 1 changed file with 136 additions and 0 deletions.
136 changes: 136 additions & 0 deletions src/schemas/json/jj.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "Jujutsu VCS config",
"type": "object",
"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",
"properties": {
"hostname": {
"type": "string",
"format": "hostname"
},
"username": {
"type": "string"
},
"timestamp": {
"type": "string",
"format": "date-time"
}
}
},
"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"
},
"relative-timestamps": {
"type": "boolean",
"description": "Whether to change timestamps to be rendered as a relative description instead of a full timestamp",
"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": {
"type": "string",
"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"
},
"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 ANSI color names"
},
"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"
},
"merge-args": {
"type": "array",
"items": {
"type": "string"
}
},
"merge-tool-edits-conflict-markers": {
"type": "boolean",
"default": false
}
}
}
},
"revset-aliases": {
"type": "object",
"description": "Custom symbols/function aliases that can used in revset expressions",
"additionalProperties": {
"type": "string"
}
},
"alias": {
"type": "object",
"description": "Custom subcommand aliases to be supported by the jj command",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}

0 comments on commit 8017ce2

Please sign in to comment.