一個基本的拼字檢查器,可以很好地處理程式碼和文件。
此拼字檢查器的目標是幫助發現常見的拼字錯誤,同時保持較低的誤報數量。
載入 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'; // <- 將被標記為錯誤。 'goedemorgen'; // <- 不會被標記為錯誤。
<!--- cSpell:disable --->該文字未被選取。
忽略允許您指定要在文件中忽略的單字清單。
// 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 樣式十六進位數字。匹配ggggg 和hhhhh // cSpell:ignoreRegExp /g{5} h{5}/ -- 將匹配'ggggg hhhhh'/* cSpell:ignoreRegExp /n{5}/ -- 由於結尾註釋而不會按預期工作- > */ /* cSpell:ignoreRegExp /q{5}/ -- 將很好地匹配qqqqq,但不能匹配QQQQQ*/// cSpell:ignoreRegExp /[^s]{40,}/ -- 將忽略沒有空格的長字串。 [email protected]';var email2 = '<電子郵件地址@myfancynewcompany .com>';
注意: 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"。 / 控制顯示的建議數量。 :[“csharp”,“go”,“javascript”,“javascriptreact”,“markdown”,“php”,“純文字”,“typescript”,“typescriptreact”,“yaml”,“sql” ],//啟用/停用拼字檢查器。 ": false,// 要忽略且不建議的單字。"cSpell.ignoreWords": ["behaviour"],// 要新增到字典中的使用者單字。 只能在使用者設定中。 "cSpell.userWords": [],// 指定要忽略的路徑/檔案。 */ node_modules", // 與此相同"**/node_modules/**", // 與此相同"node_modules/**", // 由於目前工作目錄的確定方式,目前不起作用."vscode- extension", //".git", // 忽略.git目錄"*.dll", // 忽略所有.dll檔案。"**/*.dll" // 忽略所有.dll檔案],// flagWords - 總是被視為不正確的單字清單// 這對於攻擊性單字和常見拼字錯誤很有用。設定對文件進行拼字檢查之前的延遲時間。預設值為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.languageSettings”:[ { "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/ city.txt"}],"dictionaries": ["cities"],"languageSettings": [{ "languageId": "markdown", "dictionaries": ["medicalTerms"] },{ "languageId": "plaintext" , "字典": ["medicalTerms"] }]}
解釋:在此範例中,定義了兩個字典:城市和medicalTerms 。這些路徑相對於cSpell.json檔案的位置。這允許將字典簽入項目中。
城市字典適用於每種文件類型,因為它已添加到字典列表中。 MedicalTerms字典僅在編輯Markdown或純文字檔案時使用。
字典釋義
介面 DictionaryDefinition {/** * 這是字典的名稱。 * * 姓名格式: * - 必須包含至少 1 個數字或字母。 * - 允許有空格。 * - 前導和尾隨空格將被刪除。 * - 名稱區分大小寫。 * - 不得包含 `*`、`!`、`;`、`,`、`{`、`}`、`[`、`]`、`~`。 */name: DictionaryId;/** 可選描述。 */description?: string;/** 自訂字典文字檔案的路徑。 */path: CustomDictionaryPath;/** * 定義將單字新增至字典中的範圍。 * 範圍值:「使用者」、「工作空間」、「資料夾」。 */範圍? CustomDictionaryScope[];/** * 當為「true」時,讓拼字檢查器知道可以將單字加入此字典。 */addWords: 布林值;}
VS 代碼設定
“cSpell.customDictionaries”:{