{
	"name": "code-spell-checker",
	"description": "Spelling checker for source code",
	"displayName": "Code Spell Checker",
	"icon": "images/SpellCheck.png",
	"author": "Jason Dent",
	"license": "GPL-3.0-or-later",
	"version": "4.3.2",
	"publisher": "streetsidesoftware",
	"private": true,
	"type": "module",
	"main": "./packages/client/dist/extension.cjs",
	"repository": {
		"type": "git",
		"url": "https://github.com/streetsidesoftware/vscode-spell-checker"
	},
	"bugs": {
		"url": "https://github.com/streetsidesoftware/vscode-spell-checker/issues"
	},
	"homepage": "https://streetsidesoftware.github.io/vscode-spell-checker",
	"packageManager": "npm@10.8.2",
	"engineStrict": true,
	"engines": {
		"node": ">=20.18.1",
		"pnpm": "0",
		"yarn": "0",
		"vscode": "^1.104.0"
	},
	"sponsor": {
		"url": "https://github.com/sponsors/streetsidesoftware"
	},
	"extensionKind": [
		"workspace"
	],
	"categories": [
		"Linters",
		"Other"
	],
	"keywords": [
		"spell",
		"checker",
		"spelling",
		"spellchecker"
	],
	"qna": "marketplace",
	"activationEvents": [
		"onStartupFinished"
	],
	"capabilities": {
		"virtualWorkspaces": {
			"supported": "limited",
			"description": "In virtual workspaces, it is not possible to load the CSpell configuration from a JavaScript file. The configuration must be in a JSON, JSONC, or YAML file. Any configuration that relies upon `node_modules` will not be loaded."
		},
		"untrustedWorkspaces": {
			"supported": "limited",
			"description": "JavaScript configuration files will NOT be loaded.",
			"restrictedConfigurations": [
				"cSpell.trustedWorkspace"
			]
		}
	},
	"contributes": {
		"menus": {
			"editor/context": [
				{
					"command": "cSpell.suggestSpellingCorrections",
					"when": "!editorReadonly && editorTextFocus && config.cSpell.showSuggestionsLinkInEditorContextMenu && cSpell.editorMenuContext.showSuggestions && cSpell.context.showDecorations",
					"group": "A_cspell@000"
				},
				{
					"submenu": "cSpell.spelling",
					"group": "A_cspell@001",
					"when": "!editorReadonly && editorTextFocus && config.cSpell.showCommandsInEditorContextMenu"
				},
				{
					"command": "cSpell.show",
					"when": "editorTextFocus && config.cSpell.showCommandsInEditorContextMenu && cSpell.editorMenuContext.hasIssues && !cSpell.context.showDecorations",
					"group": "A_cspell@002"
				},
				{
					"command": "cSpell.hide",
					"when": "editorTextFocus && config.cSpell.showCommandsInEditorContextMenu && cSpell.editorMenuContext.hasIssues && cSpell.context.showDecorations",
					"group": "A_cspell@002"
				}
			],
			"cSpell.spelling": [
				{
					"command": "cSpell.suggestSpellingCorrections",
					"when": "editorTextFocus && !config.cSpell.showSuggestionsLinkInEditorContextMenu && cSpell.editorMenuContext.showSuggestions",
					"group": "A_cspell@001"
				},
				{
					"command": "cSpell.addWordToDictionary",
					"when": "editorTextFocus && cSpell.editorMenuContext.addWordToDictionary",
					"group": "A_cspell@010"
				},
				{
					"command": "cSpell.addWordToFolderDictionary",
					"when": "editorTextFocus && cSpell.editorMenuContext.addWordToFolderDictionary",
					"group": "A_cspell@020"
				},
				{
					"command": "cSpell.addWordToWorkspaceDictionary",
					"when": "editorTextFocus && cSpell.editorMenuContext.addWordToWorkspaceDictionary",
					"group": "A_cspell@030"
				},
				{
					"command": "cSpell.addWordToCSpellConfig",
					"when": "editorTextFocus && cSpell.editorMenuContext.addWordToCSpellConfig",
					"group": "A_cspell@050"
				},
				{
					"command": "cSpell.addWordToFolderSettings",
					"when": "editorTextFocus && cSpell.editorMenuContext.addWordToFolderSettings",
					"group": "A_cspell@051"
				},
				{
					"command": "cSpell.addWordToWorkspaceSettings",
					"when": "editorTextFocus && cSpell.editorMenuContext.addWordToWorkspaceSettings",
					"group": "A_cspell@052"
				},
				{
					"command": "cSpell.addWordToUserDictionary",
					"when": "editorTextFocus && cSpell.editorMenuContext.addWordToUserDictionary",
					"group": "A_cspell@055"
				},
				{
					"command": "cSpell.addWordToUserSettings",
					"when": "editorTextFocus && cSpell.editorMenuContext.addWordToUserSettings",
					"group": "A_cspell@056"
				},
				{
					"command": "cSpell.addIssuesToDictionary",
					"when": "editorTextFocus && cSpell.editorMenuContext.addIssuesToDictionary",
					"group": "A_cspell@060"
				},
				{
					"command": "cSpell.addIgnoreWord",
					"when": "editorTextFocus && cSpell.editorMenuContext.addIgnoreWord",
					"group": "A_cspell@090"
				},
				{
					"command": "cSpell.createCSpellConfig",
					"when": "editorTextFocus && cSpell.editorMenuContext.createCSpellConfig",
					"group": "B_cspell@010"
				},
				{
					"command": "cSpell.createCustomDictionary",
					"when": "editorTextFocus && cSpell.editorMenuContext.createCustomDictionary",
					"group": "B_cspell@020"
				}
			],
			"cSpell.configMenu": [
				{
					"command": "cSpell.createCSpellConfig",
					"when": "editorTextFocus && cSpell.editorMenuContext.createCSpellConfig",
					"group": "A_cspell@010"
				},
				{
					"command": "cSpell.createCustomDictionary",
					"when": "editorTextFocus && cSpell.editorMenuContext.createCustomDictionary",
					"group": "A_cspell@070"
				}
			],
			"commandPalette": [
				{
					"command": "cSpellRegExpTester.testRegExp",
					"when": "config.cSpell.experimental.enableRegexpView"
				},
				{
					"command": "cSpellRegExpTester.editRegExp",
					"when": "view == cSpellRegExpView"
				}
			],
			"view/title": [
				{
					"command": "cSpell.show",
					"when": "!cSpell.context.showDecorations && view == cSpellIssuesViewByFile",
					"group": "navigation"
				},
				{
					"command": "cSpell.hide",
					"when": "cSpell.context.showDecorations && view == cSpellIssuesViewByFile",
					"group": "navigation"
				}
			],
			"view/item/context": [
				{
					"command": "cSpellRegExpTester.editRegExp",
					"when": "view == cSpellRegExpView && viewItem == regexp",
					"group": "inline"
				},
				{
					"command": "cSpell.issueViewer.item.autoFixSpellingIssues",
					"when": "view == cSpellIssuesViewByIssue && viewItem == issue.hasPreferred",
					"group": "inline"
				},
				{
					"command": "cSpell.issueViewer.item.addWordToDictionary",
					"when": "view == cSpellIssuesViewByIssue && viewItem == issue",
					"group": "inline"
				},
				{
					"command": "cSpell.issuesViewByFile.item.autoFixSpellingIssues",
					"when": "view == cSpellIssuesViewByFile && viewItem == issue.FileWithIssuesTreeItem.hasPreferred",
					"group": "inline"
				},
				{
					"command": "cSpell.issuesViewByFile.item.addWordToDictionary",
					"when": "view == cSpellIssuesViewByFile && viewItem == issue.FileIssueTreeItem",
					"group": "inline"
				}
			]
		},
		"submenus": [
			{
				"id": "cSpell.spelling",
				"label": "Spelling"
			},
			{
				"id": "cSpell.configMenu",
				"label": "Spell Checker Configuration"
			}
		],
		"viewsContainers": {
			"activitybar": [
				{
					"id": "cspell-info-explorer",
					"title": "Spell Checker Info",
					"icon": "resources/dark/check_circle.svg"
				},
				{
					"id": "cspell-regexp-explorer",
					"title": "Regular Expressions",
					"contextualTitle": "Spell Checker",
					"icon": "resources/dark/check_circle.svg"
				}
			],
			"panel": [
				{
					"id": "cspellPanel",
					"title": "Spell Checker",
					"icon": "resources/dark/check_circle.svg"
				}
			]
		},
		"icons": {
			"cspell-issues": {
				"description": "cspell-issues lightbulb icon",
				"default": "lightbulb"
			}
		},
		"views": {
			"cspell-info-explorer": [
				{
					"type": "webview",
					"id": "cSpellInfoView",
					"when": "cSpell.context.displayCSpellInfo",
					"icon": "$(lightbulb)",
					"name": "Spell Checker"
				}
			],
			"cspell-regexp-explorer": [
				{
					"id": "cSpellRegExpView",
					"name": "Regular Expressions",
					"icon": "$(code)",
					"when": "config.cSpell.experimental.enableRegexpView"
				}
			],
			"cspellPanel": [
				{
					"type": "tree",
					"id": "cSpellIssuesViewByFile",
					"name": "File Issues",
					"contextualTitle": "Spell Checker issues by file",
					"icon": "$(lightbulb)",
					"initialSize": 4,
					"visibility": "visible"
				},
				{
					"type": "tree",
					"id": "cSpellIssuesViewByIssue",
					"name": "Issues",
					"contextualTitle": "Spell Checker Issues",
					"icon": "$(lightbulb)",
					"initialSize": 1,
					"visibility": "visible"
				}
			]
		},
		"viewsWelcome": [],
		"commands": [
			{
				"command": "cSpell.addWordToWorkspaceDictionary",
				"category": "Spell",
				"title": "Add Words to Workspace Dictionary"
			},
			{
				"command": "cSpell.addWordToFolderDictionary",
				"category": "Spell",
				"title": "Add Words to Folder Dictionary"
			},
			{
				"command": "cSpell.addWordToUserDictionary",
				"category": "Spell",
				"title": "Add Words to User Dictionary"
			},
			{
				"command": "cSpell.addWordToWorkspaceSettings",
				"category": "Spell",
				"title": "Add Words to Workspace Settings"
			},
			{
				"command": "cSpell.addWordToFolderSettings",
				"category": "Spell",
				"title": "Add Words to Folder Settings"
			},
			{
				"command": "cSpell.addWordToUserSettings",
				"category": "Spell",
				"title": "Add Words to User Settings"
			},
			{
				"command": "cSpell.enableForWorkspace",
				"category": "Spell",
				"title": "Enable Spell Checking For Workspace"
			},
			{
				"command": "cSpell.disableForWorkspace",
				"category": "Spell",
				"title": "Disable Spell Checking For Workspace"
			},
			{
				"command": "cSpell.enableForGlobal",
				"category": "Spell",
				"title": "Enable Spell Checking by Default"
			},
			{
				"command": "cSpell.disableForGlobal",
				"category": "Spell",
				"title": "Disable Spell Checking by Default"
			},
			{
				"command": "cSpell.enableCurrentLanguage",
				"category": "Spell",
				"title": "Enable Spell Checking Document Type",
				"when": "cSpell.showLegacyCommands.enableCurrentLanguage"
			},
			{
				"command": "cSpell.disableCurrentLanguage",
				"category": "Spell",
				"title": "Disable Spell Checking Document Type",
				"when": "cSpell.showLegacyCommands.disableCurrentLanguage"
			},
			{
				"command": "cSpell.enableCurrentFileType",
				"category": "Spell",
				"title": "Enable Spell Checking File Type",
				"shortTitle": "Enable File Type"
			},
			{
				"command": "cSpell.disableCurrentFileType",
				"category": "Spell",
				"title": "Disable Spell Checking File Type",
				"shortTitle": "Disable File Type"
			},
			{
				"command": "cSpell.displayCSpellInfo",
				"category": "Spell",
				"title": "Show Spell Checker Configuration Info"
			},
			{
				"command": "cSpell.hideCSpellInfo",
				"category": "Spell",
				"title": "Hide Spell Checker Configuration Info"
			},
			{
				"command": "cSpell.toggleEnableForGlobal",
				"category": "Spell",
				"title": "Toggle Spell Checking in User Settings"
			},
			{
				"command": "cSpell.toggleEnableForWorkspace",
				"category": "Spell",
				"title": "Toggle Spell Checking for Workspace"
			},
			{
				"command": "cSpell.toggleEnableSpellChecker",
				"category": "Spell",
				"title": "Toggle Spell Checking"
			},
			{
				"command": "cSpell.removeWordFromFolderDictionary",
				"category": "Spell",
				"title": "Remove Words from the Folder Dictionary"
			},
			{
				"command": "cSpell.removeWordFromWorkspaceDictionary",
				"category": "Spell",
				"title": "Remove Words from the Workspace Dictionaries"
			},
			{
				"command": "cSpell.removeWordFromUserDictionary",
				"category": "Spell",
				"title": "Remove Words from the Global Dictionary"
			},
			{
				"command": "cSpell.logPerfTimeline",
				"category": "Spell",
				"title": "Log CSpell performance times to console"
			},
			{
				"command": "cSpell.addIgnoreWord",
				"category": "Spell",
				"title": "Ignore Words"
			},
			{
				"command": "cSpell.addIgnoreWordsToFolder",
				"category": "Spell",
				"title": "Ignore Word in Folder Settings"
			},
			{
				"command": "cSpell.addIgnoreWordsToWorkspace",
				"category": "Spell",
				"title": "Ignore Words in Workspace Settings"
			},
			{
				"command": "cSpell.addIgnoreWordsToUser",
				"category": "Spell",
				"title": "Ignore Words in User Settings"
			},
			{
				"command": "cSpell.addWordToDictionary",
				"category": "Spell",
				"title": "Add Words to Dictionary",
				"icon": "$(book)"
			},
			{
				"command": "cSpell.addWordToCSpellConfig",
				"category": "Spell",
				"title": "Add Words to CSpell Configuration"
			},
			{
				"command": "cSpell.addIssuesToDictionary",
				"category": "Spell",
				"title": "Add All Spelling Issues to Dictionary"
			},
			{
				"command": "cSpell.createCustomDictionary",
				"category": "Spell",
				"title": "Create a Custom Dictionary File."
			},
			{
				"command": "cSpell.createCSpellConfig",
				"category": "Spell",
				"title": "Create a CSpell Configuration File."
			},
			{
				"command": "cSpell.suggestSpellingCorrections",
				"enablement": "editorTextFocus && cSpell.editorMenuContext.showSuggestions",
				"category": "Spell",
				"title": "Spelling Suggestions..."
			},
			{
				"command": "cSpell.goToNextSpellingIssue",
				"category": "Spell",
				"title": "Go to Next Spelling Issue"
			},
			{
				"command": "cSpell.goToPreviousSpellingIssue",
				"category": "Spell",
				"title": "Go to Previous Spelling Issue"
			},
			{
				"command": "cSpell.goToNextSpellingIssueAndSuggest",
				"category": "Spell",
				"title": "Go to Next Spelling Issue and Suggest"
			},
			{
				"command": "cSpell.goToPreviousSpellingIssueAndSuggest",
				"category": "Spell",
				"title": "Go to Previous Spelling Issue and Suggest"
			},
			{
				"command": "cSpellRegExpTester.testRegExp",
				"title": "Test a Regular Expression on the current document.",
				"enablement": "config.cSpell.experimental.enableRegexpView"
			},
			{
				"command": "cSpellRegExpTester.editRegExp",
				"title": "Edit",
				"icon": "$(edit)",
				"enablement": "config.cSpell.experimental.enableRegexpView"
			},
			{
				"command": "cSpell.experimental.executeDocumentSymbolProvider",
				"title": "Execute Document Symbol Provider on the current document.",
				"icon": "$(code)",
				"enablement": "config.cSpell.experimental.symbols"
			},
			{
				"command": "cSpell.autoFixSpellingIssues",
				"title": "Fix all issues with a preferred suggestion in the current document.",
				"icon": "$(lightbulb-autofix)"
			},
			{
				"command": "cSpell.issueViewer.item.openSuggestionsForIssue",
				"title": "Show Suggestions",
				"icon": "$(list-unordered)",
				"enablement": "view == cSpellIssuesViewByIssue"
			},
			{
				"command": "cSpell.issueViewer.item.autoFixSpellingIssues",
				"title": "Fix issue with preferred suggestion in the current document.",
				"icon": "$(lightbulb-autofix)",
				"enablement": "view == cSpellIssuesViewByIssue"
			},
			{
				"command": "cSpell.issueViewer.item.addWordToDictionary",
				"category": "Spell",
				"title": "Add Word to Dictionary",
				"icon": "$(book)",
				"enablement": "view == cSpellIssuesViewByIssue"
			},
			{
				"command": "cSpell.issuesViewByFile.item.autoFixSpellingIssues",
				"title": "Fix issue with preferred suggestion in the current document.",
				"icon": "$(lightbulb-autofix)",
				"enablement": "view == cSpellIssuesViewByFile"
			},
			{
				"command": "cSpell.issuesViewByFile.item.addWordToDictionary",
				"category": "Spell",
				"title": "Add Word to Dictionary",
				"icon": "$(book)",
				"enablement": "view == cSpellIssuesViewByFile"
			},
			{
				"command": "cSpell.insertDisableNextLineDirective",
				"category": "Spell",
				"title": "Insert Disable Next Line Directive",
				"icon": "$(comment-discussion)"
			},
			{
				"command": "cSpell.insertDisableLineDirective",
				"category": "Spell",
				"title": "Insert Disable Current Line Directive",
				"icon": "$(comment-discussion)"
			},
			{
				"command": "cSpell.insertIgnoreWordsDirective",
				"category": "Spell",
				"title": "Insert Ignore Words Directive",
				"icon": "$(comment-discussion)"
			},
			{
				"command": "cSpell.insertWordsDirective",
				"category": "Spell",
				"title": "Insert Words Directive",
				"icon": "$(comment-discussion)"
			},
			{
				"command": "cSpell.toggleVisible",
				"category": "Spell",
				"title": "Toggle Show Spelling Issues",
				"shortTitle": "Toggle Spelling Issues",
				"icon": "$(eye)"
			},
			{
				"command": "cSpell.show",
				"category": "Spell",
				"title": "Show Spelling Issues",
				"shortTitle": "Show",
				"when": "!cSpell.context.showDecorations",
				"icon": "$(eye)"
			},
			{
				"command": "cSpell.hide",
				"category": "Spell",
				"title": "Hide Spelling Issues",
				"shortTitle": "Hide",
				"when": "cSpell.context.showDecorations",
				"icon": "$(eye-closed)"
			},
			{
				"command": "cSpell.toggleTraceMode",
				"category": "Spell",
				"title": "Toggle Trace Mode",
				"icon": "$(search)"
			},
			{
				"command": "cSpell.createCSpellTerminal",
				"category": "Spell",
				"title": "Open a new CSpell REPL Terminal",
				"icon": "$(terminal)"
			},
			{
				"command": "cSpell.openIssuesPanel",
				"category": "Spell",
				"title": "Open Spell Checker Issues Panel",
				"shortTitle": "Open Spelling Issues",
				"icon": "$(eye)"
			},
			{
				"command": "cSpell.openFileInfoView",
				"category": "Spell",
				"title": "Open Spell Checker File Information View",
				"shortTitle": "Open File Info",
				"icon": "$(eye)"
			},
			{
				"command": "cSpell.reload",
				"category": "Spell",
				"title": "Reload Spell Checker Configuration and Dictionaries",
				"shortTitle": "Reload Config & Dictionaries",
				"icon": "$(sync)"
			},
			{
				"command": "cSpell.restart",
				"category": "Spell",
				"title": "Restart Spell Checker Server",
				"shortTitle": "Restart Spell Checker",
				"icon": "$(sync)"
			},
			{
				"command": "cspell.showActionsMenu",
				"category": "Spell",
				"title": "Show Spell Checker Actions Menu",
				"shortTitle": "Spell Checker Actions",
				"icon": "$(list-unordered)"
			},
			{
				"command": "cSpell.supportRequest",
				"enablement": "config.cSpell.command.enableSupportRequest",
				"category": "Spell",
				"title": "Request Support with the Spell Checker",
				"icon": "$(github)"
			},
			{
				"command": "cSpell.reportIssue",
				"enablement": "config.cSpell.command.reportIssue",
				"category": "Spell",
				"title": "Report an Issue with the Spell Checker",
				"icon": "$(github)"
			},
			{
				"command": "cSpell.about",
				"enablement": "config.cSpell.command.about",
				"category": "Spell",
				"title": "About the Spell Checker",
				"icon": "$(home)"
			},
			{
				"command": "cSpell.releaseNotes",
				"enablement": "config.cSpell.command.releaseNotes",
				"category": "Spell",
				"title": "Show Spell Checker Release Notes",
				"icon": "$(heart)"
			},
			{
				"command": "cSpell.sponsor",
				"enablement": "config.cSpell.command.sponsor",
				"category": "Spell",
				"title": "Sponsor the Spell Checker",
				"icon": "$(heart)"
			},
			{
				"command": "cSpell.rateTheSpellChecker",
				"category": "Spell",
				"title": "Rate the Spell Checker",
				"icon": "$(star)"
			},
			{
				"command": "cSpell.openSettings",
				"category": "Spell",
				"title": "Open Spell Checker Settings",
				"icon": "$(gear)"
			}
		],
		"languages": [
			{
				"id": "jsonc",
				"extensions": [
					"cspell-ext.json",
					"cspell-default.json",
					"cspell.json",
					"cspell.config.json",
					"cSpell.json"
				]
			}
		],
		"jsonValidation": [
			{
				"fileMatch": [
					".cspell.config.json",
					".cspell.config.jsonc",
					".cspell.json",
					".cspell.jsonc",
					"cspell-default.json",
					"cspell-ext.json",
					"cspell-import.json",
					"cspell-imports.json",
					"cspell-include.json",
					"cspell-includes.json",
					"cspell.config.json",
					"cspell.config.jsonc",
					"cspell.json",
					"cspell.jsonc",
					"cSpell.json"
				],
				"url": "./node_modules/@cspell/cspell-types/cspell.schema.json"
			}
		],
		"configurationDefaults": {
			"[markdown]": {
				"cSpell.fixSpellingWithRenameProvider": true,
				"cSpell.advanced.feature.useReferenceProviderWithRename": true,
				"cSpell.advanced.feature.useReferenceProviderRemove": "/^#+\\s/"
			},
			"[scss]": {
				"cSpell.fixSpellingWithRenameProvider": false
			},
			"[css]": {
				"cSpell.fixSpellingWithRenameProvider": false
			},
			"[scminput]": {
				"cSpell.fixSpellingWithRenameProvider": false
			}
		},
		"configuration": [
			{
				"additionalProperties": false,
				"markdownDescription": "Settings that control the behavior of the spell checker.",
				"order": 0,
				"properties": {
					"cSpell.enabled": {
						"default": true,
						"markdownDescription": "Enable / Disable the spell checker.",
						"scope": "resource",
						"type": "boolean"
					}
				},
				"title": "Code Spell Checker",
				"type": "object"
			},
			{
				"additionalProperties": false,
				"markdownDescription": "Advanced settings that are not commonly used.",
				"order": 18,
				"properties": {
					"cSpell.advanced.feature.useReferenceProviderRemove": {
						"markdownDescription": "Used to work around bugs in Reference Providers and Rename Providers.\nAnything matching the provided Regular Expression will be removed from the text\nbefore sending it to the Rename Provider.\n\nSee: [Markdown: Fixing spelling issues in Header sections changes the entire line · Issue #1987](https://github.com/streetsidesoftware/vscode-spell-checker/issues/1987)\n\nIt is unlikely that you would need to edit this setting. If you need to, please open an issue at\n[Spell Checker Issues](https://github.com/streetsidesoftware/vscode-spell-checker/issues)\n\nThis feature is used in connection with `#cSpell.advanced.feature.useReferenceProviderWithRename#`",
						"scope": "language-overridable",
						"title": "Remove Matching Characters Before Rename",
						"type": "string"
					},
					"cSpell.advanced.feature.useReferenceProviderWithRename": {
						"default": false,
						"markdownDescription": "Use the Reference Provider when fixing spelling issues with the Rename Provider.\nThis feature is used in connection with `#cSpell.fixSpellingWithRenameProvider#`",
						"scope": "language-overridable",
						"title": "Use Reference Provider During Rename",
						"type": "boolean"
					},
					"cSpell.fixSpellingWithRenameProvider": {
						"default": true,
						"markdownDescription": "Use Rename Provider when fixing spelling issues.",
						"scope": "language-overridable",
						"type": "boolean"
					},
					"cSpell.logFile": {
						"markdownDescription": "Have the logs written to a file instead of to VS Code.",
						"scope": "window",
						"title": "Write Logs to a File",
						"type": "string"
					},
					"cSpell.logLevel": {
						"default": "Error",
						"enum": [
							"None",
							"Error",
							"Warning",
							"Information",
							"Debug"
						],
						"enumDescriptions": [
							"Do not log",
							"Log only errors",
							"Log errors and warnings",
							"Log errors, warnings, and info",
							"Log everything (noisy)"
						],
						"markdownDescription": "Set the Debug Level for logging messages.",
						"scope": "window",
						"title": "Set Logging Level",
						"type": "string"
					},
					"cSpell.trustedWorkspace": {
						"default": true,
						"markdownDescription": "Enable loading JavaScript CSpell configuration files.\n\nThis setting is automatically set to `true` in a trusted workspace. It is possible to override the setting to `false` in a trusted workspace,\nbut a setting of `true` in an untrusted workspace will be ignored.\n\nSee:\n- [Visual Studio Code Workspace Trust security](https://code.visualstudio.com/docs/editor/workspace-trust)\n- [Workspace Trust Extension Guide -- Visual Studio Code Extension API](https://code.visualstudio.com/api/extension-guides/workspace-trust)",
						"scope": "window",
						"since": "4.0.0",
						"type": "boolean"
					}
				},
				"title": "Advanced",
				"type": "object"
			},
			{
				"additionalProperties": false,
				"markdownDescription": "Settings related to CSpell Command Line Tool.",
				"order": 5,
				"properties": {
					"cSpell.ignoreRandomStrings": {
						"default": true,
						"markdownDescription": "Ignore sequences of characters that look like random strings.",
						"type": "boolean"
					},
					"cSpell.ignoreRegExpList": {
						"items": {
							"type": "string"
						},
						"markdownDescription": "List of regular expressions or Pattern names (defined in `#cSpell.patterns#`) to exclude from spell checking.\n\n- When using the VS Code Preferences UI, it is not necessary to escape the `\\`, VS Code takes care of that.\n- When editing the VS Code `settings.json` file,\n  it is necessary to escape `\\`.\n  Each `\\` becomes `\\\\`.\n\nThe default regular expression flags are `gi`. Add `u` (`gui`), to enable Unicode.\n\n| VS Code UI          | settings.json         | Description                                  |\n| :------------------ | :-------------------- | :------------------------------------------- |\n| `/\\\\[a-z]+/gi`      | `/\\\\\\\\[a-z]+/gi`      | Exclude LaTeX command like `\\mapsto`         |\n| `/\\b[A-Z]{3,5}\\b/g` | `/\\\\b[A-Z]{3,5}\\\\b/g` | Exclude full-caps acronyms of 3-5 length.    |\n| `CStyleComment`     | `CStyleComment`       | A built in pattern                           |",
						"scope": "resource",
						"type": "array"
					},
					"cSpell.includeRegExpList": {
						"items": {
							"type": "string"
						},
						"markdownDescription": "List of regular expression patterns or defined pattern names to match for spell checking.\n\nIf this property is defined, only text matching the included patterns will be checked.",
						"scope": "resource",
						"type": "array"
					},
					"cSpell.minRandomLength": {
						"default": 40,
						"markdownDescription": "The minimum length of a random string to be ignored.",
						"type": "number"
					},
					"cSpell.overrides": {
						"items": {
							"additionalProperties": false,
							"properties": {
								"allowCompoundWords": {
									"default": false,
									"markdownDescription": "True to enable compound word checking.",
									"type": "boolean"
								},
								"caseSensitive": {
									"default": false,
									"markdownDescription": "Determines if words must match case and accent rules.\n\nSee [Case Sensitivity](https://cspell.org/docs/case-sensitive/) for more details.\n\n- `false` - Case is ignored and accents can be missing on the entire word.\n  Incorrect accents or partially missing accents will be marked as incorrect.\n- `true` - Case and accents are enforced.",
									"type": "boolean"
								},
								"description": {
									"markdownDescription": "Optional description of configuration.",
									"type": "string"
								},
								"diagnosticLevel": {
									"default": "Information",
									"enum": [
										"Error",
										"Warning",
										"Information",
										"Hint"
									],
									"enumDescriptions": [
										"Report Spelling Issues as Errors",
										"Report Spelling Issues as Warnings",
										"Report Spelling Issues as Information",
										"Report Spelling Issues as Hints, will not show up in Problems"
									],
									"markdownDescription": "The Diagnostic Severity Level determines how issues are shown in the Problems Pane and within the document.\nSet the level to `Hint` to hide the issues from the Problems Pane.\n\nNote: `#cSpell.useCustomDecorations#` must be `false` to use VS Code Diagnostic Severity Levels.\n\nSee: [VS Code Diagnostic Severity Level](https://code.visualstudio.com/api/references/vscode-api#DiagnosticSeverity)",
									"scope": "resource",
									"title": "Set Diagnostic Reporting Level",
									"type": "string"
								},
								"diagnosticLevelFlaggedWords": {
									"enum": [
										"Error",
										"Warning",
										"Information",
										"Hint"
									],
									"enumDescriptions": [
										"Report Spelling Issues as Errors",
										"Report Spelling Issues as Warnings",
										"Report Spelling Issues as Information",
										"Report Spelling Issues as Hints, will not show up in Problems"
									],
									"markdownDescription": "Flagged word issues found by the spell checker are marked with a Diagnostic Severity Level. This affects the color of the squiggle.\nBy default, flagged words will use the same diagnostic level as general issues. Use this setting to customize them.\n\nSee: [VS Code Diagnostic Severity Level](https://code.visualstudio.com/api/references/vscode-api#DiagnosticSeverity)",
									"scope": "resource",
									"since": "4.0.0",
									"title": "Set Diagnostic Reporting Level for Flagged Words",
									"type": "string"
								},
								"dictionaries": {
									"items": {
										"anyOf": [
											{
												"markdownDescription": "This a reference to a named dictionary.\nIt is expected to match the name of a dictionary.",
												"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
												"type": "string"
											},
											{
												"markdownDescription": "This a negative reference to a named dictionary.\n\nIt is used to exclude or include a dictionary by name.\n\nThe reference starts with 1 or more `!`.\n- `!<dictionary_name>` - Used to exclude the dictionary matching `<dictionary_name>`.\n- `!!<dictionary_name>` - Used to re-include a dictionary matching `<dictionary_name>`.\n   Overrides `!<dictionary_name>`.\n- `!!!<dictionary_name>` - Used to exclude a dictionary matching `<dictionary_name>`.\n   Overrides `!!<dictionary_name>`.",
												"pattern": "^(?=!+[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
												"type": "string"
											}
										],
										"markdownDescription": "Reference to a dictionary by name.\nOne of:\n-  {@link  DictionaryRef } \n-  {@link  DictionaryNegRef }"
									},
									"markdownDescription": "Optional list of dictionaries to use. Each entry should match the name of the dictionary.\n\nTo remove a dictionary from the list, add `!` before the name.\n\nFor example, `!typescript` will turn off the dictionary with the name `typescript`.\n\nSee the [Dictionaries](https://cspell.org/docs/dictionaries/)\nand [Custom Dictionaries](https://cspell.org/docs/dictionaries-custom/) for more details.",
									"type": "array"
								},
								"dictionaryDefinitions": {
									"items": {
										"anyOf": [
											{
												"additionalProperties": false,
												"properties": {
													"addWords": {
														"default": true,
														"markdownDescription": "Indicate if this custom dictionary should be used to store added words.",
														"title": "Add Words to Dictionary",
														"type": "boolean"
													},
													"description": {
														"markdownDescription": "Optional: A human readable description.",
														"title": "Description of the Dictionary",
														"type": "string"
													},
													"ignoreForbiddenWords": {
														"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
														"type": "boolean"
													},
													"name": {
														"markdownDescription": "The reference name of the dictionary.\n\n\nExample: `My Words` or `custom`\n\n\nIf the name matches a pre-defined dictionary, it will override the pre-defined dictionary.\nIf you use: `typescript` it will replace the built-in TypeScript dictionary.",
														"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
														"title": "Name of Dictionary",
														"type": "string"
													},
													"noSuggest": {
														"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
														"type": "boolean"
													},
													"path": {
														"markdownDescription": "Define the path to the dictionary text file.\n\n**Note:** if path is `undefined` the `name`d dictionary is expected to be found\nin the `dictionaryDefinitions`.\n\nFile Format: Each line in the file is considered a dictionary entry.\n\nCase is preserved while leading and trailing space is removed.\n\nThe path should be absolute, or relative to the workspace.\n\n**Example:** relative to User's folder\n\n```json\n\"path\": \"~/dictionaries/custom_dictionary.txt\"\n```\n\n**Example:** relative to the `client` folder in a multi-root workspace\n\n```json\n\"path\": \"${workspaceFolder:client}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the current workspace folder in a single-root workspace\n\n**Note:** this might not work as expected in a multi-root workspace since it is based upon the relative\nworkspace for the currently open file.\n\n```json\n\"path\": \"${workspaceFolder}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the workspace folder in a single-root workspace or the first folder in\na multi-root workspace\n\n```json\n\"path\": \"./build/custom_dictionary.txt\"\n```",
														"type": "string"
													},
													"scope": {
														"anyOf": [
															{
																"enum": [
																	"user",
																	"workspace",
																	"folder"
																],
																"markdownDescription": "Specifies the scope of a dictionary.",
																"type": "string"
															},
															{
																"items": {
																	"enum": [
																		"user",
																		"workspace",
																		"folder"
																	],
																	"markdownDescription": "Specifies the scope of a dictionary.",
																	"type": "string"
																},
																"type": "array"
															}
														],
														"markdownDescription": "Options are\n- `user` - words that apply to all projects and workspaces\n- `workspace` - words that apply to the entire workspace\n- `folder` - words that apply to only a workspace folder",
														"title": "Scope of dictionary"
													},
													"supportNonStrictSearches": {
														"default": true,
														"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
														"type": "boolean"
													}
												},
												"required": [
													"name",
													"path"
												],
												"type": "object"
											},
											{
												"additionalProperties": false,
												"properties": {
													"description": {
														"markdownDescription": "Optional description of the contents / purpose of the dictionary.",
														"type": "string"
													},
													"ignoreForbiddenWords": {
														"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
														"type": "boolean"
													},
													"name": {
														"markdownDescription": "This is the name of a dictionary.\n\nName Format:\n- Must contain at least 1 number or letter.\n- Spaces are allowed.\n- Leading and trailing space will be removed.\n- Names ARE case-sensitive.\n- Must not contain `*`, `!`, `;`, `,`, `{`, `}`, `[`, `]`, `~`.",
														"type": "string"
													},
													"noSuggest": {
														"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
														"type": "boolean"
													},
													"path": {
														"markdownDescription": "Path to the file.",
														"type": "string"
													},
													"supportNonStrictSearches": {
														"default": true,
														"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
														"type": "boolean"
													}
												},
												"required": [
													"path",
													"name"
												],
												"type": "object"
											},
											{
												"additionalProperties": false,
												"properties": {
													"addWords": {
														"markdownDescription": "When `true`, let's the spell checker know that words can be added to this dictionary.",
														"type": "boolean"
													},
													"description": {
														"markdownDescription": "Optional description of the contents / purpose of the dictionary.",
														"type": "string"
													},
													"ignoreForbiddenWords": {
														"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
														"type": "boolean"
													},
													"name": {
														"markdownDescription": "This is the name of a dictionary.\n\nName Format:\n- Must contain at least 1 number or letter.\n- Spaces are allowed.\n- Leading and trailing space will be removed.\n- Names ARE case-sensitive.\n- Must not contain `*`, `!`, `;`, `,`, `{`, `}`, `[`, `]`, `~`.",
														"type": "string"
													},
													"noSuggest": {
														"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
														"type": "boolean"
													},
													"path": {
														"markdownDescription": "Path to custom dictionary text file.",
														"type": "string"
													},
													"scope": {
														"anyOf": [
															{
																"enum": [
																	"user",
																	"workspace",
																	"folder"
																],
																"markdownDescription": "Specifies the scope of a dictionary.",
																"type": "string"
															},
															{
																"items": {
																	"enum": [
																		"user",
																		"workspace",
																		"folder"
																	],
																	"markdownDescription": "Specifies the scope of a dictionary.",
																	"type": "string"
																},
																"type": "array"
															}
														],
														"markdownDescription": "Defines the scope for when words will be added to the dictionary.\n\nScope values: `user`, `workspace`, `folder`."
													},
													"supportNonStrictSearches": {
														"default": true,
														"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
														"type": "boolean"
													}
												},
												"required": [
													"path",
													"addWords",
													"name"
												],
												"type": "object"
											}
										]
									},
									"markdownDescription": "Define custom dictionaries.\nIf `addWords` is `true` words will be added to this dictionary.\n\nThis setting is subject to User/Workspace settings precedence rules: [Visual Studio Code User and Workspace Settings](https://code.visualstudio.com/docs/getstarted/settings#_settings-precedence).\n\nIt is better to use `#cSpell.customDictionaries#`\n\n**Example:**\n\n```js\n\"cSpell.dictionaryDefinitions\": [\n  {\n    \"name\": \"project-words\",\n    \"path\": \"${workspaceRoot}/project-words.txt\",\n    \"description\": \"Words used in this project\",\n    \"addWords\": true\n  }\n]\n```",
									"scope": "resource",
									"title": "Dictionary Definitions",
									"type": "array"
								},
								"enableFiletypes": {
									"items": {
										"markdownDescription": "A file type:\n- `*` - will match ALL file types.\n- `typescript`, `cpp`, `json`, etc.",
										"pattern": "^(!?[-\\w_\\s]+)|(\\*)$",
										"type": "string"
									},
									"markdownDescription": "Enable / Disable checking file types (languageIds).\n\nThese are in additional to the file types specified by  {@link  Settings.enabledLanguageIds } .\nTo disable a language, prefix with `!` as in `!json`,\n\n\n**Example: individual file types**\n\n```\njsonc       // enable checking for jsonc\n!json       // disable checking for json\nkotlin      // enable checking for kotlin\n```\n\n**Example: enable all file types**\n\n```\n*           // enable checking for all file types\n!json       // except for json\n```",
									"scope": "resource",
									"title": "Enable File Types",
									"type": "array",
									"uniqueItems": true
								},
								"enabled": {
									"default": true,
									"markdownDescription": "Is the spell checker enabled.",
									"type": "boolean"
								},
								"enabledFileTypes": {
									"additionalProperties": {
										"type": "boolean"
									},
									"markdownDescription": "Enable / Disable checking file types (languageIds).\n\nThis setting replaces:  {@link  Settings.enabledLanguageIds }  and  {@link  Settings.enableFiletypes } .\n\nA Value of:\n- `true` - enable checking for the file type\n- `false` - disable checking for the file type\n\nA file type of `*` is a wildcard that enables all file types.\n\n**Example: enable all file types**\n\n| File Type | Enabled | Comment |\n| --------- | ------- | ------- |\n| `*`       | `true`  | Enable all file types. |\n| `json`    | `false` | Disable checking for json files. |",
									"since": "8.8.1",
									"title": "Enabled File Types to Check",
									"type": "object"
								},
								"enabledLanguageIds": {
									"items": {
										"markdownDescription": "A file type:\n- `*` - will match ALL file types.\n- `typescript`, `cpp`, `json`, etc.",
										"pattern": "^(!?[-\\w_\\s]+)|(\\*)$",
										"type": "string"
									},
									"markdownDescription": "Specify a list of file types to spell check. It is better to use  {@link  Settings.enabledFileTypes }  to Enable / Disable checking files types.",
									"title": "Enabled Language Ids",
									"type": "array",
									"uniqueItems": true
								},
								"filename": {
									"anyOf": [
										{
											"markdownDescription": "These are glob expressions.",
											"type": "string"
										},
										{
											"items": {
												"markdownDescription": "These are glob expressions.",
												"type": "string"
											},
											"type": "array"
										}
									],
									"markdownDescription": "Glob pattern or patterns to match against."
								},
								"flagWords": {
									"items": {
										"type": "string"
									},
									"markdownDescription": "List of words to always be considered incorrect. Words found in `flagWords` override `words`.\n\nFormat of `flagWords`\n- single word entry - `word`\n- with suggestions - `word:suggestion` or `word->suggestion, suggestions`\n\nExample:\n```ts\n\"flagWords\": [\n  \"color: colour\",\n  \"incase: in case, encase\",\n  \"canot->cannot\",\n  \"cancelled->canceled\"\n]\n```",
									"type": "array"
								},
								"id": {
									"markdownDescription": "Optional identifier.",
									"type": "string"
								},
								"ignoreRandomStrings": {
									"default": true,
									"markdownDescription": "Ignore sequences of characters that look like random strings.",
									"type": "boolean"
								},
								"ignoreRegExpList": {
									"items": {
										"anyOf": [
											{
												"type": "string"
											},
											{
												"markdownDescription": "This matches the name in a pattern definition.",
												"type": "string"
											},
											{
												"enum": [
													"Base64",
													"Base64MultiLine",
													"Base64SingleLine",
													"CStyleComment",
													"CStyleHexValue",
													"CSSHexValue",
													"CommitHash",
													"CommitHashLink",
													"Email",
													"EscapeCharacters",
													"HexValues",
													"href",
													"PhpHereDoc",
													"PublicKey",
													"RsaCert",
													"SshRsa",
													"SHA",
													"HashStrings",
													"SpellCheckerDisable",
													"SpellCheckerDisableBlock",
													"SpellCheckerDisableLine",
													"SpellCheckerDisableNext",
													"SpellCheckerIgnoreInDocSetting",
													"string",
													"UnicodeRef",
													"Urls",
													"UUID",
													"Everything"
												],
												"type": "string"
											}
										],
										"markdownDescription": "A PatternRef is a Pattern or PatternId."
									},
									"markdownDescription": "List of regular expression patterns or pattern names to exclude from spell checking.\n\nExample: `[\"href\"]` - to exclude html href pattern.\n\nRegular expressions use JavaScript regular expression syntax.\n\nExample: to ignore ALL-CAPS words\n\nJSON\n```json\n\"ignoreRegExpList\": [\"/\\\\b[A-Z]+\\\\b/g\"]\n```\n\nYAML\n```yaml\nignoreRegExpList:\n  - >-\n   /\\b[A-Z]+\\b/g\n```\n\nBy default, several patterns are excluded. See\n[Configuration](https://cspell.org/configuration/patterns) for more details.\n\nWhile you can create your own patterns, you can also leverage several patterns that are\n[built-in to CSpell](https://cspell.org/types/cspell-types/types/PredefinedPatterns.html).",
									"type": "array"
								},
								"ignoreWords": {
									"items": {
										"type": "string"
									},
									"markdownDescription": "List of words to be ignored. An ignored word will not show up as an error, even if it is\nalso in the `flagWords`.",
									"type": "array"
								},
								"includeRegExpList": {
									"items": {
										"anyOf": [
											{
												"type": "string"
											},
											{
												"markdownDescription": "This matches the name in a pattern definition.",
												"type": "string"
											},
											{
												"enum": [
													"Base64",
													"Base64MultiLine",
													"Base64SingleLine",
													"CStyleComment",
													"CStyleHexValue",
													"CSSHexValue",
													"CommitHash",
													"CommitHashLink",
													"Email",
													"EscapeCharacters",
													"HexValues",
													"href",
													"PhpHereDoc",
													"PublicKey",
													"RsaCert",
													"SshRsa",
													"SHA",
													"HashStrings",
													"SpellCheckerDisable",
													"SpellCheckerDisableBlock",
													"SpellCheckerDisableLine",
													"SpellCheckerDisableNext",
													"SpellCheckerIgnoreInDocSetting",
													"string",
													"UnicodeRef",
													"Urls",
													"UUID",
													"Everything"
												],
												"type": "string"
											}
										],
										"markdownDescription": "A PatternRef is a Pattern or PatternId."
									},
									"markdownDescription": "List of regular expression patterns or defined pattern names to match for spell checking.\n\nIf this property is defined, only text matching the included patterns will be checked.\n\nWhile you can create your own patterns, you can also leverage several patterns that are\n[built-in to CSpell](https://cspell.org/types/cspell-types/types/PredefinedPatterns.html).",
									"type": "array"
								},
								"language": {
									"markdownDescription": "Sets the locale.",
									"type": "string"
								},
								"languageId": {
									"anyOf": [
										{
											"markdownDescription": "A file type:\n- `*` - will match ALL file types.\n- `typescript`, `cpp`, `json`, etc.",
											"pattern": "^(!?[-\\w_\\s]+)|(\\*)$",
											"type": "string"
										},
										{
											"markdownDescription": "A single string with a comma separated list of file types:\n- `typescript,cpp`\n- `json,jsonc,yaml`\n- etc.",
											"pattern": "^([-\\w_\\s]+)(,[-\\w_\\s]+)*$",
											"type": "string"
										},
										{
											"markdownDescription": "A Negative File Type used to exclude files of that type.\n- `!typescript` - will exclude typescript files.\n- `!cpp,!json` - will exclude cpp and json files.\n- `!typescript,javascript` - will exclude typescript files and include javascript files.",
											"pattern": "^(![-\\w_\\s]+)(,!?[-\\w_\\s]+)*$",
											"type": "string"
										},
										{
											"items": {
												"anyOf": [
													{
														"markdownDescription": "A file type:\n- `*` - will match ALL file types.\n- `typescript`, `cpp`, `json`, etc.",
														"pattern": "^(!?[-\\w_\\s]+)|(\\*)$",
														"type": "string"
													},
													{
														"markdownDescription": "A single string with a comma separated list of file types:\n- `typescript,cpp`\n- `json,jsonc,yaml`\n- etc.",
														"pattern": "^([-\\w_\\s]+)(,[-\\w_\\s]+)*$",
														"type": "string"
													},
													{
														"markdownDescription": "A Negative File Type used to exclude files of that type.\n- `!typescript` - will exclude typescript files.\n- `!cpp,!json` - will exclude cpp and json files.\n- `!typescript,javascript` - will exclude typescript files and include javascript files.",
														"pattern": "^(![-\\w_\\s]+)(,!?[-\\w_\\s]+)*$",
														"type": "string"
													}
												]
											},
											"type": "array"
										}
									],
									"markdownDescription": "Sets the programming language id to match file type."
								},
								"languageSettings": {
									"items": {
										"additionalProperties": false,
										"properties": {
											"allowCompoundWords": {
												"default": false,
												"markdownDescription": "True to enable compound word checking.",
												"type": "boolean"
											},
											"caseSensitive": {
												"default": false,
												"markdownDescription": "Determines if words must match case and accent rules.\n\nSee [Case Sensitivity](https://cspell.org/docs/case-sensitive/) for more details.\n\n- `false` - Case is ignored and accents can be missing on the entire word.\n  Incorrect accents or partially missing accents will be marked as incorrect.\n- `true` - Case and accents are enforced.",
												"type": "boolean"
											},
											"description": {
												"markdownDescription": "Optional description of configuration.",
												"type": "string"
											},
											"dictionaries": {
												"items": {
													"anyOf": [
														{
															"markdownDescription": "This a reference to a named dictionary.\nIt is expected to match the name of a dictionary.",
															"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
															"type": "string"
														},
														{
															"markdownDescription": "This a negative reference to a named dictionary.\n\nIt is used to exclude or include a dictionary by name.\n\nThe reference starts with 1 or more `!`.\n- `!<dictionary_name>` - Used to exclude the dictionary matching `<dictionary_name>`.\n- `!!<dictionary_name>` - Used to re-include a dictionary matching `<dictionary_name>`.\n   Overrides `!<dictionary_name>`.\n- `!!!<dictionary_name>` - Used to exclude a dictionary matching `<dictionary_name>`.\n   Overrides `!!<dictionary_name>`.",
															"pattern": "^(?=!+[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
															"type": "string"
														}
													],
													"markdownDescription": "Reference to a dictionary by name.\nOne of:\n-  {@link  DictionaryRef } \n-  {@link  DictionaryNegRef }"
												},
												"markdownDescription": "Optional list of dictionaries to use. Each entry should match the name of the dictionary.\n\nTo remove a dictionary from the list, add `!` before the name.\n\nFor example, `!typescript` will turn off the dictionary with the name `typescript`.\n\nSee the [Dictionaries](https://cspell.org/docs/dictionaries/)\nand [Custom Dictionaries](https://cspell.org/docs/dictionaries-custom/) for more details.",
												"type": "array"
											},
											"dictionaryDefinitions": {
												"items": {
													"anyOf": [
														{
															"additionalProperties": false,
															"properties": {
																"addWords": {
																	"default": true,
																	"markdownDescription": "Indicate if this custom dictionary should be used to store added words.",
																	"title": "Add Words to Dictionary",
																	"type": "boolean"
																},
																"description": {
																	"markdownDescription": "Optional: A human readable description.",
																	"title": "Description of the Dictionary",
																	"type": "string"
																},
																"ignoreForbiddenWords": {
																	"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
																	"type": "boolean"
																},
																"name": {
																	"markdownDescription": "The reference name of the dictionary.\n\n\nExample: `My Words` or `custom`\n\n\nIf the name matches a pre-defined dictionary, it will override the pre-defined dictionary.\nIf you use: `typescript` it will replace the built-in TypeScript dictionary.",
																	"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
																	"title": "Name of Dictionary",
																	"type": "string"
																},
																"noSuggest": {
																	"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
																	"type": "boolean"
																},
																"path": {
																	"markdownDescription": "Define the path to the dictionary text file.\n\n**Note:** if path is `undefined` the `name`d dictionary is expected to be found\nin the `dictionaryDefinitions`.\n\nFile Format: Each line in the file is considered a dictionary entry.\n\nCase is preserved while leading and trailing space is removed.\n\nThe path should be absolute, or relative to the workspace.\n\n**Example:** relative to User's folder\n\n```json\n\"path\": \"~/dictionaries/custom_dictionary.txt\"\n```\n\n**Example:** relative to the `client` folder in a multi-root workspace\n\n```json\n\"path\": \"${workspaceFolder:client}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the current workspace folder in a single-root workspace\n\n**Note:** this might not work as expected in a multi-root workspace since it is based upon the relative\nworkspace for the currently open file.\n\n```json\n\"path\": \"${workspaceFolder}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the workspace folder in a single-root workspace or the first folder in\na multi-root workspace\n\n```json\n\"path\": \"./build/custom_dictionary.txt\"\n```",
																	"type": "string"
																},
																"scope": {
																	"anyOf": [
																		{
																			"enum": [
																				"user",
																				"workspace",
																				"folder"
																			],
																			"markdownDescription": "Specifies the scope of a dictionary.",
																			"type": "string"
																		},
																		{
																			"items": {
																				"enum": [
																					"user",
																					"workspace",
																					"folder"
																				],
																				"markdownDescription": "Specifies the scope of a dictionary.",
																				"type": "string"
																			},
																			"type": "array"
																		}
																	],
																	"markdownDescription": "Options are\n- `user` - words that apply to all projects and workspaces\n- `workspace` - words that apply to the entire workspace\n- `folder` - words that apply to only a workspace folder",
																	"title": "Scope of dictionary"
																},
																"supportNonStrictSearches": {
																	"default": true,
																	"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
																	"type": "boolean"
																}
															},
															"required": [
																"name",
																"path"
															],
															"type": "object"
														},
														{
															"additionalProperties": false,
															"properties": {
																"description": {
																	"markdownDescription": "Optional description of the contents / purpose of the dictionary.",
																	"type": "string"
																},
																"ignoreForbiddenWords": {
																	"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
																	"type": "boolean"
																},
																"name": {
																	"markdownDescription": "This is the name of a dictionary.\n\nName Format:\n- Must contain at least 1 number or letter.\n- Spaces are allowed.\n- Leading and trailing space will be removed.\n- Names ARE case-sensitive.\n- Must not contain `*`, `!`, `;`, `,`, `{`, `}`, `[`, `]`, `~`.",
																	"type": "string"
																},
																"noSuggest": {
																	"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
																	"type": "boolean"
																},
																"path": {
																	"markdownDescription": "Path to the file.",
																	"type": "string"
																},
																"supportNonStrictSearches": {
																	"default": true,
																	"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
																	"type": "boolean"
																}
															},
															"required": [
																"path",
																"name"
															],
															"type": "object"
														},
														{
															"additionalProperties": false,
															"properties": {
																"addWords": {
																	"markdownDescription": "When `true`, let's the spell checker know that words can be added to this dictionary.",
																	"type": "boolean"
																},
																"description": {
																	"markdownDescription": "Optional description of the contents / purpose of the dictionary.",
																	"type": "string"
																},
																"ignoreForbiddenWords": {
																	"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
																	"type": "boolean"
																},
																"name": {
																	"markdownDescription": "This is the name of a dictionary.\n\nName Format:\n- Must contain at least 1 number or letter.\n- Spaces are allowed.\n- Leading and trailing space will be removed.\n- Names ARE case-sensitive.\n- Must not contain `*`, `!`, `;`, `,`, `{`, `}`, `[`, `]`, `~`.",
																	"type": "string"
																},
																"noSuggest": {
																	"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
																	"type": "boolean"
																},
																"path": {
																	"markdownDescription": "Path to custom dictionary text file.",
																	"type": "string"
																},
																"scope": {
																	"anyOf": [
																		{
																			"enum": [
																				"user",
																				"workspace",
																				"folder"
																			],
																			"markdownDescription": "Specifies the scope of a dictionary.",
																			"type": "string"
																		},
																		{
																			"items": {
																				"enum": [
																					"user",
																					"workspace",
																					"folder"
																				],
																				"markdownDescription": "Specifies the scope of a dictionary.",
																				"type": "string"
																			},
																			"type": "array"
																		}
																	],
																	"markdownDescription": "Defines the scope for when words will be added to the dictionary.\n\nScope values: `user`, `workspace`, `folder`."
																},
																"supportNonStrictSearches": {
																	"default": true,
																	"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
																	"type": "boolean"
																}
															},
															"required": [
																"path",
																"addWords",
																"name"
															],
															"type": "object"
														}
													]
												},
												"markdownDescription": "Define custom dictionaries.\nIf `addWords` is `true` words will be added to this dictionary.\n\nThis setting is subject to User/Workspace settings precedence rules: [Visual Studio Code User and Workspace Settings](https://code.visualstudio.com/docs/getstarted/settings#_settings-precedence).\n\nIt is better to use `#cSpell.customDictionaries#`\n\n**Example:**\n\n```js\n\"cSpell.dictionaryDefinitions\": [\n  {\n    \"name\": \"project-words\",\n    \"path\": \"${workspaceRoot}/project-words.txt\",\n    \"description\": \"Words used in this project\",\n    \"addWords\": true\n  }\n]\n```",
												"scope": "resource",
												"title": "Dictionary Definitions",
												"type": "array"
											},
											"enabled": {
												"default": true,
												"markdownDescription": "Is the spell checker enabled.",
												"type": "boolean"
											},
											"flagWords": {
												"items": {
													"type": "string"
												},
												"markdownDescription": "List of words to always be considered incorrect. Words found in `flagWords` override `words`.\n\nFormat of `flagWords`\n- single word entry - `word`\n- with suggestions - `word:suggestion` or `word->suggestion, suggestions`\n\nExample:\n```ts\n\"flagWords\": [\n  \"color: colour\",\n  \"incase: in case, encase\",\n  \"canot->cannot\",\n  \"cancelled->canceled\"\n]\n```",
												"type": "array"
											},
											"id": {
												"markdownDescription": "Optional identifier.",
												"type": "string"
											},
											"ignoreRegExpList": {
												"items": {
													"anyOf": [
														{
															"type": "string"
														},
														{
															"markdownDescription": "This matches the name in a pattern definition.",
															"type": "string"
														},
														{
															"enum": [
																"Base64",
																"Base64MultiLine",
																"Base64SingleLine",
																"CStyleComment",
																"CStyleHexValue",
																"CSSHexValue",
																"CommitHash",
																"CommitHashLink",
																"Email",
																"EscapeCharacters",
																"HexValues",
																"href",
																"PhpHereDoc",
																"PublicKey",
																"RsaCert",
																"SshRsa",
																"SHA",
																"HashStrings",
																"SpellCheckerDisable",
																"SpellCheckerDisableBlock",
																"SpellCheckerDisableLine",
																"SpellCheckerDisableNext",
																"SpellCheckerIgnoreInDocSetting",
																"string",
																"UnicodeRef",
																"Urls",
																"UUID",
																"Everything"
															],
															"type": "string"
														}
													],
													"markdownDescription": "A PatternRef is a Pattern or PatternId."
												},
												"markdownDescription": "List of regular expression patterns or pattern names to exclude from spell checking.\n\nExample: `[\"href\"]` - to exclude html href pattern.\n\nRegular expressions use JavaScript regular expression syntax.\n\nExample: to ignore ALL-CAPS words\n\nJSON\n```json\n\"ignoreRegExpList\": [\"/\\\\b[A-Z]+\\\\b/g\"]\n```\n\nYAML\n```yaml\nignoreRegExpList:\n  - >-\n   /\\b[A-Z]+\\b/g\n```\n\nBy default, several patterns are excluded. See\n[Configuration](https://cspell.org/configuration/patterns) for more details.\n\nWhile you can create your own patterns, you can also leverage several patterns that are\n[built-in to CSpell](https://cspell.org/types/cspell-types/types/PredefinedPatterns.html).",
												"type": "array"
											},
											"ignoreWords": {
												"items": {
													"type": "string"
												},
												"markdownDescription": "List of words to be ignored. An ignored word will not show up as an error, even if it is\nalso in the `flagWords`.",
												"type": "array"
											},
											"includeRegExpList": {
												"items": {
													"anyOf": [
														{
															"type": "string"
														},
														{
															"markdownDescription": "This matches the name in a pattern definition.",
															"type": "string"
														},
														{
															"enum": [
																"Base64",
																"Base64MultiLine",
																"Base64SingleLine",
																"CStyleComment",
																"CStyleHexValue",
																"CSSHexValue",
																"CommitHash",
																"CommitHashLink",
																"Email",
																"EscapeCharacters",
																"HexValues",
																"href",
																"PhpHereDoc",
																"PublicKey",
																"RsaCert",
																"SshRsa",
																"SHA",
																"HashStrings",
																"SpellCheckerDisable",
																"SpellCheckerDisableBlock",
																"SpellCheckerDisableLine",
																"SpellCheckerDisableNext",
																"SpellCheckerIgnoreInDocSetting",
																"string",
																"UnicodeRef",
																"Urls",
																"UUID",
																"Everything"
															],
															"type": "string"
														}
													],
													"markdownDescription": "A PatternRef is a Pattern or PatternId."
												},
												"markdownDescription": "List of regular expression patterns or defined pattern names to match for spell checking.\n\nIf this property is defined, only text matching the included patterns will be checked.\n\nWhile you can create your own patterns, you can also leverage several patterns that are\n[built-in to CSpell](https://cspell.org/types/cspell-types/types/PredefinedPatterns.html).",
												"type": "array"
											},
											"languageId": {
												"anyOf": [
													{
														"markdownDescription": "A file type:\n- `*` - will match ALL file types.\n- `typescript`, `cpp`, `json`, etc.",
														"pattern": "^(!?[-\\w_\\s]+)|(\\*)$",
														"type": "string"
													},
													{
														"markdownDescription": "A single string with a comma separated list of file types:\n- `typescript,cpp`\n- `json,jsonc,yaml`\n- etc.",
														"pattern": "^([-\\w_\\s]+)(,[-\\w_\\s]+)*$",
														"type": "string"
													},
													{
														"markdownDescription": "A Negative File Type used to exclude files of that type.\n- `!typescript` - will exclude typescript files.\n- `!cpp,!json` - will exclude cpp and json files.\n- `!typescript,javascript` - will exclude typescript files and include javascript files.",
														"pattern": "^(![-\\w_\\s]+)(,!?[-\\w_\\s]+)*$",
														"type": "string"
													},
													{
														"items": {
															"anyOf": [
																{
																	"markdownDescription": "A file type:\n- `*` - will match ALL file types.\n- `typescript`, `cpp`, `json`, etc.",
																	"pattern": "^(!?[-\\w_\\s]+)|(\\*)$",
																	"type": "string"
																},
																{
																	"markdownDescription": "A single string with a comma separated list of file types:\n- `typescript,cpp`\n- `json,jsonc,yaml`\n- etc.",
																	"pattern": "^([-\\w_\\s]+)(,[-\\w_\\s]+)*$",
																	"type": "string"
																},
																{
																	"markdownDescription": "A Negative File Type used to exclude files of that type.\n- `!typescript` - will exclude typescript files.\n- `!cpp,!json` - will exclude cpp and json files.\n- `!typescript,javascript` - will exclude typescript files and include javascript files.",
																	"pattern": "^(![-\\w_\\s]+)(,!?[-\\w_\\s]+)*$",
																	"type": "string"
																}
															]
														},
														"type": "array"
													}
												],
												"markdownDescription": "The language id.  Ex: `typescript`, `html`, or `php`.  `*` -- will match all languages."
											},
											"locale": {
												"anyOf": [
													{
														"markdownDescription": "This is a written language locale like: `en`, `en-GB`, `fr`, `es`, `de` or `en,fr` for both English and French",
														"type": "string"
													},
													{
														"items": {
															"markdownDescription": "This is a written language locale like: `en`, `en-GB`, `fr`, `es`, `de` or `en,fr` for both English and French",
															"type": "string"
														},
														"type": "array"
													}
												],
												"markdownDescription": "The locale filter, matches against the language. This can be a comma separated list. `*` will match all locales."
											},
											"name": {
												"markdownDescription": "Optional name of configuration.",
												"type": "string"
											},
											"noSuggestDictionaries": {
												"items": {
													"anyOf": [
														{
															"markdownDescription": "This a reference to a named dictionary.\nIt is expected to match the name of a dictionary.",
															"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
															"type": "string"
														},
														{
															"markdownDescription": "This a negative reference to a named dictionary.\n\nIt is used to exclude or include a dictionary by name.\n\nThe reference starts with 1 or more `!`.\n- `!<dictionary_name>` - Used to exclude the dictionary matching `<dictionary_name>`.\n- `!!<dictionary_name>` - Used to re-include a dictionary matching `<dictionary_name>`.\n   Overrides `!<dictionary_name>`.\n- `!!!<dictionary_name>` - Used to exclude a dictionary matching `<dictionary_name>`.\n   Overrides `!!<dictionary_name>`.",
															"pattern": "^(?=!+[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
															"type": "string"
														}
													],
													"markdownDescription": "Reference to a dictionary by name.\nOne of:\n-  {@link  DictionaryRef } \n-  {@link  DictionaryNegRef }"
												},
												"markdownDescription": "Optional list of dictionaries that will not be used for suggestions.\nWords in these dictionaries are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\none of these dictionaries, it will be removed from the set of\npossible suggestions.",
												"type": "array"
											},
											"patterns": {
												"items": {
													"additionalProperties": false,
													"properties": {
														"description": {
															"markdownDescription": "Description of the pattern.",
															"type": "string"
														},
														"name": {
															"markdownDescription": "Pattern name, used as an identifier in ignoreRegExpList and includeRegExpList.\nIt is possible to redefine one of the predefined patterns to override its value.",
															"type": "string"
														},
														"pattern": {
															"anyOf": [
																{
																	"type": "string"
																},
																{
																	"items": {
																		"type": "string"
																	},
																	"type": "array"
																}
															],
															"markdownDescription": "RegExp pattern or array of RegExp patterns."
														}
													},
													"required": [
														"name",
														"pattern"
													],
													"type": "object"
												},
												"markdownDescription": "Defines a list of patterns that can be used with the  {@link  ignoreRegExpList }  and\n {@link  includeRegExpList }  options.\n\nFor example:\n\n```javascript\n\"ignoreRegExpList\": [\"comments\"],\n\"patterns\": [\n  {\n    \"name\": \"comment-single-line\",\n    \"pattern\": \"/#.*/g\"\n  },\n  {\n    \"name\": \"comment-multi-line\",\n    \"pattern\": \"/(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)/g\"\n  },\n  // You can also combine multiple named patterns into one single named pattern\n  {\n    \"name\": \"comments\",\n    \"pattern\": [\"comment-single-line\", \"comment-multi-line\"]\n  }\n]\n```",
												"type": "array"
											},
											"suggestWords": {
												"items": {
													"type": "string"
												},
												"markdownDescription": "A list of suggested replacements for words.\nSuggested words provide a way to make preferred suggestions on word replacements.\nTo hint at a preferred change, but not to require it.\n\nFormat of `suggestWords`\n- Single suggestion (possible auto fix)\n    - `word: suggestion`\n    - `word->suggestion`\n- Multiple suggestions (not auto fixable)\n   - `word: first, second, third`\n   - `word->first, second, third`",
												"type": "array"
											},
											"unknownWords": {
												"default": "report-all",
												"enum": [
													"report-all",
													"report-simple",
													"report-common-typos",
													"report-flagged"
												],
												"markdownDescription": "Controls how unknown words are handled.\n\n- `report-all` - Report all unknown words (default behavior)\n- `report-simple` - Report unknown words that have simple spelling errors, typos, and flagged words.\n- `report-common-typos` - Report unknown words that are common typos and flagged words.\n- `report-flagged` - Report unknown words that are flagged.",
												"since": "9.1.0",
												"type": "string"
											},
											"words": {
												"items": {
													"type": "string"
												},
												"markdownDescription": "List of words to be considered correct.",
												"type": "array"
											}
										},
										"required": [
											"languageId"
										],
										"type": "object"
									},
									"markdownDescription": "Additional settings for individual programming languages and locales.",
									"scope": "resource",
									"type": "array"
								},
								"loadDefaultConfiguration": {
									"default": true,
									"markdownDescription": "By default, the bundled dictionary configurations are loaded. Explicitly setting this to `false`\nwill prevent ALL default configuration from being loaded.",
									"type": "boolean"
								},
								"maxDuplicateProblems": {
									"default": 5,
									"markdownDescription": "The maximum number of times the same word can be flagged as an error in a file.",
									"type": "number"
								},
								"maxNumberOfProblems": {
									"default": 10000,
									"markdownDescription": "The maximum number of problems to report in a file.",
									"type": "number"
								},
								"minRandomLength": {
									"default": 40,
									"markdownDescription": "The minimum length of a random string to be ignored.",
									"type": "number"
								},
								"minWordLength": {
									"default": 4,
									"markdownDescription": "The minimum length of a word before checking it against a dictionary.",
									"type": "number"
								},
								"name": {
									"markdownDescription": "Optional name of configuration.",
									"type": "string"
								},
								"noSuggestDictionaries": {
									"items": {
										"anyOf": [
											{
												"markdownDescription": "This a reference to a named dictionary.\nIt is expected to match the name of a dictionary.",
												"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
												"type": "string"
											},
											{
												"markdownDescription": "This a negative reference to a named dictionary.\n\nIt is used to exclude or include a dictionary by name.\n\nThe reference starts with 1 or more `!`.\n- `!<dictionary_name>` - Used to exclude the dictionary matching `<dictionary_name>`.\n- `!!<dictionary_name>` - Used to re-include a dictionary matching `<dictionary_name>`.\n   Overrides `!<dictionary_name>`.\n- `!!!<dictionary_name>` - Used to exclude a dictionary matching `<dictionary_name>`.\n   Overrides `!!<dictionary_name>`.",
												"pattern": "^(?=!+[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
												"type": "string"
											}
										],
										"markdownDescription": "Reference to a dictionary by name.\nOne of:\n-  {@link  DictionaryRef } \n-  {@link  DictionaryNegRef }"
									},
									"markdownDescription": "Optional list of dictionaries that will not be used for suggestions.\nWords in these dictionaries are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\none of these dictionaries, it will be removed from the set of\npossible suggestions.",
									"type": "array"
								},
								"numSuggestions": {
									"default": 10,
									"markdownDescription": "Number of suggestions to make.",
									"type": "number"
								},
								"patterns": {
									"items": {
										"additionalProperties": false,
										"properties": {
											"description": {
												"markdownDescription": "Description of the pattern.",
												"type": "string"
											},
											"name": {
												"markdownDescription": "Pattern name, used as an identifier in ignoreRegExpList and includeRegExpList.\nIt is possible to redefine one of the predefined patterns to override its value.",
												"type": "string"
											},
											"pattern": {
												"anyOf": [
													{
														"type": "string"
													},
													{
														"items": {
															"type": "string"
														},
														"type": "array"
													}
												],
												"markdownDescription": "RegExp pattern or array of RegExp patterns."
											}
										},
										"required": [
											"name",
											"pattern"
										],
										"type": "object"
									},
									"markdownDescription": "Defines a list of patterns that can be used with the  {@link  ignoreRegExpList }  and\n {@link  includeRegExpList }  options.\n\nFor example:\n\n```javascript\n\"ignoreRegExpList\": [\"comments\"],\n\"patterns\": [\n  {\n    \"name\": \"comment-single-line\",\n    \"pattern\": \"/#.*/g\"\n  },\n  {\n    \"name\": \"comment-multi-line\",\n    \"pattern\": \"/(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)/g\"\n  },\n  // You can also combine multiple named patterns into one single named pattern\n  {\n    \"name\": \"comments\",\n    \"pattern\": [\"comment-single-line\", \"comment-multi-line\"]\n  }\n]\n```",
									"type": "array"
								},
								"pnpFiles": {
									"default": [
										".pnp.js",
										".pnp.cjs"
									],
									"items": {
										"type": "string"
									},
									"markdownDescription": "The PnP files to search for. Note: `.mjs` files are not currently supported.",
									"type": "array"
								},
								"suggestWords": {
									"items": {
										"type": "string"
									},
									"markdownDescription": "A list of suggested replacements for words.\nSuggested words provide a way to make preferred suggestions on word replacements.\nTo hint at a preferred change, but not to require it.\n\nFormat of `suggestWords`\n- Single suggestion (possible auto fix)\n    - `word: suggestion`\n    - `word->suggestion`\n- Multiple suggestions (not auto fixable)\n   - `word: first, second, third`\n   - `word->first, second, third`",
									"type": "array"
								},
								"suggestionNumChanges": {
									"default": 3,
									"markdownDescription": "The maximum number of changes allowed on a word to be considered a suggestions.\n\nFor example, appending an `s` onto `example` -> `examples` is considered 1 change.\n\nRange: between 1 and 5.",
									"type": "number"
								},
								"suggestionsTimeout": {
									"default": 500,
									"markdownDescription": "The maximum amount of time in milliseconds to generate suggestions for a word.",
									"type": "number"
								},
								"unknownWords": {
									"default": "report-all",
									"enum": [
										"report-all",
										"report-simple",
										"report-common-typos",
										"report-flagged"
									],
									"markdownDescription": "Controls how unknown words are handled.\n\n- `report-all` - Report all unknown words (default behavior)\n- `report-simple` - Report unknown words that have simple spelling errors, typos, and flagged words.\n- `report-common-typos` - Report unknown words that are common typos and flagged words.\n- `report-flagged` - Report unknown words that are flagged.",
									"since": "9.1.0",
									"type": "string"
								},
								"usePnP": {
									"default": false,
									"markdownDescription": "Packages managers like Yarn 2 use a `.pnp.cjs` file to assist in loading\npackages stored in the repository.\n\nWhen true, the spell checker will search up the directory structure for the existence\nof a PnP file and load it.",
									"type": "boolean"
								},
								"words": {
									"items": {
										"type": "string"
									},
									"markdownDescription": "List of words to be considered correct.",
									"type": "array"
								}
							},
							"required": [
								"filename"
							],
							"type": "object"
						},
						"markdownDescription": "Overrides are used to apply settings for specific files in your project.\n\n**Example:**\n\n```jsonc\n\"cSpell.overrides\": [\n  // Force `*.hrr` and `*.crr` files to be treated as `cpp` files:\n  {\n    \"filename\": \"**/{*.hrr,*.crr}\",\n    \"languageId\": \"cpp\"\n  },\n  // Force `dutch/**/*.txt` to be treated as Dutch (dictionary needs to be installed separately):\n  {\n    \"filename\": \"**/dutch/**/*.txt\",\n    \"language\": \"nl\"\n  }\n]\n```",
						"scope": "resource",
						"type": "array"
					},
					"cSpell.patterns": {
						"items": {
							"additionalProperties": false,
							"properties": {
								"description": {
									"markdownDescription": "Description of the pattern.",
									"type": "string"
								},
								"name": {
									"markdownDescription": "Pattern name, used as an identifier in ignoreRegExpList and includeRegExpList.\nIt is possible to redefine one of the predefined patterns to override its value.",
									"type": "string"
								},
								"pattern": {
									"anyOf": [
										{
											"type": "string"
										},
										{
											"items": {
												"type": "string"
											},
											"type": "array"
										}
									],
									"markdownDescription": "RegExp pattern or array of RegExp patterns."
								}
							},
							"required": [
								"name",
								"pattern"
							],
							"type": "object"
						},
						"markdownDescription": "Defines a list of patterns that can be used with the `#cSpell.ignoreRegExpList#` and\n`#cSpell.includeRegExpList#` options.\n\n**Example:**\n\n```jsonc\n\"cSpell.patterns\": [\n  {\n    \"name\": \"comment-single-line\",\n    \"pattern\": \"/#.*/g\"\n  },\n  {\n    \"name\": \"comment-multi-line\",\n    \"pattern\": \"/(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)/g\"\n  }\n]\n```",
						"scope": "resource",
						"type": "array"
					},
					"cSpell.unknownWords": {
						"default": "report-all",
						"enum": [
							"report-all",
							"report-simple",
							"report-common-typos",
							"report-flagged"
						],
						"markdownDescription": "Controls how unknown words are handled.\n\n- `report-all` - Report all unknown words (default behavior)\n- `report-simple` - Report unknown words that have simple spelling errors, typos, and flagged words.\n- `report-common-typos` - Report unknown words that are common typos and flagged words.\n- `report-flagged` - Report unknown words that are flagged.",
						"since": "9.1.0",
						"type": "string"
					}
				},
				"title": "CSpell",
				"type": "object"
			},
			{
				"additionalProperties": false,
				"markdownDescription": "Experimental settings that may change or be removed in the future.",
				"order": 19,
				"properties": {
					"cSpell.experimental.enableRegexpView": {
						"default": false,
						"markdownDescription": "Show Regular Expression Explorer",
						"scope": "application",
						"type": "boolean"
					},
					"cSpell.experimental.symbols": {
						"default": false,
						"markdownDescription": "Experiment with executeDocumentSymbolProvider.\nThis feature is experimental and will be removed in the future.",
						"scope": "application",
						"title": "Experiment with `executeDocumentSymbolProvider`",
						"type": "boolean"
					},
					"cSpell.reportUnknownWords": {
						"deprecated": true,
						"deprecationMessage": "Use Unknown Words settings instead.",
						"enum": [
							"all",
							"simple",
							"typos",
							"flagged"
						],
						"markdownDescription": "By default, the spell checker reports all unknown words as misspelled. This setting allows for a more relaxed spell checking, by only\nreporting unknown words as suggestions. Common spelling errors are still flagged as misspelled.\n\n- `all` - report all unknown words as misspelled\n- `simple` - report unknown words with simple fixes and the rest as suggestions\n- `typos` - report on known typo words and the rest as suggestions\n- `flagged` - report only flagged words as misspelled\n\n**Note:** This setting is deprecated. Use `#cSpell.unknownWords#` instead.",
						"scope": "language-overridable",
						"title": "Strict Spell Checking",
						"type": "string"
					}
				},
				"title": "Experimental",
				"type": "object"
			},
			{
				"additionalProperties": false,
				"markdownDescription": "Settings that control which files and folders are spell checked.",
				"order": 3,
				"properties": {
					"cSpell.allowedSchemas": {
						"deprecated": true,
						"deprecationMessage": "- Use `#cSpell.enabledSchemes#` instead.",
						"items": {
							"type": "string"
						},
						"markdownDescription": "Control which file schemes will be checked for spelling (VS Code must be restarted for this setting to take effect).\n\n\nSome schemes have special meaning like:\n- `untitled` - Used for new documents that have not yet been saved\n- `vscode-notebook-cell` - Used for validating segments of a Notebook.\n- `vscode-userdata` - Needed to spell check `.code-snippets`\n- `vscode-scm` - Needed to spell check Source Control commit messages.\n- `comment` - Used for new comment editors.",
						"scope": "window",
						"title": "Define Allowed Schemes",
						"type": "array"
					},
					"cSpell.checkOnlyEnabledFileTypes": {
						"default": true,
						"markdownDescription": "By default, the spell checker checks only enabled file types. Use `#cSpell.enabledFileTypes#`\nto turn on / off various file types.\n\nWhen this setting is `false`, all file types are checked except for the ones disabled by `#cSpell.enabledFileTypes#`.\nSee `#cSpell.enabledFileTypes#` on how to disable a file type.",
						"scope": "resource",
						"title": "Check Only Enabled File Types",
						"type": "boolean"
					},
					"cSpell.checkVSCodeSystemFiles": {
						"default": false,
						"markdownDescription": "Spell check VS Code system files.\nThese include:\n- `vscode-userdata:/**/settings.json`\n- `vscode-userdata:/**/keybindings.json`",
						"scope": "application",
						"type": "boolean"
					},
					"cSpell.enableFiletypes": {
						"deprecated": true,
						"deprecationMessage": "- Use `#cSpell.enabledFileTypes#` instead.",
						"items": {
							"markdownDescription": "Enable / Disable checking file types (languageIds).\nTo disable a language, prefix with `!` as in `!json`,\n\n\nExample:\n```\njsonc       // enable checking for jsonc\n!json       // disable checking for json\nkotlin      // enable checking for kotlin\n```",
							"pattern": "(^!*(?!\\s)[\\s\\w_.\\-]+$)|(^!*[*]$)",
							"patternErrorMessage": "Allowed characters are `a-zA-Z`, `.`, `-`, `_` and space.",
							"type": "string"
						},
						"markdownDescription": "Enable / Disable checking file types (languageIds).\n\nThese are in additional to the file types specified by `#cSpell.enabledLanguageIds#`.\nTo disable a language, prefix with `!` as in `!json`,\n\n\n**Example: individual file types**\n\n```\njsonc       // enable checking for jsonc\n!json       // disable checking for json\nkotlin      // enable checking for kotlin\n```\n\n**Example: enable all file types**\n\n```\n*           // enable checking for all file types\n!json       // except for json\n```",
						"scope": "resource",
						"title": "Enable File Types",
						"type": "array",
						"uniqueItems": true
					},
					"cSpell.enabledFileTypes": {
						"additionalProperties": {
							"type": "boolean"
						},
						"default": {
							"*": true,
							"markdown": true
						},
						"markdownDescription": "Enable / Disable checking file types (languageIds).\n\nThis setting replaces: `#cSpell.enabledLanguageIds#` and `#cSpell.enableFiletypes#`.\n\nA Value of:\n- `true` - enable checking for the file type\n- `false` - disable checking for the file type\n\nA file type of `*` is a wildcard that enables all file types.\n\n**Example: enable all file types**\n\n| File Type | Enabled | Comment |\n| --------- | ------- | ------- |\n| `*`       | `true`  | Enable all file types. |\n| `json`    | `false` | Disable checking for json files. |",
						"scope": "resource",
						"title": "Enabled File Types to Check",
						"type": "object"
					},
					"cSpell.enabledSchemes": {
						"additionalProperties": {
							"type": "boolean"
						},
						"default": {
							"comment": true,
							"file": true,
							"gist": true,
							"repo": true,
							"sftp": true,
							"untitled": true,
							"vscode-notebook-cell": true,
							"vscode-scm": true,
							"vscode-userdata": true,
							"vscode-vfs": true,
							"vsls": true
						},
						"markdownDescription": "Control which file schemes will be checked for spelling (VS Code must be restarted for this setting to take effect).\n\n\nSome schemes have special meaning like:\n- `untitled` - Used for new documents that have not yet been saved\n- `vscode-notebook-cell` - Used for validating segments of a Notebook.\n- `vscode-userdata` - Needed to spell check `.code-snippets`\n- `vscode-scm` - Needed to spell check Source Control commit messages.\n- `comment` - Used for new comment editors.",
						"scope": "window",
						"title": "Specify Allowed Schemes",
						"type": "object"
					},
					"cSpell.files": {
						"items": {
							"markdownDescription": "These are glob expressions.",
							"type": "string"
						},
						"markdownDescription": "Glob patterns of files to be checked.\nGlob patterns are relative to the `#cSpell.globRoot#` of the configuration file that defines them.",
						"scope": "resource",
						"title": "Glob patterns of files to be checked",
						"type": "array"
					},
					"cSpell.globRoot": {
						"markdownDescription": "The root to use for glob patterns found in this configuration.\nDefault: The current workspace folder.\nUse `globRoot` to define a different location. `globRoot` can be relative to the location of this configuration file.\nDefining globRoot, does not impact imported configurations.\n\nSpecial Values:\n\n- `${workspaceFolder}` - Default - globs will be relative to the current workspace folder\n- `${workspaceFolder:<name>}` - Where `<name>` is the name of the workspace folder.",
						"scope": "resource",
						"type": "string"
					},
					"cSpell.ignorePaths": {
						"default": [
							"package-lock.json",
							"node_modules",
							"vscode-extension",
							".git/{info,lfs,logs,refs,objects}/**",
							".git/{index,*refs,*HEAD}",
							".vscode",
							".vscode-insiders"
						],
						"items": {
							"markdownDescription": "Simple Glob string, the root will be globRoot.",
							"type": "string"
						},
						"markdownDescription": "Glob patterns of files to be ignored. The patterns are relative to the `#cSpell.globRoot#` of the configuration file that defines them.",
						"scope": "resource",
						"title": "Glob patterns of files to be ignored",
						"type": "array"
					},
					"cSpell.import": {
						"items": {
							"markdownDescription": "A File System Path. Relative paths are relative to the configuration file.",
							"type": "string"
						},
						"markdownDescription": "Allows this configuration to inherit configuration for one or more other files.\n\nSee [Importing / Extending Configuration](https://cspell.org/configuration/imports/) for more details.",
						"scope": "resource",
						"type": "array"
					},
					"cSpell.mergeCSpellSettings": {
						"default": true,
						"markdownDescription": "Specify if fields from `.vscode/settings.json` are passed to the spell checker.\nThis only applies when there is a CSpell configuration file in the workspace.\n\nThe purpose of this setting to help provide a consistent result compared to the\nCSpell spell checker command line tool.\n\nValues:\n- `true` - all settings will be merged based upon `#cSpell.mergeCSpellSettingsFields#`.\n- `false` - only use `.vscode/settings.json` if a CSpell configuration is not found.\n\nNote: this setting is used in conjunction with `#cSpell.mergeCSpellSettingsFields#`.",
						"scope": "resource",
						"since": "4.0.0",
						"type": "boolean"
					},
					"cSpell.mergeCSpellSettingsFields": {
						"additionalProperties": false,
						"default": {
							"allowCompoundWords": true,
							"caseSensitive": true,
							"dictionaries": true,
							"dictionaryDefinitions": true,
							"enableGlobDot": true,
							"features": true,
							"files": true,
							"flagWords": true,
							"gitignoreRoot": true,
							"globRoot": true,
							"ignorePaths": true,
							"ignoreRegExpList": true,
							"ignoreWords": true,
							"import": true,
							"includeRegExpList": true,
							"language": true,
							"languageId": true,
							"languageSettings": true,
							"loadDefaultConfiguration": true,
							"minWordLength": true,
							"noConfigSearch": true,
							"noSuggestDictionaries": true,
							"numSuggestions": true,
							"overrides": true,
							"patterns": true,
							"pnpFiles": true,
							"reporters": true,
							"suggestWords": true,
							"useGitignore": true,
							"usePnP": true,
							"userWords": true,
							"validateDirectives": true,
							"words": true
						},
						"markdownDescription": "Specify which fields from `.vscode/settings.json` are passed to the spell checker.\nThis only applies when there is a CSpell configuration file in the workspace and\n`#cSpell.mergeCSpellSettings#` is `true`.\n\nValues:\n- `{ flagWords: true, userWords: false }` - Always allow `flagWords`, but never allow `userWords`.\n\nExample:\n```jsonc\n\"cSpell.mergeCSpellSettingsFields\": { \"userWords\": false }\n```",
						"properties": {
							"allowCompoundWords": {
								"type": "boolean"
							},
							"caseSensitive": {
								"type": "boolean"
							},
							"dictionaries": {
								"type": "boolean"
							},
							"dictionaryDefinitions": {
								"type": "boolean"
							},
							"enableGlobDot": {
								"type": "boolean"
							},
							"features": {
								"type": "boolean"
							},
							"files": {
								"type": "boolean"
							},
							"flagWords": {
								"type": "boolean"
							},
							"gitignoreRoot": {
								"type": "boolean"
							},
							"globRoot": {
								"type": "boolean"
							},
							"ignorePaths": {
								"type": "boolean"
							},
							"ignoreRegExpList": {
								"type": "boolean"
							},
							"ignoreWords": {
								"type": "boolean"
							},
							"import": {
								"type": "boolean"
							},
							"includeRegExpList": {
								"type": "boolean"
							},
							"language": {
								"type": "boolean"
							},
							"languageId": {
								"type": "boolean"
							},
							"languageSettings": {
								"type": "boolean"
							},
							"loadDefaultConfiguration": {
								"type": "boolean"
							},
							"minWordLength": {
								"type": "boolean"
							},
							"noConfigSearch": {
								"type": "boolean"
							},
							"noSuggestDictionaries": {
								"type": "boolean"
							},
							"numSuggestions": {
								"type": "boolean"
							},
							"overrides": {
								"type": "boolean"
							},
							"patterns": {
								"type": "boolean"
							},
							"pnpFiles": {
								"type": "boolean"
							},
							"reporters": {
								"type": "boolean"
							},
							"suggestWords": {
								"type": "boolean"
							},
							"useGitignore": {
								"type": "boolean"
							},
							"usePnP": {
								"type": "boolean"
							},
							"userWords": {
								"type": "boolean"
							},
							"validateDirectives": {
								"type": "boolean"
							},
							"words": {
								"type": "boolean"
							}
						},
						"scope": "resource",
						"since": "4.0.0",
						"type": "object"
					},
					"cSpell.noConfigSearch": {
						"markdownDescription": "Prevents searching for local configuration when checking individual documents.",
						"scope": "resource",
						"type": "boolean"
					},
					"cSpell.spellCheckOnlyWorkspaceFiles": {
						"default": false,
						"markdownDescription": "Only spell check files that are in the currently open workspace.\nThis same effect can be achieved using the `#cSpell.files#` setting.\n\n\n```js\n\"cSpell.files\": [\"/**\"]\n```",
						"scope": "window",
						"title": "Spell Check Only Workspace Files",
						"type": "boolean"
					},
					"cSpell.useGitignore": {
						"default": true,
						"markdownDescription": "Tells the spell checker to load `.gitignore` files and skip files that match the globs in the `.gitignore` files found.",
						"scope": "resource",
						"type": "boolean"
					},
					"cSpell.usePnP": {
						"markdownDescription": "Packages managers like Yarn 2 use a `.pnp.cjs` file to assist in loading\npackages stored in the repository.\n\nWhen true, the spell checker will search up the directory structure for the existence\nof a PnP file and load it.",
						"scope": "resource",
						"type": "boolean"
					},
					"cSpell.workspaceRootPath": {
						"markdownDescription": "Define the path to the workspace root folder in a multi-root workspace.\nBy default it is the first folder.\n\nThis is used to find the `cspell.json` file for the workspace.\n\n\n**Example: use the `client` folder**\n```\n${workspaceFolder:client}\n```",
						"scope": "resource",
						"title": "Workspace Root Folder Path",
						"type": "string"
					}
				},
				"title": "Files, Folders, and Workspaces",
				"type": "object"
			},
			{
				"additionalProperties": false,
				"markdownDescription": "Settings that control dictionaries and language preferences.",
				"order": 1,
				"properties": {
					"cSpell.caseSensitive": {
						"markdownDescription": "Determines if words must match case and accent rules.\n\n- `false` - Case is ignored and accents can be missing on the entire word.\n  Incorrect accents or partially missing accents will be marked as incorrect.\n  **Note:** Some languages like Portuguese have case sensitivity turned on by default.\n  You must use `#cSpell.languageSettings#` to turn it off.\n- `true` - Case and accents are enforced by default.",
						"scope": "resource",
						"type": "boolean"
					},
					"cSpell.customDictionaries": {
						"additionalProperties": {
							"anyOf": [
								{
									"title": "Named dictionary to be enabled / disabled\n- `true` - turn on the named dictionary\n- `false` - turn off the named dictionary",
									"type": "boolean"
								},
								{
									"additionalProperties": false,
									"markdownDescription": "Define a custom dictionary to be included.",
									"properties": {
										"addWords": {
											"default": true,
											"markdownDescription": "Indicate if this custom dictionary should be used to store added words.",
											"title": "Add Words to Dictionary",
											"type": "boolean"
										},
										"description": {
											"markdownDescription": "Optional: A human readable description.",
											"title": "Description of the Dictionary",
											"type": "string"
										},
										"ignoreForbiddenWords": {
											"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
											"type": "boolean"
										},
										"name": {
											"markdownDescription": "The reference name of the dictionary.\n\n\nExample: `My Words` or `custom`\n\n\nIf the name matches a pre-defined dictionary, it will override the pre-defined dictionary.\nIf you use: `typescript` it will replace the built-in TypeScript dictionary.",
											"title": "Name of Dictionary",
											"type": "string"
										},
										"noSuggest": {
											"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
											"type": "boolean"
										},
										"path": {
											"anyOf": [
												{
													"markdownDescription": "Define the path to the dictionary text file.\n\n**Note:** if path is `undefined` the `name`d dictionary is expected to be found\nin the `dictionaryDefinitions`.\n\nFile Format: Each line in the file is considered a dictionary entry.\n\nCase is preserved while leading and trailing space is removed.\n\nThe path should be absolute, or relative to the workspace.\n\n**Example:** relative to User's folder\n\n```json\n\"path\": \"~/dictionaries/custom_dictionary.txt\"\n```\n\n**Example:** relative to the `client` folder in a multi-root workspace\n\n```json\n\"path\": \"${workspaceFolder:client}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the current workspace folder in a single-root workspace\n\n**Note:** this might not work as expected in a multi-root workspace since it is based upon the relative\nworkspace for the currently open file.\n\n```json\n\"path\": \"${workspaceFolder}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the workspace folder in a single-root workspace or the first folder in\na multi-root workspace\n\n```json\n\"path\": \"./build/custom_dictionary.txt\"\n```",
													"title": "Path to Dictionary Text File",
													"type": "string"
												},
												{
													"markdownDescription": "Define the path to the dictionary text file.\n\n**Note:** if path is `undefined` the `name`d dictionary is expected to be found\nin the `dictionaryDefinitions`.\n\nFile Format: Each line in the file is considered a dictionary entry.\n\nCase is preserved while leading and trailing space is removed.\n\nThe path should be absolute, or relative to the workspace.\n\n**Example:** relative to User's folder\n\n```json\n\"path\": \"~/dictionaries/custom_dictionary.txt\"\n```\n\n**Example:** relative to the `client` folder in a multi-root workspace\n\n```json\n\"path\": \"${workspaceFolder:client}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the current workspace folder in a single-root workspace\n\n**Note:** this might not work as expected in a multi-root workspace since it is based upon the relative\nworkspace for the currently open file.\n\n```json\n\"path\": \"${workspaceFolder}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the workspace folder in a single-root workspace or the first folder in\na multi-root workspace\n\n```json\n\"path\": \"./build/custom_dictionary.txt\"\n```",
													"type": "string"
												}
											],
											"markdownDescription": "Define the path to the dictionary text file.\n\n**Note:** if path is `undefined` the `name`d dictionary is expected to be found\nin the `dictionaryDefinitions`.\n\nFile Format: Each line in the file is considered a dictionary entry.\n\nCase is preserved while leading and trailing space is removed.\n\nThe path should be absolute, or relative to the workspace.\n\n**Example:** relative to User's folder\n\n```json\n\"path\": \"~/dictionaries/custom_dictionary.txt\"\n```\n\n**Example:** relative to the `client` folder in a multi-root workspace\n\n```json\n\"path\": \"${workspaceFolder:client}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the current workspace folder in a single-root workspace\n\n**Note:** this might not work as expected in a multi-root workspace since it is based upon the relative\nworkspace for the currently open file.\n\n```json\n\"path\": \"${workspaceFolder}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the workspace folder in a single-root workspace or the first folder in\na multi-root workspace\n\n```json\n\"path\": \"./build/custom_dictionary.txt\"\n```",
											"title": "Path to Dictionary Text File"
										},
										"scope": {
											"anyOf": [
												{
													"enum": [
														"user",
														"workspace",
														"folder"
													],
													"markdownDescription": "Specifies the scope of a dictionary.",
													"type": "string"
												},
												{
													"items": {
														"enum": [
															"user",
															"workspace",
															"folder"
														],
														"markdownDescription": "Specifies the scope of a dictionary.",
														"type": "string"
													},
													"type": "array"
												}
											],
											"markdownDescription": "Options are\n- `user` - words that apply to all projects and workspaces\n- `workspace` - words that apply to the entire workspace\n- `folder` - words that apply to only a workspace folder",
											"title": "Scope of dictionary"
										},
										"supportNonStrictSearches": {
											"default": true,
											"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
											"type": "boolean"
										}
									},
									"title": "Custom Dictionary Entry",
									"type": "object"
								}
							]
						},
						"markdownDescription": "Define custom dictionaries to be included by default.\nIf `addWords` is `true` words will be added to this dictionary.\n\n\n**Example:**\n\n```js\n\"cSpell.customDictionaries\": {\n  \"project-words\": {\n    \"name\": \"project-words\",\n    \"path\": \"${workspaceRoot}/project-words.txt\",\n    \"description\": \"Words used in this project\",\n    \"addWords\": true\n  },\n  \"custom\": true, // Enable the `custom` dictionary\n  \"internal-terms\": false // Disable the `internal-terms` dictionary\n}\n```",
						"scope": "resource",
						"title": "Custom Dictionaries",
						"type": "object"
					},
					"cSpell.dictionaries": {
						"items": {
							"type": "string"
						},
						"markdownDescription": "Optional list of dictionaries to use.\n\nEach entry should match the name of the dictionary.\n\nTo remove a dictionary from the list add `!` before the name.\ni.e. `!typescript` will turn off the dictionary with the name `typescript`.\n\n\nExample:\n\n```jsonc\n// Enable `lorem-ipsum` and disable `typescript`\n\"cSpell.dictionaries\": [\"lorem-ipsum\", \"!typescript\"]\n```",
						"scope": "resource",
						"type": "array"
					},
					"cSpell.dictionaryDefinitions": {
						"items": {
							"anyOf": [
								{
									"additionalProperties": false,
									"properties": {
										"addWords": {
											"default": true,
											"markdownDescription": "Indicate if this custom dictionary should be used to store added words.",
											"title": "Add Words to Dictionary",
											"type": "boolean"
										},
										"description": {
											"markdownDescription": "Optional: A human readable description.",
											"title": "Description of the Dictionary",
											"type": "string"
										},
										"ignoreForbiddenWords": {
											"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
											"type": "boolean"
										},
										"name": {
											"markdownDescription": "The reference name of the dictionary.\n\n\nExample: `My Words` or `custom`\n\n\nIf the name matches a pre-defined dictionary, it will override the pre-defined dictionary.\nIf you use: `typescript` it will replace the built-in TypeScript dictionary.",
											"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
											"title": "Name of Dictionary",
											"type": "string"
										},
										"noSuggest": {
											"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
											"type": "boolean"
										},
										"path": {
											"markdownDescription": "Define the path to the dictionary text file.\n\n**Note:** if path is `undefined` the `name`d dictionary is expected to be found\nin the `dictionaryDefinitions`.\n\nFile Format: Each line in the file is considered a dictionary entry.\n\nCase is preserved while leading and trailing space is removed.\n\nThe path should be absolute, or relative to the workspace.\n\n**Example:** relative to User's folder\n\n```json\n\"path\": \"~/dictionaries/custom_dictionary.txt\"\n```\n\n**Example:** relative to the `client` folder in a multi-root workspace\n\n```json\n\"path\": \"${workspaceFolder:client}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the current workspace folder in a single-root workspace\n\n**Note:** this might not work as expected in a multi-root workspace since it is based upon the relative\nworkspace for the currently open file.\n\n```json\n\"path\": \"${workspaceFolder}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the workspace folder in a single-root workspace or the first folder in\na multi-root workspace\n\n```json\n\"path\": \"./build/custom_dictionary.txt\"\n```",
											"type": "string"
										},
										"scope": {
											"anyOf": [
												{
													"enum": [
														"user",
														"workspace",
														"folder"
													],
													"markdownDescription": "Specifies the scope of a dictionary.",
													"type": "string"
												},
												{
													"items": {
														"enum": [
															"user",
															"workspace",
															"folder"
														],
														"markdownDescription": "Specifies the scope of a dictionary.",
														"type": "string"
													},
													"type": "array"
												}
											],
											"markdownDescription": "Options are\n- `user` - words that apply to all projects and workspaces\n- `workspace` - words that apply to the entire workspace\n- `folder` - words that apply to only a workspace folder",
											"title": "Scope of dictionary"
										},
										"supportNonStrictSearches": {
											"default": true,
											"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
											"type": "boolean"
										}
									},
									"required": [
										"name",
										"path"
									],
									"type": "object"
								},
								{
									"additionalProperties": false,
									"properties": {
										"description": {
											"markdownDescription": "Optional description of the contents / purpose of the dictionary.",
											"type": "string"
										},
										"ignoreForbiddenWords": {
											"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
											"type": "boolean"
										},
										"name": {
											"markdownDescription": "This is the name of a dictionary.\n\nName Format:\n- Must contain at least 1 number or letter.\n- Spaces are allowed.\n- Leading and trailing space will be removed.\n- Names ARE case-sensitive.\n- Must not contain `*`, `!`, `;`, `,`, `{`, `}`, `[`, `]`, `~`.",
											"type": "string"
										},
										"noSuggest": {
											"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
											"type": "boolean"
										},
										"path": {
											"markdownDescription": "Path to the file.",
											"type": "string"
										},
										"supportNonStrictSearches": {
											"default": true,
											"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
											"type": "boolean"
										}
									},
									"required": [
										"path",
										"name"
									],
									"type": "object"
								},
								{
									"additionalProperties": false,
									"properties": {
										"addWords": {
											"markdownDescription": "When `true`, let's the spell checker know that words can be added to this dictionary.",
											"type": "boolean"
										},
										"description": {
											"markdownDescription": "Optional description of the contents / purpose of the dictionary.",
											"type": "string"
										},
										"ignoreForbiddenWords": {
											"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
											"type": "boolean"
										},
										"name": {
											"markdownDescription": "This is the name of a dictionary.\n\nName Format:\n- Must contain at least 1 number or letter.\n- Spaces are allowed.\n- Leading and trailing space will be removed.\n- Names ARE case-sensitive.\n- Must not contain `*`, `!`, `;`, `,`, `{`, `}`, `[`, `]`, `~`.",
											"type": "string"
										},
										"noSuggest": {
											"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
											"type": "boolean"
										},
										"path": {
											"markdownDescription": "Path to custom dictionary text file.",
											"type": "string"
										},
										"scope": {
											"anyOf": [
												{
													"enum": [
														"user",
														"workspace",
														"folder"
													],
													"markdownDescription": "Specifies the scope of a dictionary.",
													"type": "string"
												},
												{
													"items": {
														"enum": [
															"user",
															"workspace",
															"folder"
														],
														"markdownDescription": "Specifies the scope of a dictionary.",
														"type": "string"
													},
													"type": "array"
												}
											],
											"markdownDescription": "Defines the scope for when words will be added to the dictionary.\n\nScope values: `user`, `workspace`, `folder`."
										},
										"supportNonStrictSearches": {
											"default": true,
											"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
											"type": "boolean"
										}
									},
									"required": [
										"path",
										"addWords",
										"name"
									],
									"type": "object"
								}
							]
						},
						"markdownDescription": "Define custom dictionaries.\nIf `addWords` is `true` words will be added to this dictionary.\n\nThis setting is subject to User/Workspace settings precedence rules: [Visual Studio Code User and Workspace Settings](https://code.visualstudio.com/docs/getstarted/settings#_settings-precedence).\n\nIt is better to use `#cSpell.customDictionaries#`\n\n**Example:**\n\n```js\n\"cSpell.dictionaryDefinitions\": [\n  {\n    \"name\": \"project-words\",\n    \"path\": \"${workspaceRoot}/project-words.txt\",\n    \"description\": \"Words used in this project\",\n    \"addWords\": true\n  }\n]\n```",
						"scope": "resource",
						"title": "Dictionary Definitions",
						"type": "array"
					},
					"cSpell.flagWords": {
						"items": {
							"type": "string"
						},
						"markdownDescription": "List of words to always be considered incorrect. Words found in `flagWords` override `words`.\n\nFormat of `flagWords`\n- single word entry - `word`\n- with suggestions - `word:suggestion` or `word->suggestion, suggestions`\n\nExample:\n```ts\n\"flagWords\": [\n  \"color: colour\",\n  \"incase: in case, encase\",\n  \"canot->cannot\",\n  \"cancelled->canceled\"\n]\n```",
						"scope": "resource",
						"type": "array"
					},
					"cSpell.ignoreWords": {
						"items": {
							"type": "string"
						},
						"markdownDescription": "A list of words to be ignored by the spell checker.",
						"scope": "resource",
						"type": "array"
					},
					"cSpell.language": {
						"default": "en",
						"markdownDescription": "Current active spelling language.\n\nExample: `en-GB` for British English\n\nExample: `en,nl` to enable both English and Dutch",
						"scope": "resource",
						"type": "string"
					},
					"cSpell.languageSettings": {
						"items": {
							"additionalProperties": false,
							"properties": {
								"allowCompoundWords": {
									"default": false,
									"markdownDescription": "True to enable compound word checking.",
									"type": "boolean"
								},
								"caseSensitive": {
									"default": false,
									"markdownDescription": "Determines if words must match case and accent rules.\n\nSee [Case Sensitivity](https://cspell.org/docs/case-sensitive/) for more details.\n\n- `false` - Case is ignored and accents can be missing on the entire word.\n  Incorrect accents or partially missing accents will be marked as incorrect.\n- `true` - Case and accents are enforced.",
									"type": "boolean"
								},
								"description": {
									"markdownDescription": "Optional description of configuration.",
									"type": "string"
								},
								"dictionaries": {
									"items": {
										"anyOf": [
											{
												"markdownDescription": "This a reference to a named dictionary.\nIt is expected to match the name of a dictionary.",
												"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
												"type": "string"
											},
											{
												"markdownDescription": "This a negative reference to a named dictionary.\n\nIt is used to exclude or include a dictionary by name.\n\nThe reference starts with 1 or more `!`.\n- `!<dictionary_name>` - Used to exclude the dictionary matching `<dictionary_name>`.\n- `!!<dictionary_name>` - Used to re-include a dictionary matching `<dictionary_name>`.\n   Overrides `!<dictionary_name>`.\n- `!!!<dictionary_name>` - Used to exclude a dictionary matching `<dictionary_name>`.\n   Overrides `!!<dictionary_name>`.",
												"pattern": "^(?=!+[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
												"type": "string"
											}
										],
										"markdownDescription": "Reference to a dictionary by name.\nOne of:\n-  {@link  DictionaryRef } \n-  {@link  DictionaryNegRef }"
									},
									"markdownDescription": "Optional list of dictionaries to use. Each entry should match the name of the dictionary.\n\nTo remove a dictionary from the list, add `!` before the name.\n\nFor example, `!typescript` will turn off the dictionary with the name `typescript`.\n\nSee the [Dictionaries](https://cspell.org/docs/dictionaries/)\nand [Custom Dictionaries](https://cspell.org/docs/dictionaries-custom/) for more details.",
									"type": "array"
								},
								"dictionaryDefinitions": {
									"items": {
										"anyOf": [
											{
												"additionalProperties": false,
												"properties": {
													"addWords": {
														"default": true,
														"markdownDescription": "Indicate if this custom dictionary should be used to store added words.",
														"title": "Add Words to Dictionary",
														"type": "boolean"
													},
													"description": {
														"markdownDescription": "Optional: A human readable description.",
														"title": "Description of the Dictionary",
														"type": "string"
													},
													"ignoreForbiddenWords": {
														"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
														"type": "boolean"
													},
													"name": {
														"markdownDescription": "The reference name of the dictionary.\n\n\nExample: `My Words` or `custom`\n\n\nIf the name matches a pre-defined dictionary, it will override the pre-defined dictionary.\nIf you use: `typescript` it will replace the built-in TypeScript dictionary.",
														"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
														"title": "Name of Dictionary",
														"type": "string"
													},
													"noSuggest": {
														"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
														"type": "boolean"
													},
													"path": {
														"markdownDescription": "Define the path to the dictionary text file.\n\n**Note:** if path is `undefined` the `name`d dictionary is expected to be found\nin the `dictionaryDefinitions`.\n\nFile Format: Each line in the file is considered a dictionary entry.\n\nCase is preserved while leading and trailing space is removed.\n\nThe path should be absolute, or relative to the workspace.\n\n**Example:** relative to User's folder\n\n```json\n\"path\": \"~/dictionaries/custom_dictionary.txt\"\n```\n\n**Example:** relative to the `client` folder in a multi-root workspace\n\n```json\n\"path\": \"${workspaceFolder:client}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the current workspace folder in a single-root workspace\n\n**Note:** this might not work as expected in a multi-root workspace since it is based upon the relative\nworkspace for the currently open file.\n\n```json\n\"path\": \"${workspaceFolder}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the workspace folder in a single-root workspace or the first folder in\na multi-root workspace\n\n```json\n\"path\": \"./build/custom_dictionary.txt\"\n```",
														"type": "string"
													},
													"scope": {
														"anyOf": [
															{
																"enum": [
																	"user",
																	"workspace",
																	"folder"
																],
																"markdownDescription": "Specifies the scope of a dictionary.",
																"type": "string"
															},
															{
																"items": {
																	"enum": [
																		"user",
																		"workspace",
																		"folder"
																	],
																	"markdownDescription": "Specifies the scope of a dictionary.",
																	"type": "string"
																},
																"type": "array"
															}
														],
														"markdownDescription": "Options are\n- `user` - words that apply to all projects and workspaces\n- `workspace` - words that apply to the entire workspace\n- `folder` - words that apply to only a workspace folder",
														"title": "Scope of dictionary"
													},
													"supportNonStrictSearches": {
														"default": true,
														"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
														"type": "boolean"
													}
												},
												"required": [
													"name",
													"path"
												],
												"type": "object"
											},
											{
												"additionalProperties": false,
												"properties": {
													"description": {
														"markdownDescription": "Optional description of the contents / purpose of the dictionary.",
														"type": "string"
													},
													"ignoreForbiddenWords": {
														"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
														"type": "boolean"
													},
													"name": {
														"markdownDescription": "This is the name of a dictionary.\n\nName Format:\n- Must contain at least 1 number or letter.\n- Spaces are allowed.\n- Leading and trailing space will be removed.\n- Names ARE case-sensitive.\n- Must not contain `*`, `!`, `;`, `,`, `{`, `}`, `[`, `]`, `~`.",
														"type": "string"
													},
													"noSuggest": {
														"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
														"type": "boolean"
													},
													"path": {
														"markdownDescription": "Path to the file.",
														"type": "string"
													},
													"supportNonStrictSearches": {
														"default": true,
														"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
														"type": "boolean"
													}
												},
												"required": [
													"path",
													"name"
												],
												"type": "object"
											},
											{
												"additionalProperties": false,
												"properties": {
													"addWords": {
														"markdownDescription": "When `true`, let's the spell checker know that words can be added to this dictionary.",
														"type": "boolean"
													},
													"description": {
														"markdownDescription": "Optional description of the contents / purpose of the dictionary.",
														"type": "string"
													},
													"ignoreForbiddenWords": {
														"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
														"type": "boolean"
													},
													"name": {
														"markdownDescription": "This is the name of a dictionary.\n\nName Format:\n- Must contain at least 1 number or letter.\n- Spaces are allowed.\n- Leading and trailing space will be removed.\n- Names ARE case-sensitive.\n- Must not contain `*`, `!`, `;`, `,`, `{`, `}`, `[`, `]`, `~`.",
														"type": "string"
													},
													"noSuggest": {
														"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
														"type": "boolean"
													},
													"path": {
														"markdownDescription": "Path to custom dictionary text file.",
														"type": "string"
													},
													"scope": {
														"anyOf": [
															{
																"enum": [
																	"user",
																	"workspace",
																	"folder"
																],
																"markdownDescription": "Specifies the scope of a dictionary.",
																"type": "string"
															},
															{
																"items": {
																	"enum": [
																		"user",
																		"workspace",
																		"folder"
																	],
																	"markdownDescription": "Specifies the scope of a dictionary.",
																	"type": "string"
																},
																"type": "array"
															}
														],
														"markdownDescription": "Defines the scope for when words will be added to the dictionary.\n\nScope values: `user`, `workspace`, `folder`."
													},
													"supportNonStrictSearches": {
														"default": true,
														"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
														"type": "boolean"
													}
												},
												"required": [
													"path",
													"addWords",
													"name"
												],
												"type": "object"
											}
										]
									},
									"markdownDescription": "Define custom dictionaries.\nIf `addWords` is `true` words will be added to this dictionary.\n\nThis setting is subject to User/Workspace settings precedence rules: [Visual Studio Code User and Workspace Settings](https://code.visualstudio.com/docs/getstarted/settings#_settings-precedence).\n\nIt is better to use `#cSpell.customDictionaries#`\n\n**Example:**\n\n```js\n\"cSpell.dictionaryDefinitions\": [\n  {\n    \"name\": \"project-words\",\n    \"path\": \"${workspaceRoot}/project-words.txt\",\n    \"description\": \"Words used in this project\",\n    \"addWords\": true\n  }\n]\n```",
									"scope": "resource",
									"title": "Dictionary Definitions",
									"type": "array"
								},
								"enabled": {
									"default": true,
									"markdownDescription": "Is the spell checker enabled.",
									"type": "boolean"
								},
								"flagWords": {
									"items": {
										"type": "string"
									},
									"markdownDescription": "List of words to always be considered incorrect. Words found in `flagWords` override `words`.\n\nFormat of `flagWords`\n- single word entry - `word`\n- with suggestions - `word:suggestion` or `word->suggestion, suggestions`\n\nExample:\n```ts\n\"flagWords\": [\n  \"color: colour\",\n  \"incase: in case, encase\",\n  \"canot->cannot\",\n  \"cancelled->canceled\"\n]\n```",
									"type": "array"
								},
								"id": {
									"markdownDescription": "Optional identifier.",
									"type": "string"
								},
								"ignoreRegExpList": {
									"items": {
										"anyOf": [
											{
												"type": "string"
											},
											{
												"markdownDescription": "This matches the name in a pattern definition.",
												"type": "string"
											},
											{
												"enum": [
													"Base64",
													"Base64MultiLine",
													"Base64SingleLine",
													"CStyleComment",
													"CStyleHexValue",
													"CSSHexValue",
													"CommitHash",
													"CommitHashLink",
													"Email",
													"EscapeCharacters",
													"HexValues",
													"href",
													"PhpHereDoc",
													"PublicKey",
													"RsaCert",
													"SshRsa",
													"SHA",
													"HashStrings",
													"SpellCheckerDisable",
													"SpellCheckerDisableBlock",
													"SpellCheckerDisableLine",
													"SpellCheckerDisableNext",
													"SpellCheckerIgnoreInDocSetting",
													"string",
													"UnicodeRef",
													"Urls",
													"UUID",
													"Everything"
												],
												"type": "string"
											}
										],
										"markdownDescription": "A PatternRef is a Pattern or PatternId."
									},
									"markdownDescription": "List of regular expression patterns or pattern names to exclude from spell checking.\n\nExample: `[\"href\"]` - to exclude html href pattern.\n\nRegular expressions use JavaScript regular expression syntax.\n\nExample: to ignore ALL-CAPS words\n\nJSON\n```json\n\"ignoreRegExpList\": [\"/\\\\b[A-Z]+\\\\b/g\"]\n```\n\nYAML\n```yaml\nignoreRegExpList:\n  - >-\n   /\\b[A-Z]+\\b/g\n```\n\nBy default, several patterns are excluded. See\n[Configuration](https://cspell.org/configuration/patterns) for more details.\n\nWhile you can create your own patterns, you can also leverage several patterns that are\n[built-in to CSpell](https://cspell.org/types/cspell-types/types/PredefinedPatterns.html).",
									"type": "array"
								},
								"ignoreWords": {
									"items": {
										"type": "string"
									},
									"markdownDescription": "List of words to be ignored. An ignored word will not show up as an error, even if it is\nalso in the `flagWords`.",
									"type": "array"
								},
								"includeRegExpList": {
									"items": {
										"anyOf": [
											{
												"type": "string"
											},
											{
												"markdownDescription": "This matches the name in a pattern definition.",
												"type": "string"
											},
											{
												"enum": [
													"Base64",
													"Base64MultiLine",
													"Base64SingleLine",
													"CStyleComment",
													"CStyleHexValue",
													"CSSHexValue",
													"CommitHash",
													"CommitHashLink",
													"Email",
													"EscapeCharacters",
													"HexValues",
													"href",
													"PhpHereDoc",
													"PublicKey",
													"RsaCert",
													"SshRsa",
													"SHA",
													"HashStrings",
													"SpellCheckerDisable",
													"SpellCheckerDisableBlock",
													"SpellCheckerDisableLine",
													"SpellCheckerDisableNext",
													"SpellCheckerIgnoreInDocSetting",
													"string",
													"UnicodeRef",
													"Urls",
													"UUID",
													"Everything"
												],
												"type": "string"
											}
										],
										"markdownDescription": "A PatternRef is a Pattern or PatternId."
									},
									"markdownDescription": "List of regular expression patterns or defined pattern names to match for spell checking.\n\nIf this property is defined, only text matching the included patterns will be checked.\n\nWhile you can create your own patterns, you can also leverage several patterns that are\n[built-in to CSpell](https://cspell.org/types/cspell-types/types/PredefinedPatterns.html).",
									"type": "array"
								},
								"languageId": {
									"anyOf": [
										{
											"markdownDescription": "A file type:\n- `*` - will match ALL file types.\n- `typescript`, `cpp`, `json`, etc.",
											"pattern": "^(!?[-\\w_\\s]+)|(\\*)$",
											"type": "string"
										},
										{
											"markdownDescription": "A single string with a comma separated list of file types:\n- `typescript,cpp`\n- `json,jsonc,yaml`\n- etc.",
											"pattern": "^([-\\w_\\s]+)(,[-\\w_\\s]+)*$",
											"type": "string"
										},
										{
											"markdownDescription": "A Negative File Type used to exclude files of that type.\n- `!typescript` - will exclude typescript files.\n- `!cpp,!json` - will exclude cpp and json files.\n- `!typescript,javascript` - will exclude typescript files and include javascript files.",
											"pattern": "^(![-\\w_\\s]+)(,!?[-\\w_\\s]+)*$",
											"type": "string"
										},
										{
											"items": {
												"anyOf": [
													{
														"markdownDescription": "A file type:\n- `*` - will match ALL file types.\n- `typescript`, `cpp`, `json`, etc.",
														"pattern": "^(!?[-\\w_\\s]+)|(\\*)$",
														"type": "string"
													},
													{
														"markdownDescription": "A single string with a comma separated list of file types:\n- `typescript,cpp`\n- `json,jsonc,yaml`\n- etc.",
														"pattern": "^([-\\w_\\s]+)(,[-\\w_\\s]+)*$",
														"type": "string"
													},
													{
														"markdownDescription": "A Negative File Type used to exclude files of that type.\n- `!typescript` - will exclude typescript files.\n- `!cpp,!json` - will exclude cpp and json files.\n- `!typescript,javascript` - will exclude typescript files and include javascript files.",
														"pattern": "^(![-\\w_\\s]+)(,!?[-\\w_\\s]+)*$",
														"type": "string"
													}
												]
											},
											"type": "array"
										}
									],
									"markdownDescription": "The language id.  Ex: `typescript`, `html`, or `php`.  `*` -- will match all languages."
								},
								"locale": {
									"anyOf": [
										{
											"markdownDescription": "This is a written language locale like: `en`, `en-GB`, `fr`, `es`, `de` or `en,fr` for both English and French",
											"type": "string"
										},
										{
											"items": {
												"markdownDescription": "This is a written language locale like: `en`, `en-GB`, `fr`, `es`, `de` or `en,fr` for both English and French",
												"type": "string"
											},
											"type": "array"
										}
									],
									"markdownDescription": "The locale filter, matches against the language. This can be a comma separated list. `*` will match all locales."
								},
								"name": {
									"markdownDescription": "Optional name of configuration.",
									"type": "string"
								},
								"noSuggestDictionaries": {
									"items": {
										"anyOf": [
											{
												"markdownDescription": "This a reference to a named dictionary.\nIt is expected to match the name of a dictionary.",
												"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
												"type": "string"
											},
											{
												"markdownDescription": "This a negative reference to a named dictionary.\n\nIt is used to exclude or include a dictionary by name.\n\nThe reference starts with 1 or more `!`.\n- `!<dictionary_name>` - Used to exclude the dictionary matching `<dictionary_name>`.\n- `!!<dictionary_name>` - Used to re-include a dictionary matching `<dictionary_name>`.\n   Overrides `!<dictionary_name>`.\n- `!!!<dictionary_name>` - Used to exclude a dictionary matching `<dictionary_name>`.\n   Overrides `!!<dictionary_name>`.",
												"pattern": "^(?=!+[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
												"type": "string"
											}
										],
										"markdownDescription": "Reference to a dictionary by name.\nOne of:\n-  {@link  DictionaryRef } \n-  {@link  DictionaryNegRef }"
									},
									"markdownDescription": "Optional list of dictionaries that will not be used for suggestions.\nWords in these dictionaries are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\none of these dictionaries, it will be removed from the set of\npossible suggestions.",
									"type": "array"
								},
								"patterns": {
									"items": {
										"additionalProperties": false,
										"properties": {
											"description": {
												"markdownDescription": "Description of the pattern.",
												"type": "string"
											},
											"name": {
												"markdownDescription": "Pattern name, used as an identifier in ignoreRegExpList and includeRegExpList.\nIt is possible to redefine one of the predefined patterns to override its value.",
												"type": "string"
											},
											"pattern": {
												"anyOf": [
													{
														"type": "string"
													},
													{
														"items": {
															"type": "string"
														},
														"type": "array"
													}
												],
												"markdownDescription": "RegExp pattern or array of RegExp patterns."
											}
										},
										"required": [
											"name",
											"pattern"
										],
										"type": "object"
									},
									"markdownDescription": "Defines a list of patterns that can be used with the  {@link  ignoreRegExpList }  and\n {@link  includeRegExpList }  options.\n\nFor example:\n\n```javascript\n\"ignoreRegExpList\": [\"comments\"],\n\"patterns\": [\n  {\n    \"name\": \"comment-single-line\",\n    \"pattern\": \"/#.*/g\"\n  },\n  {\n    \"name\": \"comment-multi-line\",\n    \"pattern\": \"/(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)/g\"\n  },\n  // You can also combine multiple named patterns into one single named pattern\n  {\n    \"name\": \"comments\",\n    \"pattern\": [\"comment-single-line\", \"comment-multi-line\"]\n  }\n]\n```",
									"type": "array"
								},
								"suggestWords": {
									"items": {
										"type": "string"
									},
									"markdownDescription": "A list of suggested replacements for words.\nSuggested words provide a way to make preferred suggestions on word replacements.\nTo hint at a preferred change, but not to require it.\n\nFormat of `suggestWords`\n- Single suggestion (possible auto fix)\n    - `word: suggestion`\n    - `word->suggestion`\n- Multiple suggestions (not auto fixable)\n   - `word: first, second, third`\n   - `word->first, second, third`",
									"type": "array"
								},
								"unknownWords": {
									"default": "report-all",
									"enum": [
										"report-all",
										"report-simple",
										"report-common-typos",
										"report-flagged"
									],
									"markdownDescription": "Controls how unknown words are handled.\n\n- `report-all` - Report all unknown words (default behavior)\n- `report-simple` - Report unknown words that have simple spelling errors, typos, and flagged words.\n- `report-common-typos` - Report unknown words that are common typos and flagged words.\n- `report-flagged` - Report unknown words that are flagged.",
									"since": "9.1.0",
									"type": "string"
								},
								"words": {
									"items": {
										"type": "string"
									},
									"markdownDescription": "List of words to be considered correct.",
									"type": "array"
								}
							},
							"required": [
								"languageId"
							],
							"type": "object"
						},
						"markdownDescription": "Additional settings for individual programming languages and locales.",
						"scope": "resource",
						"type": "array"
					},
					"cSpell.noSuggestDictionaries": {
						"items": {
							"type": "string"
						},
						"markdownDescription": "Optional list of dictionaries that will not be used for suggestions.\nWords in these dictionaries are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\none of these dictionaries, it will be removed from the set of\npossible suggestions.",
						"scope": "resource",
						"type": "array"
					},
					"cSpell.suggestWords": {
						"items": {
							"type": "string"
						},
						"markdownDescription": "A list of suggested replacements for words.\nSuggested words provide a way to make preferred suggestions on word replacements.\nTo hint at a preferred change, but not to require it.\n\nFormat of `suggestWords`\n- Single suggestion (possible auto fix)\n    - `word: suggestion`\n    - `word->suggestion`\n- Multiple suggestions (not auto fixable)\n   - `word: first, second, third`\n   - `word->first, second, third`",
						"type": "array"
					},
					"cSpell.useLocallyInstalledCSpellDictionaries": {
						"default": true,
						"markdownDescription": "Search for `@cspell/cspell-bundled-dicts` in the workspace folder and use it if found.",
						"scope": "resource",
						"since": "4.0.0",
						"type": "boolean"
					},
					"cSpell.userWords": {
						"items": {
							"type": "string"
						},
						"markdownDescription": "Words to add to global dictionary -- should only be in the user config file.",
						"scope": "resource",
						"type": "array"
					},
					"cSpell.words": {
						"items": {
							"type": "string"
						},
						"markdownDescription": "List of words to be considered correct.",
						"scope": "resource",
						"type": "array"
					}
				},
				"title": "Languages and Dictionaries",
				"type": "object"
			},
			{
				"additionalProperties": false,
				"markdownDescription": "Settings that control the appearance of the spell checker.",
				"order": 6,
				"properties": {
					"cSpell.dark": {
						"additionalProperties": false,
						"markdownDescription": "Decoration for dark themes.\n\nSee:\n- `#cSpell.overviewRulerColor#`\n- `#cSpell.textDecoration#`",
						"properties": {
							"overviewRulerColor": {
								"default": "#348feb80",
								"markdownDescription": "The CSS color used to show issues in the ruler.\n\nDepends upon `#cSpell.useCustomDecorations#`.\nDisable the ruler by setting `#cSpell.showInRuler#` to `false`.\n\nSee:\n- [`<color>` CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value)\n- [CSS Colors, W3C Schools](https://www.w3schools.com/cssref/css_colors.php)\n- Hex colors\n\nExamples:\n- `green`\n- `DarkYellow`\n- `#ffff0080` - semi-transparent yellow.\n- `rgb(255 153 0 / 80%)`",
								"scope": "application",
								"since": "4.0.0",
								"type": "string"
							},
							"textDecoration": {
								"markdownDescription": "The CSS Style used to decorate spelling issues. Depends upon `#cSpell.useCustomDecorations#`.\n\nThis setting is used to manually configure the text decoration. If it is not set, the following settings are used:\n- `#cSpell.textDecorationLine#` to pick the line type\n- `#cSpell.textDecorationStyle#` to pick the style\n- `#cSpell.textDecorationColor#` to set the color\n- `#cSpell.textDecorationThickness#` to set the thickness.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n\nFormat:  `<line> [style] <color> [thickness]`\n\n- line - `underline`, `overline`, see: [text-decoration-line, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-line)\n- style - `solid`, `wavy`, `dotted`, see: [text-decoration-style, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-style)\n- color - see: [text-decoration-color, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-color)\n- thickness - see: [text-decoration-thickness, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-thickness)\n\nExamples:\n- `underline green`\n- `underline dotted yellow 0.2rem`\n- `underline wavy #ff0c 1.5px` - Wavy underline with 1.5px thickness in semi-transparent yellow.\n\nTo change the ruler color, use `#cSpell.overviewRulerColor#`.",
								"scope": "application",
								"since": "4.0.0",
								"type": "string"
							},
							"textDecorationColor": {
								"default": "#348feb",
								"markdownDescription": "The decoration color for normal spelling issues.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- color - see: [text-decoration-color, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-color)\n\nTo change the ruler color, use `#cSpell.overviewRulerColor#`.\n\nExamples:\n- `green`\n- `yellow`\n- `#ff0c`",
								"scope": "application",
								"since": "4.0.0",
								"type": "string"
							},
							"textDecorationColorFlagged": {
								"default": "#f44",
								"markdownDescription": "The decoration color for flagged issues.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- color - see: [text-decoration-color, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-color)\n\nExamples:\n- `green`\n- `yellow`\n- `#ff0c`",
								"scope": "application",
								"since": "4.0.0",
								"type": "string"
							},
							"textDecorationColorSuggestion": {
								"default": "#cf88",
								"markdownDescription": "The decoration color for spelling suggestions.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- color - see: [text-decoration-color, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-color)\n\nCommon Format: `#RGBA` or `#RRGGBBAA` or `#RGB` or `#RRGGBB`\n\nExamples:\n- `green`\n- `yellow`\n- `#ff0c`",
								"scope": "application",
								"since": "4.0.2",
								"type": "string"
							},
							"textDecorationLine": {
								"default": "underline",
								"enum": [
									"underline",
									"overline",
									"line-through"
								],
								"markdownDescription": "The CSS line type used to decorate issues.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- line - `underline`, `overline`, see: [text-decoration-line, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-line)",
								"scope": "application",
								"since": "4.0.0",
								"type": "string"
							},
							"textDecorationStyle": {
								"default": "dashed",
								"enum": [
									"solid",
									"wavy",
									"dotted",
									"dashed",
									"double"
								],
								"markdownDescription": "The CSS line style used to decorate issues.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- style - `solid`, `wavy`, `dotted`, see: [text-decoration-style, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-style)",
								"scope": "application",
								"since": "4.0.0",
								"type": "string"
							},
							"textDecorationThickness": {
								"default": "auto",
								"markdownDescription": "The CSS line thickness used to decorate issues.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- thickness - see: [text-decoration-thickness, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-thickness)\n\nExamples:\n- `auto`\n- `from-font`\n- `0.2rem`\n- `1.5px`\n- `10%`",
								"scope": "application",
								"since": "4.0.0",
								"type": "string"
							}
						},
						"scope": "application",
						"since": "4.0.0",
						"type": "object"
					},
					"cSpell.doNotUseCustomDecorationForScheme": {
						"additionalProperties": {
							"type": "boolean"
						},
						"default": {
							"vscode-scm": true
						},
						"markdownDescription": "Use the VS Code Diagnostic Collection to render spelling issues.\n\nWith some edit boxes, like the source control message box, the custom decorations do not show up.\nThis setting allows the use of the VS Code Diagnostic Collection to render spelling issues.",
						"scope": "application",
						"since": "4.0.0",
						"title": "Use VS Code to Render Spelling Issues",
						"type": "object"
					},
					"cSpell.light": {
						"additionalProperties": false,
						"markdownDescription": "Decoration for light themes.\n\nSee:\n- `#cSpell.overviewRulerColor#`\n- `#cSpell.textDecoration#`",
						"properties": {
							"overviewRulerColor": {
								"default": "#348feb80",
								"markdownDescription": "The CSS color used to show issues in the ruler.\n\nDepends upon `#cSpell.useCustomDecorations#`.\nDisable the ruler by setting `#cSpell.showInRuler#` to `false`.\n\nSee:\n- [`<color>` CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value)\n- [CSS Colors, W3C Schools](https://www.w3schools.com/cssref/css_colors.php)\n- Hex colors\n\nExamples:\n- `green`\n- `DarkYellow`\n- `#ffff0080` - semi-transparent yellow.\n- `rgb(255 153 0 / 80%)`",
								"scope": "application",
								"since": "4.0.0",
								"type": "string"
							},
							"textDecoration": {
								"markdownDescription": "The CSS Style used to decorate spelling issues. Depends upon `#cSpell.useCustomDecorations#`.\n\nThis setting is used to manually configure the text decoration. If it is not set, the following settings are used:\n- `#cSpell.textDecorationLine#` to pick the line type\n- `#cSpell.textDecorationStyle#` to pick the style\n- `#cSpell.textDecorationColor#` to set the color\n- `#cSpell.textDecorationThickness#` to set the thickness.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n\nFormat:  `<line> [style] <color> [thickness]`\n\n- line - `underline`, `overline`, see: [text-decoration-line, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-line)\n- style - `solid`, `wavy`, `dotted`, see: [text-decoration-style, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-style)\n- color - see: [text-decoration-color, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-color)\n- thickness - see: [text-decoration-thickness, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-thickness)\n\nExamples:\n- `underline green`\n- `underline dotted yellow 0.2rem`\n- `underline wavy #ff0c 1.5px` - Wavy underline with 1.5px thickness in semi-transparent yellow.\n\nTo change the ruler color, use `#cSpell.overviewRulerColor#`.",
								"scope": "application",
								"since": "4.0.0",
								"type": "string"
							},
							"textDecorationColor": {
								"default": "#348feb",
								"markdownDescription": "The decoration color for normal spelling issues.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- color - see: [text-decoration-color, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-color)\n\nTo change the ruler color, use `#cSpell.overviewRulerColor#`.\n\nExamples:\n- `green`\n- `yellow`\n- `#ff0c`",
								"scope": "application",
								"since": "4.0.0",
								"type": "string"
							},
							"textDecorationColorFlagged": {
								"default": "#f44",
								"markdownDescription": "The decoration color for flagged issues.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- color - see: [text-decoration-color, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-color)\n\nExamples:\n- `green`\n- `yellow`\n- `#ff0c`",
								"scope": "application",
								"since": "4.0.0",
								"type": "string"
							},
							"textDecorationColorSuggestion": {
								"default": "#cf88",
								"markdownDescription": "The decoration color for spelling suggestions.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- color - see: [text-decoration-color, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-color)\n\nCommon Format: `#RGBA` or `#RRGGBBAA` or `#RGB` or `#RRGGBB`\n\nExamples:\n- `green`\n- `yellow`\n- `#ff0c`",
								"scope": "application",
								"since": "4.0.2",
								"type": "string"
							},
							"textDecorationLine": {
								"default": "underline",
								"enum": [
									"underline",
									"overline",
									"line-through"
								],
								"markdownDescription": "The CSS line type used to decorate issues.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- line - `underline`, `overline`, see: [text-decoration-line, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-line)",
								"scope": "application",
								"since": "4.0.0",
								"type": "string"
							},
							"textDecorationStyle": {
								"default": "dashed",
								"enum": [
									"solid",
									"wavy",
									"dotted",
									"dashed",
									"double"
								],
								"markdownDescription": "The CSS line style used to decorate issues.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- style - `solid`, `wavy`, `dotted`, see: [text-decoration-style, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-style)",
								"scope": "application",
								"since": "4.0.0",
								"type": "string"
							},
							"textDecorationThickness": {
								"default": "auto",
								"markdownDescription": "The CSS line thickness used to decorate issues.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- thickness - see: [text-decoration-thickness, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-thickness)\n\nExamples:\n- `auto`\n- `from-font`\n- `0.2rem`\n- `1.5px`\n- `10%`",
								"scope": "application",
								"since": "4.0.0",
								"type": "string"
							}
						},
						"scope": "application",
						"since": "4.0.0",
						"type": "object"
					},
					"cSpell.overviewRulerColor": {
						"default": "#348feb80",
						"markdownDescription": "The CSS color used to show issues in the ruler.\n\nDepends upon `#cSpell.useCustomDecorations#`.\nDisable the ruler by setting `#cSpell.showInRuler#` to `false`.\n\nSee:\n- [`<color>` CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value)\n- [CSS Colors, W3C Schools](https://www.w3schools.com/cssref/css_colors.php)\n- Hex colors\n\nExamples:\n- `green`\n- `DarkYellow`\n- `#ffff0080` - semi-transparent yellow.\n- `rgb(255 153 0 / 80%)`",
						"scope": "application",
						"since": "4.0.0",
						"type": "string"
					},
					"cSpell.showInRuler": {
						"default": true,
						"markdownDescription": "Show spelling issues in the editor ruler.\n\nNote: This setting is only used when `#cSpell.useCustomDecorations#` is `true`.\n\nNote: To set the color of the ruler, use `#cSpell.overviewRulerColor#`.",
						"scope": "application",
						"since": "4.0.35",
						"type": "boolean"
					},
					"cSpell.textDecoration": {
						"markdownDescription": "The CSS Style used to decorate spelling issues. Depends upon `#cSpell.useCustomDecorations#`.\n\nThis setting is used to manually configure the text decoration. If it is not set, the following settings are used:\n- `#cSpell.textDecorationLine#` to pick the line type\n- `#cSpell.textDecorationStyle#` to pick the style\n- `#cSpell.textDecorationColor#` to set the color\n- `#cSpell.textDecorationThickness#` to set the thickness.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n\nFormat:  `<line> [style] <color> [thickness]`\n\n- line - `underline`, `overline`, see: [text-decoration-line, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-line)\n- style - `solid`, `wavy`, `dotted`, see: [text-decoration-style, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-style)\n- color - see: [text-decoration-color, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-color)\n- thickness - see: [text-decoration-thickness, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-thickness)\n\nExamples:\n- `underline green`\n- `underline dotted yellow 0.2rem`\n- `underline wavy #ff0c 1.5px` - Wavy underline with 1.5px thickness in semi-transparent yellow.\n\nTo change the ruler color, use `#cSpell.overviewRulerColor#`.",
						"scope": "application",
						"since": "4.0.0",
						"type": "string"
					},
					"cSpell.textDecorationColor": {
						"default": "#348feb",
						"markdownDescription": "The decoration color for normal spelling issues.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- color - see: [text-decoration-color, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-color)\n\nTo change the ruler color, use `#cSpell.overviewRulerColor#`.\n\nExamples:\n- `green`\n- `yellow`\n- `#ff0c`",
						"scope": "application",
						"since": "4.0.0",
						"type": "string"
					},
					"cSpell.textDecorationColorFlagged": {
						"default": "#f44",
						"markdownDescription": "The decoration color for flagged issues.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- color - see: [text-decoration-color, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-color)\n\nExamples:\n- `green`\n- `yellow`\n- `#ff0c`",
						"scope": "application",
						"since": "4.0.0",
						"type": "string"
					},
					"cSpell.textDecorationColorSuggestion": {
						"default": "#cf88",
						"markdownDescription": "The decoration color for spelling suggestions.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- color - see: [text-decoration-color, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-color)\n\nCommon Format: `#RGBA` or `#RRGGBBAA` or `#RGB` or `#RRGGBB`\n\nExamples:\n- `green`\n- `yellow`\n- `#ff0c`",
						"scope": "application",
						"since": "4.0.2",
						"type": "string"
					},
					"cSpell.textDecorationLine": {
						"default": "underline",
						"enum": [
							"underline",
							"overline",
							"line-through"
						],
						"markdownDescription": "The CSS line type used to decorate issues.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- line - `underline`, `overline`, see: [text-decoration-line, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-line)",
						"scope": "application",
						"since": "4.0.0",
						"type": "string"
					},
					"cSpell.textDecorationStyle": {
						"default": "dashed",
						"enum": [
							"solid",
							"wavy",
							"dotted",
							"dashed",
							"double"
						],
						"markdownDescription": "The CSS line style used to decorate issues.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- style - `solid`, `wavy`, `dotted`, see: [text-decoration-style, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-style)",
						"scope": "application",
						"since": "4.0.0",
						"type": "string"
					},
					"cSpell.textDecorationThickness": {
						"default": "auto",
						"markdownDescription": "The CSS line thickness used to decorate issues.\n\nSee: [text-decoration - CSS: Cascading Style Sheets, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration)\n- thickness - see: [text-decoration-thickness, MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-thickness)\n\nExamples:\n- `auto`\n- `from-font`\n- `0.2rem`\n- `1.5px`\n- `10%`",
						"scope": "application",
						"since": "4.0.0",
						"type": "string"
					},
					"cSpell.useCustomDecorations": {
						"default": false,
						"markdownDescription": "Draw custom decorations on Spelling Issues.\n- `true` - Use custom decorations. - VS Code Diagnostic Severity Levels are not used.\n- `false` - Use the VS Code Diagnostic Collection to render spelling issues.\n\nNote: This setting overrides the VS Code Diagnostics setting: `#cSpell.diagnosticLevel#`.",
						"scope": "application",
						"since": "4.0.0",
						"type": "boolean"
					}
				},
				"title": "Appearance",
				"type": "object"
			},
			{
				"additionalProperties": false,
				"markdownDescription": "Legacy settings that have been deprecated or are not commonly used.",
				"order": 20,
				"properties": {
					"cSpell.allowCompoundWords": {
						"default": false,
						"markdownDescription": "Enable / Disable allowing word compounds.\n- `true` means `arraylength` would be ok\n- `false` means it would not pass.\n\nNote: this can also cause many misspelled words to seem correct.",
						"scope": "resource",
						"type": "boolean"
					},
					"cSpell.customFolderDictionaries": {
						"deprecated": true,
						"deprecationMessage": "- Use `#cSpell.customDictionaries#` instead.",
						"items": {
							"anyOf": [
								{
									"additionalProperties": false,
									"properties": {
										"addWords": {
											"default": true,
											"markdownDescription": "Indicate if this custom dictionary should be used to store added words.",
											"title": "Add Words to Dictionary",
											"type": "boolean"
										},
										"description": {
											"markdownDescription": "Optional: A human readable description.",
											"title": "Description of the Dictionary",
											"type": "string"
										},
										"name": {
											"markdownDescription": "The reference name of the dictionary.\n\n\nExample: `My Words` or `custom`\n\n\nIf the name matches a pre-defined dictionary, it will override the pre-defined dictionary.\nIf you use: `typescript` it will replace the built-in TypeScript dictionary.",
											"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
											"title": "Name of Dictionary",
											"type": "string"
										},
										"noSuggest": {
											"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
											"type": "boolean"
										},
										"path": {
											"markdownDescription": "Define the path to the dictionary text file.\n\n**Note:** if path is `undefined` the `name`d dictionary is expected to be found\nin the `dictionaryDefinitions`.\n\nFile Format: Each line in the file is considered a dictionary entry.\n\nCase is preserved while leading and trailing space is removed.\n\nThe path should be absolute, or relative to the workspace.\n\n**Example:** relative to User's folder\n\n```json\n\"path\": \"~/dictionaries/custom_dictionary.txt\"\n```\n\n**Example:** relative to the `client` folder in a multi-root workspace\n\n```json\n\"path\": \"${workspaceFolder:client}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the current workspace folder in a single-root workspace\n\n**Note:** this might not work as expected in a multi-root workspace since it is based upon the relative\nworkspace for the currently open file.\n\n```json\n\"path\": \"${workspaceFolder}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the workspace folder in a single-root workspace or the first folder in\na multi-root workspace\n\n```json\n\"path\": \"./build/custom_dictionary.txt\"\n```",
											"title": "Path to Dictionary Text File",
											"type": "string"
										},
										"scope": {
											"anyOf": [
												{
													"enum": [
														"user",
														"workspace",
														"folder"
													],
													"markdownDescription": "Specifies the scope of a dictionary.",
													"type": "string"
												},
												{
													"items": {
														"enum": [
															"user",
															"workspace",
															"folder"
														],
														"markdownDescription": "Specifies the scope of a dictionary.",
														"type": "string"
													},
													"type": "array"
												}
											],
											"markdownDescription": "Options are\n- `user` - words that apply to all projects and workspaces\n- `workspace` - words that apply to the entire workspace\n- `folder` - words that apply to only a workspace folder",
											"title": "Scope of dictionary"
										}
									},
									"required": [
										"name"
									],
									"type": "object"
								},
								{
									"additionalProperties": false,
									"properties": {
										"addWords": {
											"default": true,
											"markdownDescription": "Indicate if this custom dictionary should be used to store added words.",
											"title": "Add Words to Dictionary",
											"type": "boolean"
										},
										"description": {
											"markdownDescription": "Optional: A human readable description.",
											"title": "Description of the Dictionary",
											"type": "string"
										},
										"ignoreForbiddenWords": {
											"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
											"type": "boolean"
										},
										"name": {
											"markdownDescription": "The reference name of the dictionary.\n\n\nExample: `My Words` or `custom`\n\n\nIf the name matches a pre-defined dictionary, it will override the pre-defined dictionary.\nIf you use: `typescript` it will replace the built-in TypeScript dictionary.",
											"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
											"title": "Name of Dictionary",
											"type": "string"
										},
										"noSuggest": {
											"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
											"type": "boolean"
										},
										"path": {
											"markdownDescription": "Define the path to the dictionary text file.\n\n**Note:** if path is `undefined` the `name`d dictionary is expected to be found\nin the `dictionaryDefinitions`.\n\nFile Format: Each line in the file is considered a dictionary entry.\n\nCase is preserved while leading and trailing space is removed.\n\nThe path should be absolute, or relative to the workspace.\n\n**Example:** relative to User's folder\n\n```json\n\"path\": \"~/dictionaries/custom_dictionary.txt\"\n```\n\n**Example:** relative to the `client` folder in a multi-root workspace\n\n```json\n\"path\": \"${workspaceFolder:client}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the current workspace folder in a single-root workspace\n\n**Note:** this might not work as expected in a multi-root workspace since it is based upon the relative\nworkspace for the currently open file.\n\n```json\n\"path\": \"${workspaceFolder}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the workspace folder in a single-root workspace or the first folder in\na multi-root workspace\n\n```json\n\"path\": \"./build/custom_dictionary.txt\"\n```",
											"type": "string"
										},
										"scope": {
											"anyOf": [
												{
													"enum": [
														"user",
														"workspace",
														"folder"
													],
													"markdownDescription": "Specifies the scope of a dictionary.",
													"type": "string"
												},
												{
													"items": {
														"enum": [
															"user",
															"workspace",
															"folder"
														],
														"markdownDescription": "Specifies the scope of a dictionary.",
														"type": "string"
													},
													"type": "array"
												}
											],
											"markdownDescription": "Options are\n- `user` - words that apply to all projects and workspaces\n- `workspace` - words that apply to the entire workspace\n- `folder` - words that apply to only a workspace folder",
											"title": "Scope of dictionary"
										},
										"supportNonStrictSearches": {
											"default": true,
											"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
											"type": "boolean"
										}
									},
									"required": [
										"name",
										"path"
									],
									"type": "object"
								},
								{
									"markdownDescription": "This is the name of a dictionary.\n\nName Format:\n- Must contain at least 1 number or letter.\n- Spaces are allowed.\n- Leading and trailing space will be removed.\n- Names ARE case-sensitive.\n- Must not contain `*`, `!`, `;`, `,`, `{`, `}`, `[`, `]`, `~`.",
									"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
									"type": "string"
								}
							]
						},
						"markdownDescription": "Define custom dictionaries to be included by default for the folder.\nIf `addWords` is `true` words will be added to this dictionary.",
						"scope": "resource",
						"title": "Custom Folder Dictionaries",
						"type": "array"
					},
					"cSpell.customUserDictionaries": {
						"deprecated": true,
						"deprecationMessage": "- Use `#cSpell.customDictionaries#` instead.",
						"items": {
							"anyOf": [
								{
									"additionalProperties": false,
									"properties": {
										"addWords": {
											"default": true,
											"markdownDescription": "Indicate if this custom dictionary should be used to store added words.",
											"title": "Add Words to Dictionary",
											"type": "boolean"
										},
										"description": {
											"markdownDescription": "Optional: A human readable description.",
											"title": "Description of the Dictionary",
											"type": "string"
										},
										"name": {
											"markdownDescription": "The reference name of the dictionary.\n\n\nExample: `My Words` or `custom`\n\n\nIf the name matches a pre-defined dictionary, it will override the pre-defined dictionary.\nIf you use: `typescript` it will replace the built-in TypeScript dictionary.",
											"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
											"title": "Name of Dictionary",
											"type": "string"
										},
										"noSuggest": {
											"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
											"type": "boolean"
										},
										"path": {
											"markdownDescription": "Define the path to the dictionary text file.\n\n**Note:** if path is `undefined` the `name`d dictionary is expected to be found\nin the `dictionaryDefinitions`.\n\nFile Format: Each line in the file is considered a dictionary entry.\n\nCase is preserved while leading and trailing space is removed.\n\nThe path should be absolute, or relative to the workspace.\n\n**Example:** relative to User's folder\n\n```json\n\"path\": \"~/dictionaries/custom_dictionary.txt\"\n```\n\n**Example:** relative to the `client` folder in a multi-root workspace\n\n```json\n\"path\": \"${workspaceFolder:client}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the current workspace folder in a single-root workspace\n\n**Note:** this might not work as expected in a multi-root workspace since it is based upon the relative\nworkspace for the currently open file.\n\n```json\n\"path\": \"${workspaceFolder}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the workspace folder in a single-root workspace or the first folder in\na multi-root workspace\n\n```json\n\"path\": \"./build/custom_dictionary.txt\"\n```",
											"title": "Path to Dictionary Text File",
											"type": "string"
										},
										"scope": {
											"anyOf": [
												{
													"enum": [
														"user",
														"workspace",
														"folder"
													],
													"markdownDescription": "Specifies the scope of a dictionary.",
													"type": "string"
												},
												{
													"items": {
														"enum": [
															"user",
															"workspace",
															"folder"
														],
														"markdownDescription": "Specifies the scope of a dictionary.",
														"type": "string"
													},
													"type": "array"
												}
											],
											"markdownDescription": "Options are\n- `user` - words that apply to all projects and workspaces\n- `workspace` - words that apply to the entire workspace\n- `folder` - words that apply to only a workspace folder",
											"title": "Scope of dictionary"
										}
									},
									"required": [
										"name"
									],
									"type": "object"
								},
								{
									"additionalProperties": false,
									"properties": {
										"addWords": {
											"default": true,
											"markdownDescription": "Indicate if this custom dictionary should be used to store added words.",
											"title": "Add Words to Dictionary",
											"type": "boolean"
										},
										"description": {
											"markdownDescription": "Optional: A human readable description.",
											"title": "Description of the Dictionary",
											"type": "string"
										},
										"ignoreForbiddenWords": {
											"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
											"type": "boolean"
										},
										"name": {
											"markdownDescription": "The reference name of the dictionary.\n\n\nExample: `My Words` or `custom`\n\n\nIf the name matches a pre-defined dictionary, it will override the pre-defined dictionary.\nIf you use: `typescript` it will replace the built-in TypeScript dictionary.",
											"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
											"title": "Name of Dictionary",
											"type": "string"
										},
										"noSuggest": {
											"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
											"type": "boolean"
										},
										"path": {
											"markdownDescription": "Define the path to the dictionary text file.\n\n**Note:** if path is `undefined` the `name`d dictionary is expected to be found\nin the `dictionaryDefinitions`.\n\nFile Format: Each line in the file is considered a dictionary entry.\n\nCase is preserved while leading and trailing space is removed.\n\nThe path should be absolute, or relative to the workspace.\n\n**Example:** relative to User's folder\n\n```json\n\"path\": \"~/dictionaries/custom_dictionary.txt\"\n```\n\n**Example:** relative to the `client` folder in a multi-root workspace\n\n```json\n\"path\": \"${workspaceFolder:client}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the current workspace folder in a single-root workspace\n\n**Note:** this might not work as expected in a multi-root workspace since it is based upon the relative\nworkspace for the currently open file.\n\n```json\n\"path\": \"${workspaceFolder}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the workspace folder in a single-root workspace or the first folder in\na multi-root workspace\n\n```json\n\"path\": \"./build/custom_dictionary.txt\"\n```",
											"type": "string"
										},
										"scope": {
											"anyOf": [
												{
													"enum": [
														"user",
														"workspace",
														"folder"
													],
													"markdownDescription": "Specifies the scope of a dictionary.",
													"type": "string"
												},
												{
													"items": {
														"enum": [
															"user",
															"workspace",
															"folder"
														],
														"markdownDescription": "Specifies the scope of a dictionary.",
														"type": "string"
													},
													"type": "array"
												}
											],
											"markdownDescription": "Options are\n- `user` - words that apply to all projects and workspaces\n- `workspace` - words that apply to the entire workspace\n- `folder` - words that apply to only a workspace folder",
											"title": "Scope of dictionary"
										},
										"supportNonStrictSearches": {
											"default": true,
											"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
											"type": "boolean"
										}
									},
									"required": [
										"name",
										"path"
									],
									"type": "object"
								},
								{
									"markdownDescription": "This is the name of a dictionary.\n\nName Format:\n- Must contain at least 1 number or letter.\n- Spaces are allowed.\n- Leading and trailing space will be removed.\n- Names ARE case-sensitive.\n- Must not contain `*`, `!`, `;`, `,`, `{`, `}`, `[`, `]`, `~`.",
									"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
									"type": "string"
								}
							]
						},
						"markdownDescription": "Define custom dictionaries to be included by default for the user.\nIf `addWords` is `true` words will be added to this dictionary.",
						"scope": "application",
						"title": "Custom User Dictionaries",
						"type": "array"
					},
					"cSpell.customWorkspaceDictionaries": {
						"deprecated": true,
						"deprecationMessage": "- Use `#cSpell.customDictionaries#` instead.",
						"items": {
							"anyOf": [
								{
									"additionalProperties": false,
									"properties": {
										"addWords": {
											"default": true,
											"markdownDescription": "Indicate if this custom dictionary should be used to store added words.",
											"title": "Add Words to Dictionary",
											"type": "boolean"
										},
										"description": {
											"markdownDescription": "Optional: A human readable description.",
											"title": "Description of the Dictionary",
											"type": "string"
										},
										"name": {
											"markdownDescription": "The reference name of the dictionary.\n\n\nExample: `My Words` or `custom`\n\n\nIf the name matches a pre-defined dictionary, it will override the pre-defined dictionary.\nIf you use: `typescript` it will replace the built-in TypeScript dictionary.",
											"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
											"title": "Name of Dictionary",
											"type": "string"
										},
										"noSuggest": {
											"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
											"type": "boolean"
										},
										"path": {
											"markdownDescription": "Define the path to the dictionary text file.\n\n**Note:** if path is `undefined` the `name`d dictionary is expected to be found\nin the `dictionaryDefinitions`.\n\nFile Format: Each line in the file is considered a dictionary entry.\n\nCase is preserved while leading and trailing space is removed.\n\nThe path should be absolute, or relative to the workspace.\n\n**Example:** relative to User's folder\n\n```json\n\"path\": \"~/dictionaries/custom_dictionary.txt\"\n```\n\n**Example:** relative to the `client` folder in a multi-root workspace\n\n```json\n\"path\": \"${workspaceFolder:client}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the current workspace folder in a single-root workspace\n\n**Note:** this might not work as expected in a multi-root workspace since it is based upon the relative\nworkspace for the currently open file.\n\n```json\n\"path\": \"${workspaceFolder}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the workspace folder in a single-root workspace or the first folder in\na multi-root workspace\n\n```json\n\"path\": \"./build/custom_dictionary.txt\"\n```",
											"title": "Path to Dictionary Text File",
											"type": "string"
										},
										"scope": {
											"anyOf": [
												{
													"enum": [
														"user",
														"workspace",
														"folder"
													],
													"markdownDescription": "Specifies the scope of a dictionary.",
													"type": "string"
												},
												{
													"items": {
														"enum": [
															"user",
															"workspace",
															"folder"
														],
														"markdownDescription": "Specifies the scope of a dictionary.",
														"type": "string"
													},
													"type": "array"
												}
											],
											"markdownDescription": "Options are\n- `user` - words that apply to all projects and workspaces\n- `workspace` - words that apply to the entire workspace\n- `folder` - words that apply to only a workspace folder",
											"title": "Scope of dictionary"
										}
									},
									"required": [
										"name"
									],
									"type": "object"
								},
								{
									"additionalProperties": false,
									"properties": {
										"addWords": {
											"default": true,
											"markdownDescription": "Indicate if this custom dictionary should be used to store added words.",
											"title": "Add Words to Dictionary",
											"type": "boolean"
										},
										"description": {
											"markdownDescription": "Optional: A human readable description.",
											"title": "Description of the Dictionary",
											"type": "string"
										},
										"ignoreForbiddenWords": {
											"markdownDescription": "Some dictionaries may contain forbidden words to prevent compounding from generating\nwords that are not valid in the language. These are often\nwords that are used in other languages or might be generated through compounding.\nThis setting allows flagged words to be ignored when checking the dictionary.\nThe effect is similar to the word not being in the dictionary.",
											"type": "boolean"
										},
										"name": {
											"markdownDescription": "The reference name of the dictionary.\n\n\nExample: `My Words` or `custom`\n\n\nIf the name matches a pre-defined dictionary, it will override the pre-defined dictionary.\nIf you use: `typescript` it will replace the built-in TypeScript dictionary.",
											"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
											"title": "Name of Dictionary",
											"type": "string"
										},
										"noSuggest": {
											"markdownDescription": "Indicate that suggestions should not come from this dictionary.\nWords in this dictionary are considered correct, but will not be\nused when making spell correction suggestions.\n\nNote: if a word is suggested by another dictionary, but found in\nthis dictionary, it will be removed from the set of\npossible suggestions.",
											"type": "boolean"
										},
										"path": {
											"markdownDescription": "Define the path to the dictionary text file.\n\n**Note:** if path is `undefined` the `name`d dictionary is expected to be found\nin the `dictionaryDefinitions`.\n\nFile Format: Each line in the file is considered a dictionary entry.\n\nCase is preserved while leading and trailing space is removed.\n\nThe path should be absolute, or relative to the workspace.\n\n**Example:** relative to User's folder\n\n```json\n\"path\": \"~/dictionaries/custom_dictionary.txt\"\n```\n\n**Example:** relative to the `client` folder in a multi-root workspace\n\n```json\n\"path\": \"${workspaceFolder:client}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the current workspace folder in a single-root workspace\n\n**Note:** this might not work as expected in a multi-root workspace since it is based upon the relative\nworkspace for the currently open file.\n\n```json\n\"path\": \"${workspaceFolder}/build/custom_dictionary.txt\"\n```\n\n**Example:** relative to the workspace folder in a single-root workspace or the first folder in\na multi-root workspace\n\n```json\n\"path\": \"./build/custom_dictionary.txt\"\n```",
											"type": "string"
										},
										"scope": {
											"anyOf": [
												{
													"enum": [
														"user",
														"workspace",
														"folder"
													],
													"markdownDescription": "Specifies the scope of a dictionary.",
													"type": "string"
												},
												{
													"items": {
														"enum": [
															"user",
															"workspace",
															"folder"
														],
														"markdownDescription": "Specifies the scope of a dictionary.",
														"type": "string"
													},
													"type": "array"
												}
											],
											"markdownDescription": "Options are\n- `user` - words that apply to all projects and workspaces\n- `workspace` - words that apply to the entire workspace\n- `folder` - words that apply to only a workspace folder",
											"title": "Scope of dictionary"
										},
										"supportNonStrictSearches": {
											"default": true,
											"markdownDescription": "Strip case and accents to allow for case insensitive searches and\nwords without accents.\n\nNote: this setting only applies to word lists. It has no-impact on trie\ndictionaries.",
											"type": "boolean"
										}
									},
									"required": [
										"name",
										"path"
									],
									"type": "object"
								},
								{
									"markdownDescription": "This is the name of a dictionary.\n\nName Format:\n- Must contain at least 1 number or letter.\n- Spaces are allowed.\n- Leading and trailing space will be removed.\n- Names ARE case-sensitive.\n- Must not contain `*`, `!`, `;`, `,`, `{`, `}`, `[`, `]`, `~`.",
									"pattern": "^(?=[^!*,;{}[\\]~\\n]+$)(?=(.*\\w)).+$",
									"type": "string"
								}
							]
						},
						"markdownDescription": "Define custom dictionaries to be included by default for the workspace.\nIf `addWords` is `true` words will be added to this dictionary.",
						"scope": "resource",
						"title": "Custom Workspace Dictionaries",
						"type": "array"
					},
					"cSpell.enabledLanguageIds": {
						"deprecated": true,
						"deprecationMessage": "- Use `#cSpell.enabledFileTypes#` instead.",
						"items": {
							"markdownDescription": "A file type:\n- `*` - will match ALL file types.\n- `typescript`, `cpp`, `json`, etc.",
							"pattern": "^(!?[-\\w_\\s]+)|(\\*)$",
							"type": "string"
						},
						"markdownDescription": "Specify a list of file types to spell check. It is better to use `#cSpell.enabledFileTypes#` to Enable / Disable checking files types.",
						"scope": "resource",
						"title": "Enabled Language Ids",
						"type": "array",
						"uniqueItems": true
					},
					"cSpell.showStatus": {
						"default": true,
						"deprecationMessage": "No longer used.",
						"markdownDescription": "Display the spell checker status on the status bar.",
						"scope": "application",
						"type": "boolean"
					},
					"cSpell.showStatusAlignment": {
						"default": "Right",
						"deprecated": true,
						"deprecationMessage": "No longer supported.",
						"enum": [
							"Left",
							"Right"
						],
						"enumDescriptions": [
							"Left Side of Statusbar",
							"Right Side of Statusbar"
						],
						"markdownDescription": "The side of the status bar to display the spell checker status.",
						"scope": "application",
						"type": "string"
					}
				},
				"title": "Legacy",
				"type": "object"
			},
			{
				"additionalProperties": false,
				"markdownDescription": "Settings that control the performance of the spell checker.",
				"order": 4,
				"properties": {
					"cSpell.blockCheckingWhenAverageChunkSizeGreaterThan": {
						"default": 200,
						"markdownDescription": "The maximum average length of chunks of text without word breaks.\n\n\nA chunk is the characters between absolute word breaks.\nAbsolute word breaks match: `/[\\s,{}[\\]]/`\n\n\n**Error Message:** _Average word length is too long._\n\n\nIf you are seeing this message, it means that the file contains mostly long lines\nwithout many word breaks.\n\n\nHide this message using `#cSpell.enabledNotifications#`",
						"scope": "language-overridable",
						"type": "number"
					},
					"cSpell.blockCheckingWhenLineLengthGreaterThan": {
						"default": 20000,
						"markdownDescription": "The maximum line length.\n\n\nBlock spell checking if lines are longer than the value given.\nThis is used to prevent spell checking generated files.\n\n\n**Error Message:** _Lines are too long._\n\n\nHide this message using `#cSpell.enabledNotifications#`",
						"scope": "language-overridable",
						"type": "number"
					},
					"cSpell.blockCheckingWhenTextChunkSizeGreaterThan": {
						"default": 1000,
						"markdownDescription": "The maximum length of a chunk of text without word breaks.\n\n\nIt is used to prevent spell checking of generated files.\n\n\nA chunk is the characters between absolute word breaks.\nAbsolute word breaks match: `/[\\s,{}[\\]]/`, i.e. spaces or braces.\n\n\n**Error Message:** _Maximum word length exceeded._\n\n\nIf you are seeing this message, it means that the file contains a very long line\nwithout many word breaks.\n\n\nHide this message using `#cSpell.enabledNotifications#`",
						"scope": "language-overridable",
						"type": "number"
					},
					"cSpell.checkLimit": {
						"default": 500,
						"markdownDescription": "Set the maximum number of blocks of text to check.\nEach block is 1024 characters.",
						"scope": "resource",
						"type": "number"
					},
					"cSpell.spellCheckDelayMs": {
						"default": 50,
						"markdownDescription": "Delay in ms after a document has changed before checking it for spelling errors.",
						"scope": "application",
						"type": "number"
					},
					"cSpell.suggestionsTimeout": {
						"default": 400,
						"markdownDescription": "The maximum amount of time in milliseconds to generate suggestions for a word.",
						"scope": "resource",
						"type": "number"
					}
				},
				"title": "Performance",
				"type": "object"
			},
			{
				"additionalProperties": false,
				"markdownDescription": "Settings that control how the spell checker reports and displays errors.",
				"order": 2,
				"properties": {
					"cSpell.autoFormatConfigFile": {
						"default": false,
						"markdownDescription": "If a `cspell` configuration file is updated, format the configuration file\nusing the VS Code Format Document Provider. This will cause the configuration\nfile to be saved prior to being updated.",
						"scope": "window",
						"title": "Auto Format Configuration File",
						"type": "boolean"
					},
					"cSpell.autocorrect": {
						"default": false,
						"markdownDescription": "Enable / Disable autocorrect while typing.",
						"scope": "resource",
						"title": "Autocorrect",
						"type": "boolean"
					},
					"cSpell.diagnosticLevel": {
						"default": "Information",
						"enum": [
							"Error",
							"Warning",
							"Information",
							"Hint"
						],
						"enumDescriptions": [
							"Report Spelling Issues as Errors",
							"Report Spelling Issues as Warnings",
							"Report Spelling Issues as Information",
							"Report Spelling Issues as Hints, will not show up in Problems"
						],
						"markdownDescription": "The Diagnostic Severity Level determines how issues are shown in the Problems Pane and within the document.\nSet the level to `Hint` to hide the issues from the Problems Pane.\n\nNote: `#cSpell.useCustomDecorations#` must be `false` to use VS Code Diagnostic Severity Levels.\n\nSee: [VS Code Diagnostic Severity Level](https://code.visualstudio.com/api/references/vscode-api#DiagnosticSeverity)",
						"scope": "resource",
						"title": "Set Diagnostic Reporting Level",
						"type": "string"
					},
					"cSpell.diagnosticLevelFlaggedWords": {
						"enum": [
							"Error",
							"Warning",
							"Information",
							"Hint"
						],
						"enumDescriptions": [
							"Report Spelling Issues as Errors",
							"Report Spelling Issues as Warnings",
							"Report Spelling Issues as Information",
							"Report Spelling Issues as Hints, will not show up in Problems"
						],
						"markdownDescription": "Flagged word issues found by the spell checker are marked with a Diagnostic Severity Level. This affects the color of the squiggle.\nBy default, flagged words will use the same diagnostic level as general issues. Use this setting to customize them.\n\nSee: [VS Code Diagnostic Severity Level](https://code.visualstudio.com/api/references/vscode-api#DiagnosticSeverity)",
						"scope": "resource",
						"since": "4.0.0",
						"title": "Set Diagnostic Reporting Level for Flagged Words",
						"type": "string"
					},
					"cSpell.enabledNotifications": {
						"additionalProperties": false,
						"default": {
							"Average Word Length too Long": true,
							"Lines too Long": true,
							"Maximum Word Length Exceeded": true
						},
						"markdownDescription": "Control which notifications are displayed.\n\nSee:\n- `#cSpell.blockCheckingWhenLineLengthGreaterThan#`\n- `#cSpell.blockCheckingWhenTextChunkSizeGreaterThan#`\n- `#cSpell.blockCheckingWhenAverageChunkSizeGreaterThan#`",
						"properties": {
							"Average Word Length too Long": {
								"markdownDescription": "Enable notifications if the average word size is too high.",
								"type": "boolean"
							},
							"Lines too Long": {
								"markdownDescription": "Enable notifications if the line is too long.",
								"type": "boolean"
							},
							"Maximum Word Length Exceeded": {
								"markdownDescription": "Enable notifications if the maximum word length is exceeded.",
								"type": "boolean"
							}
						},
						"scope": "resource",
						"since": "4.0.41",
						"title": "Enabled Notifications",
						"type": "object"
					},
					"cSpell.hideAddToDictionaryCodeActions": {
						"default": false,
						"markdownDescription": "Hide the options to add words to dictionaries or settings.",
						"scope": "resource",
						"type": "boolean"
					},
					"cSpell.hideIssuesWhileTyping": {
						"default": "Word",
						"enum": [
							"Off",
							"Word",
							"Line",
							"Document"
						],
						"enumDescriptions": [
							"Show issues while typing",
							"Hide issues while typing in the current word",
							"Hide issues while typing on the line",
							"Hide all issues while typing in the document"
						],
						"markdownDescription": "Control how spelling issues are displayed while typing.\nSee: `#cSpell.revealIssuesAfterDelayMS#` to control when issues are revealed.",
						"scope": "application",
						"since": "4.0.0",
						"title": "Hide Issues While Typing",
						"type": "string"
					},
					"cSpell.maxDuplicateProblems": {
						"default": 20,
						"markdownDescription": "The maximum number of times the same word can be flagged as an error in a file.",
						"scope": "resource",
						"type": "number"
					},
					"cSpell.maxNumberOfProblems": {
						"default": 100,
						"markdownDescription": "Controls the maximum number of spelling errors per document.",
						"scope": "resource",
						"type": "number"
					},
					"cSpell.minWordLength": {
						"default": 4,
						"markdownDescription": "The minimum length of a word before checking it against a dictionary.",
						"scope": "resource",
						"type": "number"
					},
					"cSpell.numSuggestions": {
						"default": 8,
						"markdownDescription": "Controls the number of suggestions shown.",
						"scope": "resource",
						"type": "number"
					},
					"cSpell.revealIssuesAfterDelayMS": {
						"default": 1500,
						"markdownDescription": "Reveal hidden issues related to `#cSpell.hideIssuesWhileTyping#` after a delay in milliseconds.",
						"scope": "application",
						"since": "4.0.0",
						"title": "Reveal Issues After a Delay in Milliseconds",
						"type": "number"
					},
					"cSpell.showAutocompleteDirectiveSuggestions": {
						"default": true,
						"markdownDescription": "Show CSpell in-document directives as you type.\n\n**Note:** VS Code must be restarted for this setting to take effect.",
						"scope": "language-overridable",
						"type": "boolean"
					},
					"cSpell.showCommandsInEditorContextMenu": {
						"default": true,
						"markdownDescription": "Show Spell Checker actions in Editor Context Menu",
						"scope": "application",
						"type": "boolean"
					},
					"cSpell.showSuggestionsLinkInEditorContextMenu": {
						"default": true,
						"markdownDescription": "Show Spelling Suggestions link in the top level context menu.",
						"scope": "application",
						"type": "boolean"
					},
					"cSpell.suggestionMenuType": {
						"default": "quickPick",
						"enum": [
							"quickPick",
							"quickFix"
						],
						"enumDescriptions": [
							"Suggestions will appear as a drop down at the top of the IDE. (Best choice for Vim Key Bindings)",
							"Suggestions will appear inline near the word, inside the text editor."
						],
						"markdownDescription": "The type of menu used to display spelling suggestions.",
						"scope": "resource",
						"type": "string"
					},
					"cSpell.suggestionNumChanges": {
						"default": 3,
						"markdownDescription": "The maximum number of changes allowed on a word to be considered a suggestions.\n\nFor example, appending an `s` onto `example` -> `examples` is considered 1 change.\n\nRange: between 1 and 5.",
						"scope": "resource",
						"type": "number"
					},
					"cSpell.validateDirectives": {
						"markdownDescription": "Verify that the in-document directives are correct.",
						"scope": "window",
						"type": "boolean"
					}
				},
				"title": "Reporting and Display",
				"type": "object"
			}
		],
		"terminal": {
			"profiles": [
				{
					"title": "Spell Checker REPL",
					"id": "cSpell.terminal-profile"
				}
			]
		}
	},
	"workspaces": [
		"tools/build-tools",
		"packages/utils-logger",
		"packages/utils-disposables",
		"packages/json-rpc-api",
		"packages/webview-rpc",
		"packages/webview-api",
		"packages/webview-ui",
		"packages/__locale-resolver",
		"packages/__utils",
		"packages/_server",
		"packages/_serverPatternMatcher",
		"packages/client",
		"packages/_integrationTests",
		"scripts",
		"website"
	],
	"scripts": {
		"build-package-schema": "npm --workspace=code-spell-checker-server run build-schema && build-tools update-package-schema && npm run prettier:fix-schema",
		"build": "npm run build:workspaces && npm run build:schema",
		"build:docs": "npm run gen-docs",
		"build:all": "npm run build && npm run build:docs",
		"build:readme": "inject-markdown README.md && prettier -w README.md && inject-markdown website && prettier -w website",
		"build:schema": "npm run build-package-schema",
		"build:workspaces": "npm --workspaces --if-present run build",
		"build:extension": "npm run package-extension",
		"clean": "npm --workspaces --if-present run clean && shx rm -rf \"packages/*/node_modules\" \"modules/*/node_modules\" \"modules/**/dist\" ",
		"build-production": "npm --workspaces --if-present run build-production",
		"build-release": "npm run build && npm run package-extension",
		"build-website": "cd website && npm i && npm run build-site",
		"gen-docs": "npm --if-present -ws run gen-docs",
		"package-extension": "vsce package -o ./build",
		"prettier:check": "prettier . -c",
		"prettier:fix": "npm run prettier:check -- -w",
		"prettier:fix-schema": "prettier -w \"**/*.schema.json\"",
		"test-vsce-build": "shx mkdir -p temp && vsce package -o ./temp/code-spell-checker.vsix",
		"remove-test-files": "shx rm -rf \"packages/*/{out,dist,settingsViewer}/**/*.test.*js\"",
		"vscode:prepublish": "npm run build-production && npm run remove-test-files",
		"lint": "npm run lint:eslint && npm run prettier:fix",
		"lint:eslint": "eslint . --fix --cache",
		"lint-docs": "prettier -w website",
		"lint-docs-ci": "prettier -c website",
		"test-client-integration": "npm --workspace=@internal/integration-tests run test-integration",
		"test": "npm --workspaces --if-present run test && echo OK",
		"update-cspell": "npx npm-check-updates --root -ws --target semver -u \"cspell*\" \"@cspell/*\"  && npm i",
		"update-packages": "npm run update:packages:root && npm run update:packages:website",
		"update:packages:root": "npx npm-check-updates --root -ws --target semver -u && npm i",
		"update:packages:website": "cd website && npm run update-packages",
		"postinstall": "patch-package"
	},
	"devDependencies": {
		"@arethetypeswrong/cli": "^0.18.2",
		"@eslint/js": "~9.38.0",
		"@tsconfig/node22": "^22.0.3",
		"@types/node": "^20.19.25",
		"@types/vscode": "1.104.0",
		"@types/vscode-webview": "^1.57.5",
		"@vitest/coverage-istanbul": "~4.0.9",
		"@vscode/vsce": "^3.7.0",
		"ansi-styles": "^6.2.3",
		"chokidar-cli": "^3.0.0",
		"concurrently": "^9.2.1",
		"esbuild": "^0.25.12",
		"eslint": "~9.38.0",
		"eslint-plugin-n": "^17.23.1",
		"eslint-plugin-simple-import-sort": "^12.1.1",
		"eslint-plugin-unicorn": "^62.0.0",
		"globals": "^16.5.0",
		"inject-markdown": "^4.0.0",
		"jest-mock-vscode": "^4.8.2",
		"ovsx": "^0.10.6",
		"patch-package": "^8.0.1",
		"prettier": "^3.6.2",
		"prettier-plugin-svelte": "^3.4.0",
		"rollup": "^4.53.2",
		"rollup-plugin-dts": "^6.2.3",
		"shx": "^0.4.0",
		"tsdown": "^0.15.12",
		"tsup": "^8.5.1",
		"typescript": "~5.9.3",
		"typescript-eslint": "^8.46.4",
		"vite": "^7.2.2",
		"vitest": "~4.0.9"
	},
	"dependencies": {
		"@cspell/cspell-bundled-dicts": "^9.3.2",
		"@cspell/cspell-types": "^9.3.2",
		"@cspell/dict-cspell-bundle": "^2.0.36",
		"cspell": "^9.3.2",
		"regexp-worker": "^4.2.1"
	},
	"vsce": {},
	"__metadata": {
		"installedTimestamp": 1764041211690,
		"targetPlatform": "undefined",
		"size": 7920286
	}
}