一个基本的拼写检查器,可以很好地处理代码和文档。
该拼写检查器的目标是帮助发现常见的拼写错误,同时保持较低的误报数量。
加载 TypeScript、JavaScript、文本等文件。不在词典文件中的单词将带有波浪形下划线。
要查看建议列表:
将光标定位在单词中后,以下任何一项都应显示建议列表:
单击左侧边距中的(灯泡)。
Quick Fix
编辑器操作命令:
麦克: ⌘
+ .
或Cmd
+ .
电脑: Ctrl
+ .
打开 VS Code 并按F1
并输入ext
选择安装并输入code-spell-checker
按 Enter 并重新加载窗口以启用。
英语(美国)
英语 (GB) - 通过将"cSpell.language": "en"
更改为"cSpell.language": "en-GB"
来打开
古希腊语 - VS Code 的古希腊语词典扩展。
阿拉伯语 - VS Code 的阿拉伯语词典扩展。
澳大利亚英语 - VS Code 的澳大利亚英语词典扩展。
奥地利德语 - VS Code 的奥地利德语词典扩展。
Basque - VS Code 的巴斯克语词典扩展.
英式英语 - VS Code 的英式英语词典扩展。
保加利亚语 - VS Code 的保加利亚语词典扩展。
Canadian English - VS Code 的加拿大英语词典扩展。
Catalan - VS Code 的加泰罗尼亚语词典扩展。
克罗地亚语 - VS Code 的克罗地亚语词典扩展。
Czech - VS Code 的捷克语词典扩展。
丹麦语 - VS Code 的丹麦语词典扩展。
荷兰语 - VS Code 的荷兰语/荷兰语词典扩展。
Esperanto - VS Code 的世界语词典扩展.
爱沙尼亚语 - VS Code 的爱沙尼亚语词典扩展。
芬兰语 - VS Code 的芬兰语词典扩展。
法语 - VS Code 的法语词典扩展。
French Réforme 90 - VS Code 的法语 Réforme 90 词典扩展.
VS Code 的德语 - 德语词典扩展。
希腊语 - VS Code 的希腊语词典扩展。
希伯来语 - VS Code 的希伯来语词典扩展。
匈牙利语 - VS Code 的匈牙利语词典扩展。
印度尼西亚语 - VS Code 的印度尼西亚语词典扩展。
意大利语 - VS Code 的意大利语词典扩展。
Latin - VS Code 的拉丁语词典扩展。
拉脱维亚语 - VS Code 的拉脱维亚语词典扩展。
立陶宛语 - VS Code 的立陶宛语词典扩展。
Macedonian - VS Code 的马其顿语词典扩展。
挪威语博克马尔语 - VS Code 的挪威语博克马尔语词典扩展。
Persian - VS Code 的波斯语词典扩展。
波兰语 - VS Code 的波兰语词典扩展。
葡萄牙语 - VS Code 的葡萄牙语词典扩展。
巴西葡萄牙语 - VS Code 的巴西葡萄牙语词典扩展。
罗马尼亚语 - VS Code 的罗马尼亚语词典扩展。
俄语 - VS Code 的俄语词典扩展。
塞尔维亚语 - VS Code 的塞尔维亚语词典扩展。
斯洛伐克语 - VS Code 的斯洛伐克语词典扩展。
斯洛文尼亚语 - VS Code 的斯洛文尼亚语词典扩展。
西班牙语 - 代码拼写检查器的西班牙语附加组件
瑞典语 - VS Code 的瑞典语词典扩展。
瑞士德语 - VS Code 的瑞士德语词典扩展。
土耳其语 - VS Code 的土耳其语词典扩展。
Ukrainian - VS Code 的乌克兰语词典扩展。
越南语 - VS Code 的越南语词典扩展。
医疗术语 - 代码拼写检查器的医疗术语附加组件
科学术语 - VS Code 的科学术语词典扩展。
Win32 - VS Code 的 Win32 字典扩展.
ASCII文档
C、C++
C#
css、更少、scss
镖
灵丹妙药
去
网页
爪哇
JavaScript
JSON/JSONC
乳胶
降价
PHP
电源外壳
哈巴狗 / 玉
Python
重构文本
红宝石
锈
斯卡拉
文本
打字稿
YAML
SQL
要启用或禁用文件类型的拼写检查:
单击状态栏中的拼写检查器状态:
在信息屏幕上,单击复选框。
这个概念很简单,先拆分驼峰式单词,然后根据已知英语单词列表进行检查。
驼峰式 -> 驼峰式
HTMLInput -> html input -- 请注意, I
与Input
相关联,而不是与HTML
相关联
Snake_case_words -> 蛇形词
camel2snake -> 骆驼蛇 --(忽略 2)
有一些特殊情况可以帮助您完成全大写单词的常见拼写练习。
尾随s
、 ing
、 ies
、 es
、 ed
与前一个单词保留。
CURLs -> 卷发 -- 尾随s
CURLedRequest -> 卷曲请求 -- 尾随ed
该拼写检查器不区分大小写。它不会捕获像 english 这样应该是英文的错误。
拼写检查器使用本地词典。它不会向您的机器之外发送任何内容。
字典中的单词可能而且确实包含错误。
有漏词。
仅检查长度超过 3 个字符的单词。 “jsj”未被选中,而“jsja”被选中并将被标记为不正确,因为它不存在于任何词典中。
所有符号和标点符号都将被忽略。
可以将拼写检查设置添加到源代码中。这是为了帮助解决可能不适用于整个项目的文件特定问题。
所有设置都以cSpell:
或spell-checker:
为前缀。
disable
——关闭一段代码的拼写检查器。
enable
——关闭拼写检查器后重新打开它。
ignore
——指定要忽略的单词列表。
words
——指定被视为正确的单词列表,并将出现在建议列表中。
locale
-- 设置区域设置(例如: cSpell:locale fr,en
使用法语和英语)
ignoreRegExp
任何与正则表达式匹配的文本都不会被检查拼写。
includeRegExp
仅检查与 includeRegExp 集合匹配的文本。
enableCompoundWords
/ disableCompoundWords
- 允许/禁止诸如“stringlength”之类的单词。
可以通过在代码中添加注释来禁用/启用拼写检查器。
cSpell:disable
spell-checker: disable
spellchecker: disable
cspell: disable-line
cspell: disable-next-line
cSpell:enable
spell-checker: enable
spellchecker: enable
// cSpell:disableconst wackyWord = ['zaallano', 'wooorrdd', 'zzooommmmmmmm'];/* cSpell:enable */// 不支持嵌套禁用/启用 // 拼写检查器:disable// 现在已禁用.var liep = 1;/* cspell:disable */// 仍处于禁用状态 // cSpell:enable// 现在已启用 const str = 'goededag'; // <- 将被标记为错误。// 拼写检查器:enable <- 不执行任何操作// cSPELL:DISABLE <-- 也有效。// 如果没有启用,则禁用拼写直到文件末尾。const str = 'goedemorgen'; // <- 不会被标记为错误。
<!--- cSpell:disable --->该文本未被选中。<!--- cSpell:enable --->该文本已被选中。
忽略允许您指定要在文档中忽略的单词列表。
// cSpell:忽略 zaallano, wooorrdd // cSpell:忽略 zzooommmmmmmmconst wackyWord = ['zaallano', 'wooorrdd', 'zzooommmmmmm'];
注意:使用ignore
定义的单词将被忽略整个文件。
单词列表允许您添加将被视为正确并用作建议的单词。
// cSpell:words woorxs sweeetbeatconst companyName = 'woorxs sweeetbeat';
注意:用words
定义的words将用于整个文件。
在某些编程语言中,将单词粘合在一起是很常见的。
// cSpell:enableCompoundWordschar * errormessage; // 使用 cSpell:enableCompoundWordsint errornumber 就可以了; // 也可以。
注意:不能在同一文件中打开/关闭复合词检查。文件中的最后一个设置决定整个文件的值。
默认情况下,会检查整个文档的拼写。上面的cSpell:disable
/ cSpell:enable
允许您屏蔽文档的某些部分。 ignoreRegExp
和includeRegExp
使您能够忽略或包含文本模式。默认情况下,如果没有给出标志,则添加标志gim
。
拼写检查器的工作方式如下:
查找所有匹配includeRegExp
文本
删除任何与excludeRegExp
匹配的文本
检查剩余的文本。
// cSpell:ignoreRegExp 0x[0-9a-f]+ -- 将忽略 c 样式十六进制数字 // cSpell:ignoreRegExp /0x[0-9A-F]+/g -- 将忽略大写 c 样式十六进制数字。 // cSpell:ignoreRegExp g{5} h{5} -- 只匹配 ggggg,但不匹配 hhhhh 或 'ggggg hhhhh'// cSpell:ignoreRegExp g{5}|h{5} -- 将匹配 ggggg 和 hhhhh// cSpell:ignoreRegExp /g{5} h{5}/ -- 将匹配 'ggggg hhhhh'/* cSpell:ignoreRegExp /n{5} / -- 由于结尾注释而无法按预期工作 -> *//* cSpell:ignoreRegExp /q{5}/ -- 将匹配 qqqqq 很好,但不匹配 QQQQQ*/// cSpell:ignoreRegExp /[^s]{40,}/ -- 将忽略不带空格的长字符串。// cSpell:ignoreRegExp Email -- 这将忽略电子邮件之类的模式 -- 请参阅预定义的 RegExp 表达式varencodedImage = 'HR+cPzr7XGAOJNurPL0G8I2kU0UhKcqFssoKvFTR7z0T3VJfK37vS025uKroHfJ9nA6WWbHZ/ASn...';var email1 = '[email protected]';var email2 = '<[email protected]>';
注意: ignoreRegExp 和 includeRegExp 应用于整个文件。他们不会开始和停止。
一般来说,您不需要使用includeRegExp
。但如果您正在混合语言,那么它可能会有所帮助。
# cSpell:includeRegExp #.*# cSpell:includeRegExp /(["]{3}|[']{3})[^1]*?1/g# 仅检查注释和块字符串的拼写。def sum_it( self, seq):"""这是检查拼写"""variabele = 0alinea = 'this is not check'for num in seq:# 'value' 的本地状态将是迭代之间保留variabele += numyield variabele
Urls
1 -- 匹配 url
HexValues
- 匹配常见的十六进制格式,如#aaa
、 0xfeef
、 u0134
EscapeCharacters
1 -- 匹配特殊字符: n
、 t
等。
Base64
1 - 匹配长度超过 40 个字符的 Base64 文本块。
Email
——匹配大多数电子邮件地址。
Everything
1 —— 默认情况下,我们匹配整个文档并删除排除项。
string
-- 这匹配常见的字符串格式,如“...”、“...”和“...”
CStyleComment
-- 这些是 C 风格注释 /* */ 和 //
PhpHereDoc
这与 PHPHereDoc 字符串匹配。
1.这些模式是每个文件的默认包含/排除列表的一部分。
拼写检查器配置可以通过 VS Code 首选项或cspell.json
配置文件进行控制。
优先顺序:
工作区文件夹cspell.json
工作区文件夹.vscode/cspell.json
VS Code 首选项cSpell
部分。
您可以选择将自己的单词添加到工作区词典中。最简单的方法是将光标放在要添加的单词上,当灯泡出现时,按Ctrl+.
(窗口)/ Cmd+.
(苹果)。您将获得建议列表和添加单词的选项。
您还可以输入要添加到词典中的单词: F1
add word
-- 选择Add Word to Dictionary
并输入您要添加的单词。
添加到词典中的单词放置在工作区文件夹中的cspell.json
文件中。请注意, cspell.json
中的设置将覆盖 VS Code 的settings.json
中的等效 cSpell 设置。
// cSpell Settings{// 设置文件的版本。 始终 0.2"version": "0.2",// 语言 - 当前活动的拼写语言"language": "en",// 单词 - 始终被视为正确的单词列表"words": ["mkdirp","tsmerge" ,"githubusercontent","streetsidesoftware","vsmarketplacebadge","visualstudio"],// flagWords - 始终被认为不正确的单词列表// 这对于攻击性很有用单词和常见拼写错误。//例如“hte”应该是“the”“flagWords”:[“hte”]}
//-------- 代码拼写检查器配置 --------// 拼写检查时使用的语言区域设置。目前默认支持 "en"、"en-US" 和 "en-GB"。"cSpell.language": "en",// 控制每个文档的最大拼写错误数。"cSpell.maxNumberOfProblems": 100 ,// 控制显示的建议数量。"cSpell.numSuggestions": 8,// 根据字典检查单词之前的最小长度。"cSpell.minWordLength": 4,//指定文件类型进行拼写检查。"cSpell.enabledLanguageIds": ["csharp","go","javascript","javascriptreact","markdown","php","plaintext","typescript", "typescriptreact","yaml","sql"],// 启用/禁用拼写检查器。"cSpell.enabled": true,// 添加到字典的单词workspace."cSpell.words": [],// 启用/禁用复合词,例如 'errormessage'"cSpell.allowCompoundWords": false,// 要忽略且不建议的词。"cSpell.ignoreWords": ["behaviour" ],// 要添加到词典中的用户单词。 只能在用户设置中。"cSpell.userWords": [],// 指定要忽略的路径/文件。"cSpell.ignorePaths": ["node_modules", // 这将忽略 node_modules 目录中的任何内容"**/ node_modules", // 与此相同"**/node_modules/**", // 与此相同"node_modules/**", // 由于当前工作目录的方式,当前不起作用"vscode-extension", //".git", // 忽略.git目录"*.dll", // 忽略所有.dll文件。"**/*.dll" // 忽略所有.dll files],// flagWords - 始终被认为不正确的单词列表 // 这对于攻击性单词和常见拼写错误很有用。// 例如“hte”应该是“the”`“cSpell.flagWords”: ["hte"],// 设置对文档进行拼写检查之前的延迟时间。默认值为 50。"cSpell.spellCheckDelayMs": 50,// 设置诊断报告级别 // 错误 - 将拼写问题报告为错误 // 警告 - 将拼写问题报告为警告 // 信息 - 将拼写问题报告为信息(默认)//提示 - 将拼写问题报告为提示,不会显示在问题中"cSpell.diagnosticLevel": "Information",
拼写检查器包括一组默认词典。
wordEn - 源自 Hunspell 美国英语单词。
wordEnGb - 源自 Hunspell GB 英语单词。
公司- 知名公司列表
softwareTerms - 软件术语和概念,如“coroutine”、“debounce”、“tree”等。
杂项- 不属于其他词典的术语。
typescript - Typescript 和 Javascript 的关键字
Node - 与使用 Node.js 相关的术语。
php - php关键字和库方法
go - go关键字和库方法
python - python关键字
powershell - powershell关键字
html - html相关关键字
css - css 、 less和scss相关关键字
字体- 长长的字体列表 - 协助CSS
根据编程语言,将加载不同的字典。
以下是一些默认规则:
"*"
匹配任何编程语言/文件类型。
"locale"
用于根据"cSpell.language"
设置进行过滤。
{“cSpell.语言设置”:[ { "languageId": '*', "locale": 'en', "dictionaries": ['wordsEn'] }, { "languageId": '*', "locale": 'en-US', "dictionaries": ['wordsEn'] }, { "languageId": '*', "locale": 'en-GB', "dictionaries": ['wordsEnGb'] }, { "languageId": '*', "dictionaries": ['companies', 'softwareTerms', 'misc'] }, { "languageId": "python", "字典": ["python"]}, { "languageId": "go", "字典": ["go"] }, { "languageId": "javascript", "dictionaries": ["typescript", "node"] }, { "languageId": "javascriptreact", "dictionaries": ["typescript", "node"] }, { "languageId": "typescript", "dictionaries": ["typescript", "node"] }, { "languageId": "typescriptreact", "dictionaries": ["typescript", "node"] }, { "languageId": "html", "字典": ["html", "fonts", "typescript", "css"] }, { "languageId": "php", "字典": ["php", "html", "字体", "css", "typescript"] }, { "languageId": "css", "字典": ["字体", "css"] }, { "languageId": "less", "dictionaries": ["fonts", "css"] }, { "languageId": "scss", "字典": ["字体", "css"] },];}
cSpell.customDictionaries
interface Settings {'cSpell.customDictionaries': {[name: string]: CustomDictionary;};}interface CustomDictionary {/** * @title 词典名称 * 词典的参考名称。 * * * 示例:`My Words` 或`custom` * * * 如果它们的名称与预定义的字典匹配,它将覆盖预定义的字典。 * 如果您使用: `typescript` 它将替换内置的 TypeScript 字典。 */name?: DictionaryId;/** * @title 字典的描述 * 可选:人类可读的描述。 */description?: string;/** * @title 词典文本文件的路径 * 定义词典文本文件的路径。 * * * **注意:** 如果路径为“未定义”,则预计会在“dictionaryDefinitions”中找到“name”字典。 * * * 文件格式:文件中的每一行都被视为一个字典条目。 * 保留大小写,同时删除前导和尾随空格。 * 路径应该是绝对路径,或者相对于工作空间。 * * **示例:** 相对于用户文件夹 * * ``` * ~/dictionaries/custom_dictionary.txt * ``` * * **示例:** 相对于多根工作区中的 `client` 文件夹* * ``` * ${workspaceFolder:client}/build/custom_dictionary.txt * ``` * * **示例:** 相对于单根工作空间中的当前工作空间文件夹 * * **注意:**这可能不符合预期多根工作空间,因为它基于当前打开文件的相对工作空间。 * * ``` * ${workspaceFolder}/build/custom_dictionary.txt * ``` * * **示例:** 相对于单根工作区中的工作区文件夹或多根工作区中的第一个文件夹* * ``` * ./build/custom_dictionary.txt * ``` */path?: FsPath;/** * @title 将单词添加到字典 * 指示是否应使用此自定义字典来存储添加的单词。 * @default true */addWords?: boolean;/** * @title 字典范围 * 选项有 * - `user` - 适用于所有项目和工作区的单词 * - `workspace` - 适用于整个工作区的单词* - `folder` - 仅适用于工作区文件夹的单词 */scope?: CustomDictionaryScope |自定义字典范围[];}
要添加全局词典,您需要更改用户设置。
在您的用户设置中,您需要告诉拼写检查器在哪里可以找到您的单词列表。
例如添加医学术语,因此可以找到像acanthopterygious这样的词。
VS 代码设置
“cSpell.customDictionaries”:{ “myWords”:{“名称”:“myWords”,“路径”:“~/my-words.txt”,“范围”:“用户”,“addWords”:true }}
解释:在此示例中,我们告诉拼写检查器在哪里可以找到名为myWords
的个人词典。
name
- 这是字典的名称,对此字典的所有引用都是通过名称完成的。
path
- 这是字典文件的路径。由于它是在用户设置中,因此我们必须使用绝对路径或相对于用户目录的路径~/
。
scope
- (可选)这用于将字典的“范围”限定为user
、 workspace
或folder
。范围用于帮助传达字典的预期用途。
addWords
- (可选)默认值 - true
- 用于显示/隐藏字典作为添加单词的可能目标。
cspell.json
的项目/工作区字典要在项目级别添加字典,应在cspell.json
文件中定义,以便可以与cspell
命令行工具一起使用。该文件可以位于项目根目录或 .vscode 目录中。
添加医学术语的示例,其中术语已签入项目,我们只想将其用于 .md 文件。
{“dictionaryDefinitions”:[{“名称”:“medicalTerms”,“路径”:“./dictionaries/medicalterms-en.txt”},{“名称”:“城市”,“路径”:“./dictionaries/城市.txt"}],"词典": ["城市"],"语言设置": [{ "languageId": "markdown", "词典": ["medicalTerms"] },{ "languageId": "plaintext", "dictionaries": ["medicalTerms"] }]}
解释:在此示例中,定义了两个字典:城市和medicalTerms 。这些路径相对于cSpell.json文件的位置。这允许将字典签入项目中。
城市字典适用于每种文件类型,因为它已添加到dictionaries列表中。 MedicalTerms字典仅在编辑Markdown或纯文本文件时使用。
字典释义
接口 DictionaryDefinition {/** * 这是字典的名称。 * * 名称格式: * - 必须包含至少 1 个数字或字母。 * - 允许有空格。 * - 前导和尾随空格将被删除。 * - 名称区分大小写。 * - 不得包含 `*`、`!`、`;`、`,`、`{`、`}`、`[`、`]`、`~`。 */name: DictionaryId;/** 可选描述。 */description?: string;/** 自定义词典文本文件的路径。 */path: CustomDictionaryPath;/** * 定义将单词添加到词典中的范围。 * 范围值:“用户”、“工作空间”、“文件夹”。 */范围?:CustomDictionaryScope | CustomDictionaryScope[];/** * 当为“true”时,让拼写检查器知道可以将单词添加到此词典中。 */addWords: 布尔值;}
VS 代码设置
“cSpell.customDictionaries”:{