VSCodeSetting/globalStorage/vscode.json-language-features/json-schema-cache/22bfc1ab1ff56aae62322f6ce45dab5a.schema.json
2022-08-17 10:16:44 +08:00

406 lines
11 KiB
JSON

{
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"definitions": {
"colorPreset": {
"enum": [
"green",
"blue",
"red",
"yellow",
"orange",
"purple",
"pink",
"grey",
"gray",
"cyan",
"black"
]
},
"colorHex": {
"type": "string",
"pattern": "([0-9a-fA-F]{3}){1,2}"
},
"color": {
"oneOf": [
{
"$ref": "#/definitions/colorPreset"
},
{
"$ref": "#/definitions/colorHex"
}
]
},
"format": {
"enum": [
"abap",
"actionscript",
"ada",
"apacheconf",
"apl",
"applescript",
"arduino",
"arff",
"asciidoc",
"asm6502",
"aspnet",
"autohotkey",
"autoit",
"bash",
"basic",
"batch",
"bison",
"brainfuck",
"bro",
"c",
"c-header",
"clike",
"clojure",
"coffeescript",
"comments",
"cpp",
"cpp-header",
"crystal",
"csharp",
"csp",
"css-extras",
"css",
"d",
"dart",
"diff",
"django",
"docker",
"eiffel",
"elixir",
"elm",
"erb",
"erlang",
"flow",
"fortran",
"fsharp",
"gedcom",
"gherkin",
"git",
"glsl",
"go",
"graphql",
"groovy",
"haml",
"handlebars",
"haskell",
"haxe",
"hpkp",
"hsts",
"http",
"ichigojam",
"icon",
"inform7",
"ini",
"io",
"j",
"java",
"javascript",
"jolie",
"json",
"jsx",
"julia",
"keymap",
"kotlin",
"latex",
"less",
"liquid",
"lisp",
"livescript",
"lolcode",
"lua",
"makefile",
"markdown",
"markup",
"matlab",
"mel",
"mizar",
"monkey",
"n4js",
"nasm",
"nginx",
"nim",
"nix",
"nsis",
"objectivec",
"ocaml",
"opencl",
"oz",
"parigp",
"pascal",
"perl",
"php",
"plsql",
"powershell",
"processing",
"prolog",
"properties",
"protobuf",
"pug",
"puppet",
"pure",
"python",
"q",
"qore",
"r",
"reason",
"renpy",
"rest",
"rip",
"roboconf",
"ruby",
"rust",
"sas",
"sass",
"scala",
"scheme",
"scss",
"smalltalk",
"smarty",
"soy",
"sql",
"stylus",
"swift",
"tap",
"tcl",
"textile",
"tsx",
"tt2",
"twig",
"typescript",
"vbnet",
"velocity",
"verilog",
"vhdl",
"vim",
"visual-basic",
"wasm",
"url",
"wiki",
"xeora",
"xojo",
"xquery",
"yaml"
]
}
},
"id": "https://json.schemastore.org/jscpd.json",
"properties": {
"minLines": {
"type": "integer",
"default": 5,
"description": "minimum size of code block in lines to check for duplication"
},
"maxLines": {
"type": "integer",
"default": 1000,
"description": "maximum size of source file in lines to check for duplication"
},
"maxSize": {
"anyOf": [
{
"type": "string",
"pattern": "^\\+?[0-9]+(\\.[0-9]+)? *[kKmMgGtTpP][bB]$"
},
{
"type": "integer"
}
],
"default": "100kb",
"description": "maximum size of source file in bytes to check for duplication (e.g.,: 1kb, 1mb, 120kb)"
},
"minTokens": {
"type": "integer",
"default": 50,
"description": "minimum size of code block in tokens to check for duplication"
},
"threshold": {
"type": "number",
"description": "maximum allowed duplicate lines expressed as a percentage; exit with error and exit code 1 when threshold exceeded"
},
"formatsExts": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"default": {},
"description": "custom mapping from formats to file extensions (default: https://github.com/kucherenko/jscpd/blob/master/packages/tokenizer/src/formats.ts); see https://github.com/kucherenko/jscpd/blob/master/supported_formats.md"
},
"output": {
"type": "string",
"default": "./report",
"description": "path to directory for non-console reports"
},
"path": {
"type": "array",
"items": {
"type": "string"
},
"description": "paths that should be included in duplicate detection (default: [process.cwd()])"
},
"pattern": {
"type": "string",
"default": "**/*",
"description": "glob pattern for files that should be included in duplicate detection (e.g., **/*.txt); only used to filter directories configured via path option"
},
"ignorePattern": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "ignore code blocks matching these regular expressions"
},
"mode": {
"enum": ["mild", "strict", "weak"],
"default": "mild",
"description": "mode of detection quality; see https://github.com/kucherenko/jscpd/blob/master/packages/jscpd/README.md#mode"
},
"ignore": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "glob pattern for files that should be excluded from duplicate detection"
},
"format": {
"type": "array",
"items": {
"$ref": "#/definitions/format"
},
"description": "list of formats for which to detect duplication (default: all); see https://github.com/kucherenko/jscpd/blob/master/supported_formats.md"
},
"store": {
"enum": ["leveldb", "redis"],
"description": "store used to collect information about code (default: in-memory store); install @jscpd/leveldb-store and use leveldb for big repositories"
},
"reporters": {
"type": "array",
"items": {
"enum": [
"xml",
"json",
"csv",
"markdown",
"consoleFull",
"html",
"console",
"silent",
"threshold",
"xcode"
]
},
"default": ["console"],
"description": "a list of reporters to use to output information about duplication; see https://github.com/kucherenko/jscpd/blob/master/packages/jscpd/README.md#reporters"
},
"blame": {
"type": "boolean",
"default": false,
"description": "get information about authors and dates of duplicated blocks from Git"
},
"silent": {
"type": "boolean",
"default": false,
"description": "do not write duplicate detection progress and result to console"
},
"verbose": {
"type": "boolean",
"default": false,
"description": "show full information during duplicate detection"
},
"absolute": {
"type": "boolean",
"default": false,
"description": "use absolute paths in reports"
},
"noSymLinks": {
"type": "boolean",
"default": false,
"description": "do not follow symlinks"
},
"skipLocal": {
"type": "boolean",
"default": false,
"description": "skip duplicates within folders; just detect cross-folder duplicates"
},
"ignoreCase": {
"type": "boolean",
"default": false,
"description": "ignore case of symbols in code (experimental)"
},
"gitignore": {
"type": "boolean",
"default": false,
"description": "ignore all files from .gitignore file"
},
"reportersOptions": {
"type": "object",
"default": {},
"additionalProperties": false,
"properties": {
"badge": {
"type": "object",
"additionalProperties": false,
"properties": {
"path": {
"type": "string",
"description": "output path for duplication level badge (default: path.join(output, 'jscpd-badge.svg'))"
},
"label": {
"type": "string",
"default": "Copy/Paste",
"description": "badge subject text (URL-encoding needed for spaces or special characters)"
},
"labelColor": {
"$ref": "#/definitions/color",
"default": "555",
"description": "badge label color (name or RGB code without #); see https://github.com/badgen/badgen/blob/master/src/color-presets.ts"
},
"status": {
"type": "string",
"description": "badge value text (URL-encoding needed for spaces or special characters, default: duplication %)"
},
"color": {
"$ref": "#/definitions/color",
"description": "badge color (name or RGB code without #, default: green if beneath threshold, red if above threshold, grey if threshold not set); see https://github.com/badgen/badgen/blob/master/src/color-presets.ts"
},
"style": {
"enum": ["flat", "classic"],
"default": "classic",
"description": "badge look: flat or classic"
},
"icon": {
"type": "string",
"description": "URL for icon to display in front of badge subject text (e.g., data:image/svg+xml;base64,...)"
},
"iconWidth": {
"type": "number",
"default": 13,
"description": "SVG width of icon to display in front of badge subject text; set this if icon is not square"
},
"scale": {
"type": "number",
"default": 1,
"description": "size of badge relative to default of 1"
}
}
}
}
},
"exitCode": {
"type": "integer",
"default": 0,
"description": "exit code to use when at least one duplicate code block is detected but threshold is not exceeded"
}
},
"type": "object"
}