mirror of
https://github.com/cursorless-dev/cursorless.git
synced 2024-10-04 04:47:29 +03:00
605 lines
16 KiB
JSON
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"
|
|
}
|
|
}
|