Базовая программа проверки орфографии, которая хорошо работает с кодом и документами.
Цель этой проверки орфографии — помочь выявить распространенные орфографические ошибки, сохраняя при этом количество ложных срабатываний на низком уровне.
Загрузите файл TypeScript, JavaScript, текст и т. д. Слова, которых нет в файлах словарей, будут подчеркнуты волнистой линией.
Чтобы просмотреть список предложений:
После размещения курсора в слове любое из следующих действий должно отображать список предложений:
Нажмите на (лампочку) на левом поле.
Команда действия редактора Quick Fix
:
Мак: ⌘
+ .
или Cmd
+ .
ПК: Ctrl
+ .
Откройте VS Code, нажмите F1
, введите ext
select install и введите 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.
Канадский английский — расширение словаря канадского английского языка для VS Code.
Catalan — расширение каталонского словаря для VS Code.
Хорватский - расширение хорватского словаря для VS Code.
Чешский - расширение чешского словаря для VS Code.
Датский — расширение датского словаря для VS Code.
Расширение словаря голландско-голландский/нидерландский для VS Code.
Эсперанто — расширение словаря эсперанто для VS Code.
Эстонский - расширение эстонского словаря для VS Code.
Финский - расширение финского словаря для VS Code.
Французский — расширение французского словаря для VS Code.
French Réforme 90 — расширение французского словаря Réforme 90 для VS Code.
Расширение немецкого словаря для VS Code.
Расширение греко-греческого словаря для VS Code.
Иврит — расширение словаря иврита для VS Code.
Венгерский — расширение венгерского словаря для VS Code.
Индонезийский - расширение индонезийского словаря для VS Code.
Итальянский - расширение итальянского словаря для VS Code.
Latin — расширение латинского словаря для VS Code.
Латышско-латышский словарь расширения для VS Code.
Литовский - расширение литовского словаря для VS Code.
Македонский — расширение словаря македонского языка для VS Code.
Норвежский букмол — расширение словаря норвежского букмола для VS Code.
Персидский — расширение персидского словаря для VS Code.
Польский — расширение польского словаря для VS Code.
Португальский — расширение португальского словаря для VS Code.
Бразильский португальский — расширение словаря бразильского португальского языка для VS Code.
Румынский — расширение румынского словаря для VS Code.
Русско-русское расширение словаря для VS Code.
Сербский — расширение сербского словаря для VS Code.
Словацкий — расширение словаря словацкого языка для VS Code.
Словенский — расширение словаря словенского языка для VS Code.
Испанский — испанское дополнение для проверки правописания кода
Шведский — расширение шведского словаря для VS Code.
Swiss German — расширение швейцарско-немецкого словаря для VS Code.
Расширение турецко-турецкого словаря для VS Code.
Украинско-украинский словарь-расширение для VS Code.
Вьетнамский — расширение словаря вьетнамского языка для VS Code.
Медицинские термины — дополнение медицинских терминов для проверки правописания кода
Научные термины — расширение словаря научных терминов для VS Code.
Win32 — расширение словаря Win32 для VS Code.
AsciiDoc
С, С++
С#
css, меньше, scss
Дарт
Эликсир
Идти
HTML
Ява
JavaScript
JSON/JSONC
Латекс
Уценка
PHP
PowerShell
Мопс / Джейд
Питон
реструктурированныйтекст
Руби
Ржавчина
Скала
Текст
Машинопись
ЯМЛ
SQL
Чтобы включить или отключить проверку орфографии для типа файла:
Нажмите на статус проверки орфографии в строке состояния:
На экране «Информация» установите флажок.
Идея проста: разделите слова в верблюжьем регистре, прежде чем сверять их со списком известных английских слов.
CamelCase -> верблюжий чехол
HTMLInput -> html input — обратите внимание, что I
связано с Input
, а не HTML
Snake_case_words -> слова со змеиным регистром
Camel2snake -> верблюжья змея -- (цифра 2 игнорируется)
Есть несколько особых случаев, которые помогут вам освоить общепринятые правила написания слов, написанных ЗАГЛАВНЫМИ БУКВАМИ.
Завершающие s
, ing
, ies
, es
, ed
сохраняются вместе с предыдущим словом.
CURL -> завитки -- конечные s
CURLedRequest -> свернутый запрос — завершающий ed
Эта программа проверки орфографии нечувствительна к регистру. Он не будет обнаруживать такие ошибки, как английский, который должен быть английским.
Проверка орфографии использует локальный словарь слов. Он ничего не отправляет за пределы вашего компьютера.
Слова в словаре могут содержать и содержат ошибки.
Есть пропущенные слова.
Проверяются только слова длиной более 3 символов. «jsj» не отмечен галочкой, а «jsja» отмечен галочкой и будет помечен как неправильный, поскольку его нет ни в одном из словарей.
Все символы и знаки препинания игнорируются.
В исходный код можно добавить настройки проверки орфографии. Это поможет решить проблемы, связанные с конкретными файлами, которые могут быть неприменимы ко всему проекту.
Все настройки имеют префикс cSpell:
или spell-checker:
.
disable
— отключить проверку орфографии для раздела кода.
enable
— снова включить проверку орфографии после ее отключения.
ignore
— укажите список слов, которые следует игнорировать.
words
– укажите список слов, которые будут считаться правильными и будут отображаться в списке предложений.
locale
— установите локаль (пример: cSpell:locale fr,en
для использования французского и английского языков)
ignoreRegExp
— любой текст, соответствующий регулярному выражению, НЕ будет проверяться на правописание.
includeRegExp
— будет проверяться только текст, соответствующий коллекции includeRegExp.
enableCompoundWords
/ disableCompoundWords
— разрешить/запретить использование таких слов, как «длина строки».
Вы можете отключить/включить проверку орфографии, добавив комментарии в свой код.
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 */// Отключение/включение гнезда не поддерживается// проверка правописания: отключено// Теперь оно отключено .varliep = 1;/* cspell:disable */// Оно все еще отключено// cSpell:enable// Сейчас оно отключено Enableconst стр = 'goededag'; // <- будет помечено как ошибка.// проверка правописания:enable <- ничего не делает// cSPELL:DISABLE <-- также работает.// если нет разрешения, орфография отключается до тех пор, пока конец файла.const str = 'goedemorgen'; // <- НЕ будет помечено как ошибка.
<!--- cSpell:disable --->Этот текст не проверен.<!--- cSpell:enable --->Этот текст отмечен.
Игнорировать позволяет указать список слов, которые вы хотите игнорировать в документе.
// cSpell:игнорировать zaallano, wooorrdd// cSpell:игнорировать zzooommmmmmmmconst wackyWord = ['zaallano', 'wooorrdd', 'zzooommmmmmmm'];
Примечание: слова, определенные с помощью ignore
будут игнорироваться для всего файла.
Список слов позволяет добавлять слова, которые будут считаться правильными и использоваться в качестве предложений.
// cSpell:words woorxs Sweetbeatconst CompanyName = 'woorxs Sweetbeat';
Примечание. Слова, определенные 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 -- это будет игнорировать шаблоны электронной почты - - см. Предопределенные выражения RegExpvar encodedImage = '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 = 'это не проверяется'for num в seq:# Локальное состояние 'value' будет сохраняться между итерациями variabele += numyield variabele
Urls
1 – соответствует URL-адресам.
HexValues
— соответствует общему шестнадцатеричному формату, например #aaa
, 0xfeef
, u0134
EscapeCharacters
1 — соответствует специальным символам: n
, t
и т. д.
Base64
1 — соответствует блокам текста в формате Base64 длиной более 40 символов.
Email
— соответствует большинству адресов электронной почты.
Everything
1 – по умолчанию мы сопоставляем весь документ и удаляем исключения.
string
— соответствует распространенным строковым форматам, таким как '...', "..." и `...`
CStyleComment
-- Это комментарии стиля C /* */ и //
PhpHereDoc
— соответствует строкам PHPHereDoc.
1. Эти шаблоны являются частью списка включения/исключения по умолчанию для каждого файла.
Конфигурацией проверки правописания можно управлять с помощью настроек VS Code или файла конфигурации cspell.json
.
Порядок приоритета:
Папка рабочей области cspell.json
Папка рабочей области .vscode/cspell.json
Раздел cSpell
«Настройки кода VS».
У вас есть возможность добавлять собственные слова в словарь рабочей области. Самый простой — навести курсор на слово, которое вы хотите добавить, и когда появится лампочка, нажмите Ctrl+.
(окна) / Cmd+.
(Мак). Вы получите список предложений и возможность добавить слово.
Вы также можете ввести слово, которое хотите добавить в словарь: F1
add word
— выберите Add Word to Dictionary
и введите слово, которое хотите добавить.
Слова, добавленные в словарь, помещаются в файл cspell.json
в папке рабочей области . Обратите внимание, что настройки в cspell.json
переопределяют эквивалентные настройки cSpell в файле settings.json
VS Code.
// Настройки cSpell{// Версия файла настроек. Всегда 0.2"version": "0.2",//language - текущий активный язык правописания"language": "en",//words - список слов, которые всегда будут считаться правильными"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, // Слова, которые нужно добавить в словарь для рабочей области. "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] // flagWords — список слов, которые всегда считаются неправильными // Это полезно для оскорбительных слов и распространенных орфографических ошибок. // Например, «hte» должно быть «the»`»cSpell.flagWords»: ["hte"], // Устанавливаем задержку перед проверкой орфографии в документе. По умолчанию — 50. "cSpell.spellCheckDelayMs": 50, // Установить уровень диагностической отчетности // Ошибка — сообщать о проблемах с правописанием как об ошибках // Предупреждение — сообщать о проблемах с правописанием как в предупреждениях // Информация — сообщать о проблемах с правописанием как в информации (по умолчанию) // Подсказка: сообщайте о проблемах с правописанием как подсказки, они не будут отображаться в разделе «Проблемы» cSpell.diagnosticLevel: "Информация",
Программа проверки правописания включает набор словарей по умолчанию.
wordEn — получено из слов американского английского языка Hunspell.
wordEnGb — получено из английских слов Hunspell GB.
компании - Список известных компаний
SoftwareTerms — термины и понятия программного обеспечения, такие как «сопрограмма», «debounce», «дерево» и т. д.
разное — термины, которых нет в других словарях.
typescript — ключевые слова для Typescript и Javascript
node — термины, связанные с использованием nodejs.
php — ключевые слова php и методы библиотеки
go — ключевые слова go и библиотечные методы
Python — ключевые слова Python
powershell — ключевые слова powershell
html — ключевые слова, связанные с html
css — ключевые слова, связанные с css , less и scss
шрифты — длинный список шрифтов — для помощи с CSS
В зависимости от языка программирования будут загружены разные словари.
Вот некоторые из правил по умолчанию:
"*"
соответствует любому языку программирования/типу файла.
"locale"
используется для фильтрации на основе параметра "cSpell.language"
.
{"cSpell.languageSettings": [ { "languageId": '*', "locale": 'en', "словари": ['wordsEn'] }, { "languageId": '*', "locale": 'en-US', "словари": ['wordsEn'] }, { "languageId": '*', "locale": 'en-GB', "словари": ['wordsEnGb'] }, { "languageId": '*', "словари": ['company', 'softwareTerms', 'разное'] }, { "languageId": "python", "словари": ["python"]}, { "languageId": "go", "словари": ["go"] }, { "languageId": "javascript", "словари": ["typescript", "node"] }, { "languageId": "javascriptreact", "dictionaries": ["typescript", "node"] }, { "languageId": "typescript", "dictionaries": ["typescript", "node"] }, { "languageId": "typescriptreact", "dictionaries": ["typescript", "node"] }, { "languageId": "html", "dictionaries": ["html", "fonts", "typescript", "css"] }, { "languageId": "php", "dictionaries": ["php", "html", "fonts", "css", "typescript"] }, { "languageId": "css", "словари": ["fonts", "css"] }, { "languageId": "меньше", "словари": ["шрифты", "css"] }, { "languageId": "scss", "словари": ["шрифты", "css"] },];}
cSpell.customDictionaries
Настройки интерфейса {'cSpell.customDictionaries': {[name: string]: CustomDictionary;};}interface CustomDictionary {/** * @title Имя словаря * Ссылочное имя словаря. * * * Пример: `My Words` или `custom` * * * Если их имя соответствует предопределенному словарю, оно переопределит предопределенный словарь. * Если вы используете `typescript`, он заменит встроенный словарь TypeScript. */name?: DictionaryId;/** * @title Описание словаря * Необязательно: удобочитаемое описание. */description?: string;/** * @title Путь к текстовому файлу словаря * Определите путь к текстовому файлу словаря. * * * **Примечание:** если путь не определен, ожидается, что словарь `name`d будет найден * в `dictionaryDefinitions`. * * * Формат файла: Каждая строка в файле считается словарной статьей. * Регистр сохраняется, а начальный и конечный пробелы удаляются. * Путь должен быть абсолютным или относительным к рабочей области. * * **Пример:** относительно папки пользователя * * ``` * ~/dictionaries/custom_dictionary.txt * ``` * * **Пример:** относительно папки `client` в многокорневой рабочей области * * ``` * ${workspaceFolder:client}/build/custom_dictionary.txt * ``` * * **Пример:** относительно текущей папки рабочей области в однокорневом каталоге workspace * * **Примечание:** в многокорневой рабочей области это может быть не так, как ожидалось, так как она основана на * относительной рабочей области для текущего открытого файла. * * ``` * ${workspaceFolder}/build/custom_dictionary.txt * ``` * * **Пример:** относительно папки рабочего пространства в однокорневом рабочем пространстве или первой папки в * многокорневом рабочем пространстве * * ``` * ./build/custom_dictionary.txt * ``` */path?: FsPath;/** * @title Добавить слова в словарь * Укажите, используется ли этот пользовательский словарь следует использовать для хранения добавленных слов. * @default true */addWords?: boolean;/** * @title Область словаря * Опции: * - `user` — слова, которые применяются ко всем проектам и рабочим пространствам * - `workspace` — слова, которые применяются ко всей рабочей области * - `folder` — слова, относящиеся только к папке рабочей области */scope?: CustomDictionaryScope | CustomDictionaryScope[];}
Чтобы добавить глобальный словарь, вам потребуется изменить настройки пользователя.
В настройках пользователя вам нужно будет указать программе проверки орфографии, где найти список слов.
Пример добавления медицинских терминов, чтобы можно было найти такие слова, как акантоптеригиоз .
Настройки кода VS
"cSpell.customDictionaries": { "myWords": {"name": "myWords", "path": "~/my-words.txt", "scope": "user", "addWords": true }}
Объяснение: в этом примере мы указали средству проверки правописания, где найти наш личный словарь под названием myWords
.
name
- это имя словаря, все ссылки на этот словарь делаются по имени.
path
– это путь к файлу словаря. Поскольку это находится в настройках пользователя, мы должны использовать абсолютные пути или пути относительно каталога пользователя, используя ~/
.
scope
— (необязательно) используется для «охвата» словаря user
, workspace
или folder
. Область видимости используется, чтобы сообщить о предполагаемом использовании словаря.
addWords
— (Необязательно) по умолчанию — true
— используется, чтобы показать/скрыть словарь как возможную цель для добавления слов.
cspell.json
Чтобы добавить словарь на уровне проекта, его необходимо определить в файле cspell.json
, чтобы его можно было использовать с инструментом командной строки cspell
. Этот файл может находиться либо в корне проекта, либо в каталоге .vscode.
Пример добавления медицинских терминов, где термины проверены в проекте, и мы хотим использовать их только для файлов .md.
{"dictionaryDefinitions": [{ "name": "medicalTerms", "path": "./dictionaries/medicalterms-en.txt"}, { "name": "cities", "path": "./dictionaries/ city.txt"}],"dictionaries": ["cities"],"languageSettings": [{ "languageId": "markdown", "dictionaries": ["medicalTerms"] },{ "languageId": "plaintext", "словари": ["medicalTerms"] }]}
Объяснение: в этом примере были определены два словаря: города и медицинские термины . Пути указаны относительно местоположения файла cSpell.json . Это позволяет подключать словари к проекту.
Словарь городов используется для каждого типа файлов, поскольку он был добавлен в список словарей . Словарь медицинских терминов используется только при редактировании файлов уценки или открытого текста .
СловарьОпределение
интерфейс DictionaryDefinition {/** * Это имя словаря. * * Формат имени: * - Должно содержать хотя бы 1 цифру или букву. * - Пробелы разрешены. * - Ведущий и конечный пробел будут удалены. * - Имена чувствительны к регистру. * - Не должно содержать `*`, `!`, `;`, `,`, `{`, `}`, `[`, `]`, `~`. */name: DictionaryId;/** Необязательное описание. */description?: string;/** Путь к текстовому файлу пользовательского словаря. */path: CustomDictionaryPath;/** * Определяет область добавления слов в словарь. * Значения области: `пользователь`, `рабочая область`, `папка`. */scope?: CustomDictionaryScope | CustomDictionaryScope[];/** * Если указано значение true, программа проверки правописания узнает, что слова можно добавлять в этот словарь. */addWords: логическое значение;}
Настройки кода VS
"cSpell.customDictionaries": {