cursorless/package.json
2022-09-21 11:24:36 +01:00

605 lines
16 KiB
JSON

{
"name": "cursorless",
"displayName": "Cursorless",
"description": "Structural voice coding at the speed of thought",
"icon": "images/icon.png",
"galleryBanner": {
"color": "#00001A",
"theme": "dark"
},
"badges": [
{
"url": "https://img.shields.io/badge/documentation-yes-brightgreen.svg?logo=data:image/svg%2bxml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJib29rIiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtYm9vayBmYS13LTE0IiByb2xlPSJpbWciCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIj4KICAgIDxwYXRoIGZpbGw9IndoaXRlIiBkPSJNNDQ4IDM2MFYyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNEg5NkM0MyAwIDAgNDMgMCA5NnYzMjBjMCA1MyA0MyA5NiA5NiA5NmgzMjhjMTMuMyAwIDI0LTEwLjcgMjQtMjR2LTE2YzAtNy41LTMuNS0xNC4zLTguOS0xOC43LTQuMi0xNS40LTQuMi01OS4zIDAtNzQuNyA1LjQtNC4zIDguOS0xMS4xIDguOS0xOC42ek0xMjggMTM0YzAtMy4zIDIuNy02IDYtNmgyMTJjMy4zIDAgNiAyLjcgNiA2djIwYzAgMy4zLTIuNyA2LTYgNkgxMzRjLTMuMyAwLTYtMi43LTYtNnYtMjB6bTAgNjRjMC0zLjMgMi43LTYgNi02aDIxMmMzLjMgMCA2IDIuNyA2IDZ2MjBjMCAzLjMtMi43IDYtNiA2SDEzNGMtMy4zIDAtNi0yLjctNi02di0yMHptMjUzLjQgMjUwSDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMiAwLTE3LjYgMTQuNC0zMiAzMi0zMmgyODUuNGMtMS45IDE3LjEtMS45IDQ2LjkgMCA2NHoiPjwvcGF0aD4KPC9zdmc+",
"href": "https://www.cursorless.org/docs/",
"description": "Documentation"
},
{
"url": "https://img.shields.io/github/workflow/status/cursorless-dev/cursorless-vscode/Run%20Tests?logo=github&label=tests",
"href": "https://github.com/cursorless-dev/cursorless/actions/workflows/test.yml?query=branch%3Amain",
"description": "Tests"
}
],
"version": "0.26.0",
"publisher": "pokey",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/cursorless-dev/cursorless.git"
},
"homepage": "https://www.cursorless.org/",
"engines": {
"vscode": "^1.61.0"
},
"extensionKind": [
"ui",
"workspace"
],
"categories": [
"Other"
],
"keywords": [
"Voice coding"
],
"extensionDependencies": [
"pokey.parse-tree"
],
"activationEvents": [
"*"
],
"main": "./dist/extension.js",
"capabilities": {
"untrustedWorkspaces": {
"supported": true
}
},
"contributes": {
"commands": [
{
"command": "cursorless.command",
"title": "Cursorless: Perform command"
},
{
"command": "cursorless.toggleDecorations",
"title": "Cursorless: Toggle decorations"
},
{
"command": "cursorless.recomputeDecorationStyles",
"title": "Cursorless: Recompute decoration styles"
},
{
"command": "cursorless.recordTestCase",
"title": "Cursorless: Record test case"
},
{
"command": "cursorless.pauseRecording",
"title": "Cursorless: Pause test case recording"
},
{
"command": "cursorless.resumeRecording",
"title": "Cursorless: Resume test case recording"
},
{
"command": "cursorless.showDocumentation",
"title": "Cursorless: Show documentation"
}
],
"colors": [
{
"id": "cursorless.pendingDeleteBackground",
"description": "Background color to use for ranges about to be deleted",
"defaults": {
"dark": "#ff00008a",
"light": "#ff00008a",
"highContrast": "#ff00008a"
}
},
{
"id": "cursorless.referencedBackground",
"description": "Background color to use for ranges that are being referenced",
"defaults": {
"dark": "#00a2ff4d",
"light": "#00a2ff4d",
"highContrast": "#00a2ff4d"
}
},
{
"id": "cursorless.justAddedBackground",
"description": "Background color to use for ranges that have just been added",
"defaults": {
"dark": "#09ff005b",
"light": "#09ff005b",
"highContrast": "#09ff005b"
}
},
{
"id": "cursorless.pendingModification0Background",
"description": "Background color to use for ranges that are being changed",
"defaults": {
"dark": "#8c00ff86",
"light": "#8c00ff86",
"highContrast": "#8c00ff86"
}
},
{
"id": "cursorless.pendingModification1Background",
"description": "Background color to use for ranges that are being changed",
"defaults": {
"dark": "#ff009d7e",
"light": "#ff009d7e",
"highContrast": "#ff009d7e"
}
},
{
"id": "cursorless.highlight0Background",
"description": "Background color to use for explicitly requested highlights",
"defaults": {
"dark": "#d449ff42",
"light": "#d449ff42",
"highContrast": "#d449ff42"
}
},
{
"id": "cursorless.highlight1Background",
"description": "Background color to use for explicitly requested highlights",
"defaults": {
"dark": "#60daff7a",
"light": "#60daff7a",
"highContrast": "#60daff7a"
}
}
],
"configurationDefaults": {
"editor.padding.top": 2
},
"configuration": {
"title": "Cursorless",
"properties": {
"cursorless.showOnStart": {
"type": "boolean",
"default": true,
"description": "Whether to show decorations on vscode start."
},
"cursorless.tokenHatSplittingMode.preserveCase": {
"type": "boolean",
"default": false,
"markdownDescription": "Whether to distinguish between uppercase and lower case letters for hats. Set this to `true` if you have separate terms for uppercase letters in your `<user.any_alphanumeric_key>` capture."
},
"cursorless.tokenHatSplittingMode.lettersToPreserve": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "A list of characters whose accents should not be stripped. This can be used, for example, if you would like to strip all accents except for those of a few characters, which you would add to this list."
},
"cursorless.tokenHatSplittingMode.symbolsToPreserve": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"markdownDescription": "A list of symbols that shouldn't be normalized by the token hat splitter. Add any extra symbols here that you have added to your `<user.any_alphanumeric_key>` capture. Unlike the Accents To Preserve setting, these symbols won't even undergo case normalisation, so you would need separate terms for the lowercase and uppercase versions (if the symbol has a notion of upper and lower case)."
},
"cursorless.decorationDebounceDelayMs": {
"type": "number",
"default": 50,
"description": "How quickly to redraw hats in response to scrolling or cursor movement"
},
"cursorless.debug": {
"type": "boolean",
"default": false,
"description": "Whether to show debug logs."
},
"cursorless.pendingEditDecorationTime": {
"type": "integer",
"default": 100,
"description": "How long in milliseconds to show a pending edit decoration"
},
"cursorless.hatSizeAdjustment": {
"type": "number",
"default": 0,
"description": "Percentage to increase or decrease hat size; positive increases size",
"order": 0
},
"cursorless.hatVerticalOffset": {
"type": "number",
"default": 0,
"description": "How much to vertically shift the hats as a percentage of font size; positive is up",
"order": 1
},
"cursorless.colors.dark": {
"description": "Colors to use for dark theme",
"type": "object",
"order": 5,
"properties": {
"default": {
"type": "string"
},
"blue": {
"type": "string"
},
"green": {
"type": "string"
},
"red": {
"type": "string"
},
"pink": {
"type": "string"
},
"yellow": {
"type": "string"
},
"userColor1": {
"type": "string"
},
"userColor2": {
"type": "string"
}
},
"default": {
"default": "#aaa7bb",
"blue": "#089ad3",
"green": "#36B33F",
"red": "#E02D28",
"pink": "#E06CAA",
"yellow": "#E5C02C",
"userColor1": "#6a00ff",
"userColor2": "#ffd8b1"
},
"additionalProperties": false
},
"cursorless.colors.light": {
"description": "Colors to use for light theme",
"type": "object",
"order": 4,
"properties": {
"default": {
"type": "string"
},
"blue": {
"type": "string"
},
"green": {
"type": "string"
},
"red": {
"type": "string"
},
"pink": {
"type": "string"
},
"yellow": {
"type": "string"
},
"userColor1": {
"type": "string"
},
"userColor2": {
"type": "string"
}
},
"default": {
"default": "#757180",
"blue": "#089ad3",
"green": "#36B33F",
"red": "#E02D28",
"pink": "#e0679f",
"yellow": "#edb62b",
"userColor1": "#6a00ff",
"userColor2": "#ffd8b1"
},
"additionalProperties": false
},
"cursorless.hatEnablement.colors": {
"description": "Which colors to enable",
"type": "object",
"order": 2,
"properties": {
"blue": {
"type": "boolean"
},
"green": {
"type": "boolean"
},
"red": {
"type": "boolean"
},
"pink": {
"type": "boolean"
},
"yellow": {
"type": "boolean"
},
"userColor1": {
"type": "boolean"
},
"userColor2": {
"type": "boolean"
}
},
"default": {
"blue": true,
"green": true,
"red": true,
"pink": true,
"yellow": true,
"userColor1": false,
"userColor2": false
},
"additionalProperties": false
},
"cursorless.hatEnablement.shapes": {
"markdownDescription": "Which shapes to enable. See the [docs](https://www.cursorless.org/docs/#shapes) if you're not sure which shape name corresponds to which hat shape.",
"type": "object",
"order": 3,
"properties": {
"ex": {
"type": "boolean"
},
"fox": {
"type": "boolean"
},
"wing": {
"type": "boolean"
},
"hole": {
"type": "boolean"
},
"frame": {
"type": "boolean"
},
"curve": {
"type": "boolean"
},
"eye": {
"type": "boolean"
},
"play": {
"type": "boolean"
},
"bolt": {
"type": "boolean"
},
"crosshairs": {
"type": "boolean"
}
},
"default": {
"ex": false,
"fox": false,
"wing": false,
"hole": false,
"frame": false,
"curve": false,
"eye": false,
"play": false,
"bolt": false,
"crosshairs": false
},
"additionalProperties": false
},
"cursorless.maximumHatStylePenalty": {
"description": "The maximum allowed penalty for a hat style. Any hat style whose penalty is greater than this amount will not be used. A hat style penalty is defined to be the shape penalty plus the colour penalty. Setting this value less than or equal to zero is treated as no maximum.",
"type": "number",
"default": 0
},
"cursorless.hatPenalties.colors": {
"description": "How much to penalize each hat color. Number of syllables is a good default",
"type": "object",
"properties": {
"blue": {
"type": "number"
},
"green": {
"type": "number"
},
"red": {
"type": "number"
},
"pink": {
"type": "number"
},
"yellow": {
"type": "number"
},
"userColor1": {
"type": "number"
},
"userColor2": {
"type": "number"
}
},
"default": {
"blue": 1,
"green": 1,
"red": 1,
"pink": 1,
"yellow": 1,
"userColor1": 1,
"userColor2": 1
},
"additionalProperties": false
},
"cursorless.hatPenalties.shapes": {
"description": "How much to penalize each hat shape. Number of syllables is a good default",
"type": "object",
"properties": {
"ex": {
"type": "number"
},
"fox": {
"type": "number"
},
"wing": {
"type": "number"
},
"hole": {
"type": "number"
},
"frame": {
"type": "number"
},
"curve": {
"type": "number"
},
"eye": {
"type": "number"
},
"play": {
"type": "number"
},
"bolt": {
"type": "number"
},
"crosshairs": {
"type": "number"
}
},
"default": {
"ex": 1,
"fox": 1,
"wing": 1,
"hole": 1,
"frame": 1,
"curve": 1,
"eye": 1,
"play": 1,
"bolt": 1,
"crosshairs": 1
},
"additionalProperties": false
},
"cursorless.individualHatAdjustments": {
"description": "Separate adjustments for each hat shape",
"type": "object",
"default": {
"default": {
"sizeAdjustment": 0,
"verticalOffset": 0
},
"ex": {
"sizeAdjustment": 0,
"verticalOffset": 0
},
"fox": {
"sizeAdjustment": 0,
"verticalOffset": 0
},
"wing": {
"sizeAdjustment": 0,
"verticalOffset": 0
},
"hole": {
"sizeAdjustment": 0,
"verticalOffset": 0
},
"frame": {
"sizeAdjustment": 0,
"verticalOffset": 0
},
"curve": {
"sizeAdjustment": 0,
"verticalOffset": 0
},
"eye": {
"sizeAdjustment": 0,
"verticalOffset": 0
},
"play": {
"sizeAdjustment": 0,
"verticalOffset": 0
},
"bolt": {
"sizeAdjustment": 0,
"verticalOffset": 0
},
"crosshairs": {
"sizeAdjustment": 0,
"verticalOffset": 0
}
}
},
"cursorless.experimental.snippetsDir": {
"description": "Directory containing snippets for use in cursorless",
"type": "string"
}
}
},
"languages": [
{
"id": "json",
"extensions": [
".cursorless-snippets"
]
}
],
"jsonValidation": [
{
"fileMatch": "*.cursorless-snippets",
"url": "./schemas/cursorless-snippets.json"
}
],
"icons": {
"cursorless-icon": {
"description": "Cursorless icon",
"default": {
"fontPath": "fonts/cursorless.woff",
"fontCharacter": "\\E900"
}
}
}
},
"sponsor": {
"url": "https://github.com/sponsors/pokey"
},
"funding": "https://github.com/sponsors/pokey",
"scripts": {
"vscode:prepublish": "npm run -S esbuild-base -- --minify",
"update-licenses": "npx npm-license-crawler --onlyDirectDependencies --csv third-party-licenses.csv",
"esbuild-base": "esbuild ./src/extension.ts --bundle --outfile=dist/extension.js --external:vscode --format=cjs --platform=node",
"esbuild": "npm run -S esbuild-base -- --sourcemap",
"esbuild-watch": "npm run -S esbuild-base -- --sourcemap --watch",
"test-compile": "tsc -p ./",
"compile": "tsc -p ./",
"watch": "tsc -watch -p ./",
"pretest": "yarn run compile && yarn run lint && yarn run esbuild",
"lint": "eslint src --ext ts",
"test": "env CURSORLESS_TEST=true node ./out/test/runTest.js",
"unused-exports": "ts-unused-exports tsconfig.json --showLineNumber",
"init-launch-sandbox": "node ./out/test/initLaunchSandbox.js",
"prepare-for-extension-publish": "node ./out/scripts/prepareForExtensionPublish.js"
},
"devDependencies": {
"@types/glob": "^7.1.3",
"@types/js-yaml": "^4.0.2",
"@types/mocha": "^8.0.4",
"@types/node": "^16.11.3",
"@types/semver": "^7.3.9",
"@types/sinon": "^10.0.2",
"@types/vscode": "~1.61.0",
"@typescript-eslint/eslint-plugin": "^5.20.0",
"@typescript-eslint/parser": "^5.20.0",
"@vscode/test-electron": "^2.1.3",
"esbuild": "^0.11.12",
"eslint": "^8.13.0",
"eslint-config-prettier": "^8.5.0",
"fast-xml-parser": "^3.20.0",
"glob": "^7.1.7",
"js-yaml": "^4.1.0",
"mocha": "^8.1.3",
"npm-license-crawler": "^0.2.1",
"prettier": "2.7.1",
"semver": "^7.3.7",
"sinon": "^11.1.1",
"ts-unused-exports": "8.0.0",
"typescript": "^4.5.5"
},
"dependencies": {
"@types/lodash": "^4.14.168",
"immutability-helper": "^3.1.1",
"lodash": "^4.17.21",
"node-html-parser": "^5.3.3"
}
}