harper/packages/vscode-plugin/package.json
Elijah Potter 3a3136800f
Some checks are pending
Binaries / harper-cli - macOS-aarch64 (push) Waiting to run
Binaries / harper-cli - Linux-aarch64-GNU (push) Waiting to run
Binaries / harper-cli - Linux-aarch64-musl (push) Waiting to run
Binaries / harper-cli - macOS-x86_64 (push) Waiting to run
Binaries / harper-cli - Linux-x86_64-GNU (push) Waiting to run
Binaries / harper-cli - Linux-x86_64-musl (push) Waiting to run
Binaries / harper-ls - macOS-aarch64 (push) Waiting to run
Binaries / harper-ls - Linux-x86_64-GNU (push) Waiting to run
Binaries / harper-ls - Linux-x86_64-musl (push) Waiting to run
Just Checks / just test-harperjs (push) Waiting to run
Just Checks / just test-obsidian (push) Waiting to run
Just Checks / just test-vscode (push) Waiting to run
Binaries / harper-cli - Windows-x86_64 (push) Waiting to run
Binaries / harper-ls - Linux-aarch64-GNU (push) Waiting to run
Binaries / harper-ls - Linux-aarch64-musl (push) Waiting to run
Binaries / harper-ls - macOS-x86_64 (push) Waiting to run
Binaries / harper-ls - Windows-x86_64 (push) Waiting to run
Build Web / build-web (push) Waiting to run
Chrome Plugin / chrome-plugin (push) Waiting to run
Just Checks / just build-obsidian (push) Waiting to run
Just Checks / just check-js (push) Waiting to run
Just Checks / just check-rust (push) Waiting to run
Just Checks / just test-chrome-plugin (push) Waiting to run
Just Checks / just test-firefox-plugin (push) Waiting to run
VS Code Plugin / darwin-arm64 (push) Waiting to run
VS Code Plugin / darwin-x64 (push) Waiting to run
VS Code Plugin / linux-arm64 (push) Waiting to run
VS Code Plugin / linux-x64 (push) Waiting to run
VS Code Plugin / win32-x64 (push) Waiting to run
WordPress Plugin / wp-plugin (push) Waiting to run
Release 0.68.0
harper-brill@0.68.0
harper-comments@0.68.0
harper-core@0.68.0
harper-html@0.68.0
harper-ink@0.68.0
harper-literate-haskell@0.68.0
harper-ls@0.68.0
harper-pos-utils@0.68.0
harper-python@0.68.0
harper-stats@0.68.0
harper-tree-sitter@0.68.0
harper-typst@0.68.0

Generated by cargo-workspaces
2025-10-15 15:39:18 -06:00

2704 lines
93 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"name": "harper",
"displayName": "Harper - Grammar / Spell Checking",
"description": "The grammar checker for developers",
"version": "0.68.0",
"private": true,
"author": "Elijah Potter",
"publisher": "elijah-potter",
"license": "Apache-2.0",
"icon": "icon.png",
"galleryBanner": {
"color": "#F2F2F2",
"theme": "light"
},
"repository": {
"type": "git",
"url": "https://github.com/automattic/harper"
},
"bugs": {
"url": "https://github.com/automattic/harper/issues"
},
"engines": {
"vscode": "^1.96.2"
},
"categories": [
"Other"
],
"keywords": [
"grammar",
"spellcheck",
"writing"
],
"activationEvents": [
"onLanguage:c",
"onLanguage:cmake",
"onLanguage:cpp",
"onLanguage:csharp",
"onLanguage:git-commit",
"onLanguage:go",
"onLanguage:haskell",
"onLanguage:html",
"onLanguage:java",
"onLanguage:javascript",
"onLanguage:javascriptreact",
"onLanguage:kotlin",
"onLanguage:literate haskell",
"onLanguage:lua",
"onLanguage:markdown",
"onLanguage:dart",
"onLanguage:nix",
"onLanguage:php",
"onLanguage:plaintext",
"onLanguage:python",
"onLanguage:ruby",
"onLanguage:rust",
"onLanguage:shellscript",
"onLanguage:solidity",
"onLanguage:swift",
"onLanguage:toml",
"onLanguage:typescript",
"onLanguage:typescriptreact",
"onLanguage:typst",
"onLanguage:clojure"
],
"main": "./build/extension.js",
"contributes": {
"icons": {
"harper-logo": {
"description": "Harper logo",
"default": {
"fontPath": "media/harper.woff",
"fontCharacter": "\\e900"
}
}
},
"commands": [
{
"command": "harper.languageserver.restart",
"title": "Harper: Restart Language Server",
"description": "Restart harper-ls"
}
],
"configuration": {
"type": "object",
"title": "Harper",
"properties": {
"harper.path": {
"scope": "resource",
"type": "string",
"description": "Optional path to a harper-ls executable to use."
},
"harper.codeActions.ForceStable": {
"scope": "resource",
"type": "boolean",
"default": false,
"description": "Make code actions appear in \"stable\" positions by placing code actions that should always be available, like adding misspelled words in the dictionary, first."
},
"harper.dialect": {
"scope": "resource",
"type": "string",
"enum": [
"British",
"American",
"Canadian",
"Australian"
],
"default": "American",
"description": "Set which dialect of English Harper should expect."
},
"harper.diagnosticSeverity": {
"scope": "resource",
"type": "string",
"enum": [
"error",
"hint",
"information",
"warning"
],
"default": "information",
"description": "How severe do you want diagnostics to appear in the editor?"
},
"harper.excludePatterns": {
"scope": "resource",
"type": "array",
"description": "A set of globs to ignore. If a file matches any of the globs, it will not be linted."
},
"harper.fileDictPath": {
"scope": "resource",
"type": "string",
"description": "Optional path to a file dictionary directory to use."
},
"harper.isolateEnglish": {
"scope": "resource",
"type": "boolean",
"default": false,
"description": "Only lint English text in documents that are a mixture of English and another language."
},
"harper.markdown.IgnoreLinkTitle": {
"scope": "resource",
"type": "boolean",
"default": false,
"description": "Skip linting link titles."
},
"harper.maxFileLength": {
"scope": "resource",
"type": "number",
"default": 120000,
"description": "Maximum length of file to be linted (in bytes). If a file is larger than this, it will not be linted."
},
"harper.userDictPath": {
"scope": "resource",
"type": "string",
"description": "Optional path to a user dictionary file to use."
},
"harper.workspaceDictPath": {
"scope": "resource",
"type": "string",
"description": "Optional path to a workspace-local dictionary file to use."
},
"harper.linters.ACoupleMore": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `a couple of more` to `a couple more`."
},
"harper.linters.ALongTime": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `along time` to `a long time`."
},
"harper.linters.APart": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Finds and corrects common mistakes between 'a part' and 'apart'"
},
"harper.linters.Addicting": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Replaces `addicting` with `addictive` when used as an adjective."
},
"harper.linters.AdjectiveDoubleDegree": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Finds adjectives that are used as double degrees (e.g. `more prettier`)."
},
"harper.linters.AdjectiveOfA": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "This rule looks for sequences of words of the form `adjective of a`."
},
"harper.linters.Ado": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `adieu` to `ado`."
},
"harper.linters.AfterAWhile": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the missing article in `after while`, forming `after a while`."
},
"harper.linters.AheadAnd": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `an` to `and` after `ahead`."
},
"harper.linters.AllIntentsAndPurposes": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Finds redundant am/pm indicators used together with time periods such as 'in the morning' or 'at night'."
},
"harper.linters.AllOfASudden": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `all of the sudden` to `all of a sudden`."
},
"harper.linters.AlzheimersDisease": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Fixes the common misnomer `old-timers' disease`, ensuring the correct medical term `Alzheimers disease` is used."
},
"harper.linters.AmInTheMorning": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Finds redundant am/pm indicators used together with time periods such as 'in the morning' or 'at night'."
},
"harper.linters.AmazonNames": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to the various products of Amazon.com, make sure to treat them as a proper noun."
},
"harper.linters.Americas": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to North, Central, and South America, make sure to treat them as a proper noun."
},
"harper.linters.AmountsFor": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `amounts for` to either `amounts to` or `accounts for`"
},
"harper.linters.AnA": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "A rule that looks for incorrect indefinite articles. For example, `this is an mule` would be flagged as incorrect."
},
"harper.linters.AnAnother": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `an another` and `a another`."
},
"harper.linters.AndIn": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Fixes the incorrect phrase `an in` to `and in` for proper conjunction usage."
},
"harper.linters.AndTheLike": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Fixes the typo in `and the like`."
},
"harper.linters.AnotherAn": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `another an` to `another`."
},
"harper.linters.AnotherOnes": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `another ones`."
},
"harper.linters.AnotherThingComing": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Though `another think coming` is the original phrase, `another thing coming` is now more common."
},
"harper.linters.AnotherThings": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `another things`."
},
"harper.linters.AnotherThinkComing": {
"scope": "resource",
"type": "boolean",
"default": false,
"description": "Though `another thing coming` is now more common, `another think coming` is the original phrase."
},
"harper.linters.Anybody": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `anybody`."
},
"harper.linters.Anyhow": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `anyhow`."
},
"harper.linters.Anywhere": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `anywhere`."
},
"harper.linters.AppleNames": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to Apple products and services, make sure to treat them as proper nouns."
},
"harper.linters.AsFarAsIKnow": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands an initialism."
},
"harper.linters.AsFarBackAs": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects nonstandard `as early back as` to `as far back as`."
},
"harper.linters.AsIfThough": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects redundant `as if though`."
},
"harper.linters.AsItHappens": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `as it so happens` to `as it happens`."
},
"harper.linters.AsLongAs": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `aslong as` to `as long as`."
},
"harper.linters.AsOfLate": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `as of lately` to `as of late`."
},
"harper.linters.AsSoonAsPossible": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands an initialism."
},
"harper.linters.AskNoPreposition": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Identifies sequences like `ask to us` or `tell to him` and recommends removing the superfluous “to”."
},
"harper.linters.AtFaceValue": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `on face value` to the more usual `at face value`."
},
"harper.linters.AtTheEndOfTheDay": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `in the end of the day` to `at the end of the day`."
},
"harper.linters.Australia": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to the states of Australia, make sure to treat them as a proper noun."
},
"harper.linters.AvoidAndAlso": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Reduces redundancy by replacing `and also` with `and`."
},
"harper.linters.AvoidCurses": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags offensive language and offers various ways to censor or replace with euphemisms."
},
"harper.linters.AzureNames": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to Azure cloud services, make sure to treat them as proper nouns."
},
"harper.linters.BackInTheDay": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "This linter flags instances of the nonstandard phrase `back in the days`. The correct, more accepted form is `back in the day`"
},
"harper.linters.Backplane": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `backplane`."
},
"harper.linters.BadRap": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Changes `bed rap` to the proper idiom `bad rap`."
},
"harper.linters.BanTogether": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects and corrects the common error of using `ban together` instead of the idiom `band together`, which means to unite or join forces."
},
"harper.linters.BareInMind": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures the phrase `bear in mind` is used correctly instead of `bare in mind`."
},
"harper.linters.BatedBreath": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Changes `baited breath` to the correct `bated breath`."
},
"harper.linters.BeRightBack": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands an initialism."
},
"harper.linters.BeckAndCall": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Fixes `back and call` to `beck and call`."
},
"harper.linters.BeenThere": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the misspelling `bee there` to the proper phrase `been there`."
},
"harper.linters.Beforehand": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "`Beforehand` functions as a fixed adverb meaning in advance; writing it as two words or with a hyphen is nonstandard and can jar readers."
},
"harper.linters.BesideThePoint": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `besides the point` to `beside the point`."
},
"harper.linters.BestOfAllTime": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Checks for nonstandard `of all times` in superlatives instead of singular `time`"
},
"harper.linters.BestRegards": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "In valedictions, `best` expresses your highest regard—avoid the typo `beat regards`."
},
"harper.linters.BlanketStatement": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects common errors in the phrase `blanket statement`."
},
"harper.linters.BoringWords": {
"scope": "resource",
"type": "boolean",
"default": false,
"description": "This rule looks for particularly boring or overused words. Using varied language is an easy way to keep a reader's attention."
},
"harper.linters.Brutality": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Suggests the more standard and common synonym `brutality`."
},
"harper.linters.BuiltIn": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "English convention treats `built-in` as a single, attributive adjective—meaning something integrated from the outset—whereas other forms like `in built` are non-standard and can feel awkward to readers."
},
"harper.linters.ByAccident": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Incorrect preposition: `by accident` is the idiomatic expression."
},
"harper.linters.ByTheWay": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands an initialism."
},
"harper.linters.CanBeSeen": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `can be seem` to the proper phrase `can be seen`."
},
"harper.linters.Canada": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to the provinces of Canada, make sure to treat them as a proper noun."
},
"harper.linters.Cant": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Suggests correcting `cant` to `can't`."
},
"harper.linters.CapitalizePersonalPronouns": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Forgetting to capitalize personal pronouns, like \"I\" or \"I'm\" is one of the most common errors. This rule helps with that."
},
"harper.linters.CaseInPoint": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `case and point` to `case in point`."
},
"harper.linters.CaseSensitive": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures `case-sensitive` is correctly hyphenated."
},
"harper.linters.ChampAtTheBit": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `chomp at the bit` to the idiom `champ at the bit`, which has an equestrian origin referring to the way an anxious horse grinds its teeth against the metal part of the bridle."
},
"harper.linters.ChangeTack": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Locates errors in the idioms `to change tack` and `change of tack` to convey the correct meaning of altering one's course or strategy."
},
"harper.linters.ChineseCommunistParty": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to the political party, make sure to treat them as a proper noun."
},
"harper.linters.ChockFull": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags common soundalikes of \"chock-full\" and makes sure they're hyphenated."
},
"harper.linters.ClientOrServerSide": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects extraneous apostrophe in `client's side` and `server's side`."
},
"harper.linters.CommaFixes": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Fix common comma errors such as no space after, erroneous space before, etc., Asian commas instead of English commas, etc."
},
"harper.linters.CompaniesProductsAndTrademarks": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensure proper capitalization of companies, products, and trademarks."
},
"harper.linters.CompoundNouns": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects compound nouns split by a space and suggests merging them when both parts form a valid noun."
},
"harper.linters.CondenseAllThe": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Suggests removing `of` in `all of the` for a more concise phrase."
},
"harper.linters.Confident": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "This linter detects instances where the noun `confidant` is incorrectly used in place of the adjective `confident`. `Confidant` refers to a trusted person, whereas `confident` describes certainty or self-assurance. The rule suggests replacing `confidant` with `confident` when used in an adjectival context."
},
"harper.linters.ConfirmThat": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `conform` typos to `confirm`."
},
"harper.linters.CorrectNumberSuffix": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When making quick edits, it is common for authors to change the value of a number without changing its suffix. This rule looks for these cases, for example: `2st`."
},
"harper.linters.Countries": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to Countries, make sure to treat it as a proper noun."
},
"harper.linters.CoursingThroughVeins": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "In English idioms, “to course” means to flow rapidly—so avoid the eggcorn `cursing through veins.`"
},
"harper.linters.CriteriaPhenomena": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "The words “criteria” and “phenomena” are the plurals of “criterion” and “phenomenon”, respectively. They are often incorrectly used as singular."
},
"harper.linters.CurrencyPlacement": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "The location of currency symbols varies by country. The rule looks for and corrects improper positioning."
},
"harper.linters.DampSquib": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the eggcorn `damp squid` to `damp squib`, ensuring the intended meaning of a failed or underwhelming outcome."
},
"harper.linters.Dashes": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Writers often type `--` or `---` expecting their editor to convert them into proper dashes. Replace these sequences with the correct characters: use an en dash () for ranges or connections and an em dash (—) for a break in thought."
},
"harper.linters.DayAndAge": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the eggcorn `day in age` to `day and age`, which properly means the current era or time period."
},
"harper.linters.DayOneNames": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensure proper capitalization of Day One and Day One Premium as brand names."
},
"harper.linters.DefiniteArticle": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "The name of the word `the` is `definite article`."
},
"harper.linters.DegreesKelvin": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects use of `degrees kelvin` to `kelvins`."
},
"harper.linters.DegreesKelvinSymbol": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects use of `°K` to `K`."
},
"harper.linters.Desktop": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `desktop`."
},
"harper.linters.DespiteOf": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the misuse of `despite of` and suggests the proper alternatives `despite` or `in spite of`."
},
"harper.linters.Devops": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `devops`."
},
"harper.linters.Didnt": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `dint` to `didn't` after subject pronouns."
},
"harper.linters.DigestiveTract": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `digestive track` to `digestive tract`."
},
"harper.linters.DiscourseMarkers": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags sentences that begin with a discourse marker but omit the required following comma."
},
"harper.linters.Discuss": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Removes unnecessary `about` after `discuss`."
},
"harper.linters.DoNotWant": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "In English, negation still requires the complete verb form (“want”), so avoid truncating it to “wan.”"
},
"harper.linters.DoesOrDose": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Tries to correct typos of `dose` to `does`."
},
"harper.linters.DontCan": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `don't can` to `can't` or `cannot`."
},
"harper.linters.DotInitialisms": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures common initialisms (like \"i.e.\") are properly dot-separated."
},
"harper.linters.DoubleModal": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Two modal verbs in a row are rarely grammatical; remove one of them."
},
"harper.linters.EachAndEveryOne": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `each and everyone` to `each and every one`."
},
"harper.linters.EllipsisLength": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Make sure you have the correct number of dots in your ellipsis."
},
"harper.linters.ElsePossessive": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects missing apostrophes in phrases like `someone elses book` and suggests the correct possessive form `elses`."
},
"harper.linters.EludedTo": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `eluded to` to `alluded to` in contexts referring to indirect references."
},
"harper.linters.EnMasse": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects variants like `on mass` or `in mass` and suggests `en masse`."
},
"harper.linters.EnRoute": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects variants like `on route` or `in route` and suggests `en route`."
},
"harper.linters.EverPresent": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the missing hyphen in `ever present` to the compound adjective `ever-present`."
},
"harper.linters.EverSince": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `every since` to `ever since`."
},
"harper.linters.EveryTime": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `everytime` to `every time`."
},
"harper.linters.Everybody": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `everybody`."
},
"harper.linters.Everyday": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "This rule tries to sort out confusing the adjective `everyday` and the adverb `every day`."
},
"harper.linters.Everyone": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `everyone`."
},
"harper.linters.Everywhere": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `everywhere`."
},
"harper.linters.Excellent": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Provides a stronger word choice by replacing `very good` with `excellent` for clarity and emphasis."
},
"harper.linters.ExpandArgument": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands the abbreviation `arg` to the full word `argument` for clarity."
},
"harper.linters.ExpandBecause": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands the informal abbreviation `cuz` to the full word `because` for formality."
},
"harper.linters.ExpandDependencies": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands the abbreviation `deps` to the full word `dependencies` for clarity."
},
"harper.linters.ExpandMemoryShorthands": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands memory-related abbreviations (`B`, `kB`, `MB`, `GB`, `TB`, `PB`, `KiB`, `MiB`, `GiB`, `TiB`, `PiB`, etc.) to their full forms (`byte`, `kilobyte`, `megabyte`, `gigabyte`, `terabyte`, `petabyte`, `kibibyte`, `mebibyte`, `gibibyte`, `tebibyte`, `pebibyte`, etc.)."
},
"harper.linters.ExpandMinimum": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands the abbreviation `min` to the full word `minimum` for clarity."
},
"harper.linters.ExpandStandardInputAndOutput": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands the abbreviations `stdin`, `stdout`, and `stderr` to the full words `standard input`, etc. for clarity."
},
"harper.linters.ExpandTimeShorthands": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands time-related abbreviations (`hr`, `hrs`, `min`, `mins`, `sec`, `secs`, `ms`, `msec`, `msecs`) to their full forms (`hour`, `hours`, `minute`, `minutes`, `second`, `seconds`, `millisecond`, `milliseconds`)."
},
"harper.linters.ExpandWith": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands the abbreviation `w/` to the full word `with` for clarity."
},
"harper.linters.ExpandWithout": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands the abbreviation `w/o` to the full word `without` for clarity."
},
"harper.linters.Expatriate": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Fixes the misinterpretation of `expatriate`, ensuring the correct term is used for individuals residing abroad."
},
"harper.linters.ExplanationMark": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the eggcorn `explanation mark/point` to `exclamation mark/point`."
},
"harper.linters.ExtendOrExtent": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `extend` to `extent` when the context is a noun."
},
"harper.linters.FaceFirst": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures `face first` is correctly hyphenated as `face-first` when used before `into`."
},
"harper.linters.FairBit": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects malapropisms of `a fair bit`."
},
"harper.linters.FarAndFewBetween": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `far and few between` to the standard idiom `few and far between`."
},
"harper.linters.FastPaste": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects incorrect usage of `fast paste` or `fast-paste` and suggests `fast-paced` as the correct phrase."
},
"harper.linters.FatalOutcome": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Replaces `fatal outcome` with the more direct term `death` for conciseness."
},
"harper.linters.FeelFell": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects some expressions using `fell` where `feel` is correct."
},
"harper.linters.FetalPosition": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures the correct use of `fetal position`, avoiding confusion with `feeble position`, which is not a standard phrase."
},
"harper.linters.FewUnitsOfTimeAgo": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects some expressions using `few` where `a few` is correct."
},
"harper.linters.FillerWords": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Removes filler words."
},
"harper.linters.FirstAidKit": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects when “kid” after “aid”, “starter”, “travel”, or “tool” should be “kit” (a set of supplies)."
},
"harper.linters.FootTheBill": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `flip the bill` to `foot the bill`."
},
"harper.linters.ForALongTime": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Eliminates the incorrect merging in `for along time`."
},
"harper.linters.ForAWhile": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the missing article in `for while`, forming `for a while`."
},
"harper.linters.ForNoun": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the archaic or mistaken `fro` to `for` when followed by a noun."
},
"harper.linters.ForYourInformation": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands an initialism."
},
"harper.linters.FreeRein": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures the correct use of `free rein`, avoiding confusion with `free reign`, which incorrectly suggests authority rather than freedom of action."
},
"harper.linters.Freezing": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Encourages vivid writing by suggesting `freezing` instead of weaker expressions like `very cold.`"
},
"harper.linters.FriendOfMe": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects wrong pronoun usage in constructions like `a friend of me`."
},
"harper.linters.FromTheGetGo": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures `from the get-go` is correctly hyphenated, preserving the idioms meaning of from the very beginning."
},
"harper.linters.Furthermore": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `furthermore`."
},
"harper.linters.GetRidOf": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects common misspellings of the idiom `get rid of`."
},
"harper.linters.GildedAge": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "If referring to the period of economic prosperity, the correct term is `Gilded Age`."
},
"harper.linters.GoingTo": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `gong to` to the intended phrase `going to`."
},
"harper.linters.GoogleNames": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to Google products and services, make sure to treat them as proper nouns."
},
"harper.linters.GuineaBissau": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Checks for the correct official name of the African country."
},
"harper.linters.HadOf": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags the unnecessary use of `of` after `had` and suggests the correct forms."
},
"harper.linters.HalfAnHour": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Fixes the eggcorn `half an our` to the accepted `half an hour`."
},
"harper.linters.Haphazard": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the eggcorn `half hazard` to `haphazard`, which properly means lacking organization or being random."
},
"harper.linters.HavePassed": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Suggests `past` for `passed` in case a verb was intended."
},
"harper.linters.HavePronoun": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags questions that begin with `has` followed by a pronoun that requires `have`, such as `Has we …` or `Has I …`, and suggests the correct auxiliary."
},
"harper.linters.HaveTakeALook": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects either `have a look` or `take a look` to the other, depending on the dialect."
},
"harper.linters.Hedging": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags hedging language (e.g. `I would argue that`, `..., so to speak`, `to a certain degree`)."
},
"harper.linters.Henceforth": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `henceforth`."
},
"harper.linters.Hereby": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "`Here by` in some contexts should be `hereby`"
},
"harper.linters.Holidays": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to holidays, make sure to treat them as a proper noun."
},
"harper.linters.HomeInOn": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `hone in on` to `home in on`."
},
"harper.linters.HopHope": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Handles common errors involving `hop` and `hope`. Ensures `hop` is used correctly in phrases like `hop on a bus` while correcting mistaken uses of `hope` in contexts where `hop` is expected."
},
"harper.linters.HowItLooksLike": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `how ... looks like` to `how ... looks` or `what ... looks like`."
},
"harper.linters.HowTo": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects the omission of `to` in constructions like `how clone / how install` and suggests `how to …`."
},
"harper.linters.However": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `however`."
},
"harper.linters.HumanBeings": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Eliminates the incorrect possessive/plural usage like `human's beings` or `humans beings`."
},
"harper.linters.HumanLife": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Changes `human live` to `human life`."
},
"harper.linters.HungerPang": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `hunger pain` to `hunger pang`."
},
"harper.linters.HyphenateNumberDay": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures a hyphen is used in `X-day` when it is part of a compound adjective, such as `4-day work week`."
},
"harper.linters.IAm": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Fixes the incorrect spacing in `I a m` to properly form `I am`."
},
"harper.linters.IAmAgreement": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `I are` to `I am`."
},
"harper.linters.IDo": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `I does` to `I do`."
},
"harper.linters.InAWhile": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the missing article in `in while`, forming `in a while`."
},
"harper.linters.InAnyWay": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects ungrammatical `in anyway` to `in any way`."
},
"harper.linters.InDetail": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects unidiomatic plural `in details` to `in detail`."
},
"harper.linters.InMyHumbleOpinion": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands an initialism."
},
"harper.linters.InMyOpinion": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands an initialism."
},
"harper.linters.InNeedOf": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `in need for` to `in need of`."
},
"harper.linters.InOfItself": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects nonstandard `in of itself` to standard `in itself` or `in and of itself`."
},
"harper.linters.InOnTheCards": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects either `in the cards` or `on the cards` to the other, depending on the dialect."
},
"harper.linters.InOneFellSwoop": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `in one foul swoop` to `in one fell swoop`, preserving the phrases original meaning of sudden and complete action."
},
"harper.linters.InThe": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects and corrects a spacing error where `in the` is mistakenly written as `int he`. Proper spacing is essential for readability and grammatical correctness in common phrases."
},
"harper.linters.InflectedVerbAfterTo": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "This rule looks for `to verb` where `verb` is not in the infinitive form."
},
"harper.linters.Insensitive": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Suggests the more standard and common synonym `insensitive`."
},
"harper.linters.Insofar": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `insofar`."
},
"harper.linters.Instead": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `instead`."
},
"harper.linters.InsteadOf": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the archaic or mistaken separation `in stead of` to `instead of` in everyday usage."
},
"harper.linters.Insurmountable": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Suggests the more standard and common synonym `insurmountable`."
},
"harper.linters.Intact": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Prevents the erroneous spacing in `in tact`; `intact` is the single correct word."
},
"harper.linters.InterestedIn": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures the correct preposition is used with the word `interested` (e.g. `interested in`)."
},
"harper.linters.InvestIn": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "`Invest` is traditionally followed by 'in,' not `into.`"
},
"harper.linters.IsKnownFor": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Typo: `known` is the correct past participle."
},
"harper.linters.ItCan": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the misspelling `It cam` to the proper phrase `It can`."
},
"harper.linters.ItLooksLikeThat": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `it looks like that` to just `it looks like`."
},
"harper.linters.ItsContraction": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects the possessive `its` before `had`, `been`, or `got` and offers `it's` or `it has`."
},
"harper.linters.ItsPossessive": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "In English, possessive pronouns never take an apostrophe. Use `its` to show ownership (e.g. “its texture”) and avoid confusing it with `it's`, which always means “it is” or “it has.”"
},
"harper.linters.Itself": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `itself`."
},
"harper.linters.IveGotTo": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the slip `I've go to` to the idiomatic `I've got to`."
},
"harper.linters.JawDropping": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `jar-dropping` to `jaw-dropping`, ensuring the intended meaning of something that causes amazement."
},
"harper.linters.JetpackNames": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensure proper capitalization of Jetpack-related terms."
},
"harper.linters.JustDeserts": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures `just deserts` is used correctly, preserving its meaning of receiving an appropriate outcome for one's actions."
},
"harper.linters.KindOf": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `kinda of` to `kind of`."
},
"harper.linters.KindRegards": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Changes `kid regards` to `kind regards`."
},
"harper.linters.Koreas": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to the nations, make sure to treat them as a proper noun."
},
"harper.linters.Laptop": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `laptop`."
},
"harper.linters.LastButNotLeast": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects common errors in the phrase `last but not least`."
},
"harper.linters.LastDitch": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects wrong variations of the idiomatic adjective `last-ditch`."
},
"harper.linters.LeftRightHand": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures `left hand` and `right hand` are hyphenated when used as adjectives before a noun, such as in `left-hand side` or `right-hand corner`."
},
"harper.linters.LessWorse": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Suggests alternatives to `less/least worse/worst` for more standard, clearer comparisons."
},
"harper.linters.LetAlone": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Changes `let along` to `let alone`."
},
"harper.linters.LetsConfusion": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "It's often hard to determine where the subject should go with the word `let`. This rule attempts to find common errors with redundancy and contractions that may lead to confusion for readers."
},
"harper.linters.LikeAsIf": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects redundant `like as if` to `like` or `as if`."
},
"harper.linters.LikeThePlague": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `like a plague` to `like the plague`."
},
"harper.linters.Likewise": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `likewise`."
},
"harper.linters.LitotesDirectPositive": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Offers direct-positive alternatives when double negatives might feel heavy."
},
"harper.linters.LongSentences": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "This rule looks for run-on sentences, which can make your work harder to grok."
},
"harper.linters.LookingForwardTo": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "This rule identifies instances where the phrase `looking forward to` is followed by a base form verb instead of the required gerund (verb + `-ing` form)."
},
"harper.linters.LowHangingFruit": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects non-standard variants of `low-hanging fruit`."
},
"harper.linters.MakeDoWith": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `make due` to `make do` when followed by `with`."
},
"harper.linters.MakeItSeem": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `make it seems` to `make it seem`."
},
"harper.linters.Malaysia": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to the states of Malaysia and their capitals, make sure to treat them as a proper noun."
},
"harper.linters.ManagerialReins": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the eggcorn `managerial reigns` to the idiomatic `managerial reins`."
},
"harper.linters.MassPlurals": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for plural forms of mass nouns that have no plural."
},
"harper.linters.MergeWords": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Accidentally inserting a space inside a word is common. This rule looks for valid words that are split by whitespace."
},
"harper.linters.MetaNames": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to Meta products and services, make sure to treat them as proper nouns."
},
"harper.linters.MicrosoftNames": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to Microsoft products and services, make sure to treat them as proper nouns."
},
"harper.linters.Middleware": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `middleware`."
},
"harper.linters.MissingPreposition": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Locates potentially missing prepositions."
},
"harper.linters.MissingTo": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags verbs and adjectives like `need`, `want`, or `ready` that are missing `to` before an infinitive."
},
"harper.linters.Misspell": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures `misspell` and its inflected forms are written as a single word."
},
"harper.linters.Misunderstand": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `misunderstand`."
},
"harper.linters.Misunderstood": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `misunderstood`."
},
"harper.linters.Misuse": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `misuse`."
},
"harper.linters.Misused": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `misused`."
},
"harper.linters.MixedBag": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the eggcorn `mixed bad` to `mixed bag`."
},
"harper.linters.ModalOf": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects `of` mistakenly used with `would`, `could`, `should`, etc."
},
"harper.linters.Months": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects months written with a lowercase first letter."
},
"harper.linters.Monumentous": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Advises using `momentous` or `monumental` instead of `monumentous` for serious usage."
},
"harper.linters.MootPoint": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `mute` to `moot` in the phrase `moot point`."
},
"harper.linters.MostNumber": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `most number` and `most amount`"
},
"harper.linters.Multicore": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `multicore`."
},
"harper.linters.Multimedia": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `multimedia`."
},
"harper.linters.MultipleSequentialPronouns": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When editing work to change point of view (i.e. first-person or third-person) it is common to add pronouns while neglecting to remove old ones. This rule catches cases where you have multiple disparate pronouns in sequence."
},
"harper.linters.Multithreading": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `multithreading`."
},
"harper.linters.MyHouse": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Fixes the typo `mu house` to `my house`."
},
"harper.linters.Myself": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `myself`."
},
"harper.linters.NailOnTheHead": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Replaces hat/had/hit/hid in the idiom `nail on the head` with `head`."
},
"harper.linters.NationalCapitals": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to national capitals, make sure to treat it as a proper noun."
},
"harper.linters.NeedHelp": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Changes `ned help` to the correct `need help`."
},
"harper.linters.NerveRacking": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects common misspellings and missing hyphen in `nerve-racking`."
},
"harper.linters.NeverMind": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands an initialism."
},
"harper.linters.NoFrenchSpaces": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Stops users from accidentally inserting French spaces."
},
"harper.linters.NoMatchFor": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "No match for"
},
"harper.linters.NoOxfordComma": {
"scope": "resource",
"type": "boolean",
"default": false,
"description": "The Oxford comma is one of the more controversial rules in common use today. Enabling this lint checks that there is no comma before `and`, `or` or `nor` when listing out more than two ideas."
},
"harper.linters.Nobody": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `nobody`."
},
"harper.linters.NominalWants": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures you use the correct `want` / `wants` after a nominal."
},
"harper.linters.Nonetheless": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `nonetheless`."
},
"harper.linters.NotIn": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Replaces `no in` with `not in`."
},
"harper.linters.NotTo": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `no to` to `not to`, ensuring proper negation."
},
"harper.linters.NotablePlaces": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensure proper capitalization of notable places that are significant regional centers, travel destinations, or have international importance."
},
"harper.linters.Nothing": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `nothing`."
},
"harper.linters.Notwithstanding": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `notwithstanding`."
},
"harper.linters.NounCountability": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Correct mass nouns that are preceded by the wrong determiners or quantifiers."
},
"harper.linters.NounVerbConfusion": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Handles common confusions between related nouns and verbs (e.g., 'advice/advise', 'breath/breathe')"
},
"harper.linters.Nowhere": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `nowhere`."
},
"harper.linters.NumberSuffixCapitalization": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "You should never capitalize number suffixes."
},
"harper.linters.OceansAndSeas": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to the world's oceans and seas, ensure they are treated as proper nouns."
},
"harper.linters.OfCourse": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects the common mistake `off course` and suggests the correct form `of course`."
},
"harper.linters.OffTheCuff": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures `off-the-cuff` is correctly hyphenated."
},
"harper.linters.OhMyGod": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands an initialism."
},
"harper.linters.OldWivesTale": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `old wise tale` to `old wives' tale`, preserving the phrases meaning as an unfounded traditional belief."
},
"harper.linters.OnFloor": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "This rule identifies incorrect uses of the prepositions `in` or `at` when referring to locations inside a building and recommends using `on the floor` instead."
},
"harper.linters.OnSecondThought": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Replaces the nonstandard `on second though` with the common idiom `on second thought` to indicate reconsideration."
},
"harper.linters.OnTheSpurOfTheMoment": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures the correct use of `on the spur of the moment`, avoiding nonstandard variations."
},
"harper.linters.OnTopOf": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `ontop of` to `on top of`."
},
"harper.linters.OnceInAWhile": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects two common malapropisms of `once in a while`."
},
"harper.linters.OnceOrTwice": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects the mistaken phrase `once a twice` and suggests `once or twice`."
},
"harper.linters.OneAndTheSame": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "This linter flags instances of the nonstandard phrase `one in the same`. The correct, more accepted form is `one and the same`"
},
"harper.linters.OpenCompounds": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects compound words that should be written as two words."
},
"harper.linters.OpenTheLight": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects using `open` instead of `turn on` or `switch on`"
},
"harper.linters.OperatingSystem": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures `operating system` is used correctly instead of `operative system`."
},
"harper.linters.OughtToBe": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects the mistaken `out to be` and suggests `ought to be`, while ignoring legitimate phrasal-verb uses such as `turn out to be` and `make it out to be`."
},
"harper.linters.OutOfDate": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures that the phrase `out of date` is written with a hyphen as `out-of-date` when used as a compound adjective."
},
"harper.linters.Overall": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `overall`."
},
"harper.linters.Overclocking": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `overclocking`."
},
"harper.linters.Overload": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `overload`."
},
"harper.linters.Overnight": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `overnight`."
},
"harper.linters.OxfordComma": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "The Oxford comma is one of the more controversial rules in common use today. Enabling this lint checks that there is a comma before `and`, `or`, or `nor` when listing out more than two ideas."
},
"harper.linters.Oxymorons": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags oxymoronic phrases (e.g. `amateur expert`, `increasingly less`, etc.)."
},
"harper.linters.PeaceOfMind": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `piece of mind` to `peace of mind`."
},
"harper.linters.PhrasalVerbAsCompoundNoun": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "This rule looks for phrasal verbs written as compound nouns."
},
"harper.linters.Piggyback": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the eggcorn `piggy bag` to `piggyback`, which is the proper term for riding on someones back or using an existing system."
},
"harper.linters.PiqueInterest": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects incorrect usage of `peak` or `peek` when the intended word is `pique`, as in the phrase `you've peaked my interest`."
},
"harper.linters.PocketCastsNames": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensure proper capitalization of Pocket Casts and Pocket Casts Plus as brand names."
},
"harper.linters.PointsOfView": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects pluralizing the wrong noun in `point of view`."
},
"harper.linters.PortAuPrince": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Checks for the correct official name of the capital of Haiti."
},
"harper.linters.PortoNovo": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Checks for the correct official name of the capital of Benin."
},
"harper.linters.PossessiveNoun": {
"scope": "resource",
"type": "boolean",
"default": false,
"description": "Use an apostrophe and `s` to form a nouns possessive."
},
"harper.linters.PossessiveYour": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "The possessive form of `you` is more likely before nouns."
},
"harper.linters.Postpone": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `postpone`."
},
"harper.linters.PrayingMantis": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `preying mantis` to `praying mantis`, ensuring accurate reference to the insects characteristic pose."
},
"harper.linters.ProgressiveNeedsBe": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects the ungrammatical patterns `<pronoun> have …ing` (e.g., `I have …ing`) and `<pronoun>'ve …ing` (e.g., `I've …ing`) and suggests either the present progressive (e.g., `I'm/We're/You're/They're …`) or the present perfect progressive (e.g., `I/We/You/They have been …` or `I've/We've/You've/They've been …`)."
},
"harper.linters.PronounContraction": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Choosing when to contract pronouns is a challenging art. This rule looks for faults."
},
"harper.linters.PronounInflectionBe": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Checks subjectverb agreement for the verb `be`. Third-person singular pronouns (`he`, `she`, `it`) require the singular form `is`, while the plural pronoun `they` takes `are`. The linter flags mismatches such as `He are` or `They is` and offers the correct concord."
},
"harper.linters.PronounKnew": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects when “new” following a pronoun (optionally with an adverb) is a typo for the past tense “knew.”"
},
"harper.linters.Proofread": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `proofread`."
},
"harper.linters.ProperNouns": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensure proper capitalization of proper nouns."
},
"harper.linters.QuantifierNeedsOf": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects missing `of` after the quantifier “a couple” when it precedes a plural noun"
},
"harper.linters.QuiteQuiet": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Helps distinguish between quiet (making little noise) and quite (meaning rather)."
},
"harper.linters.QuoteSpacing": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Checks that quotation marks are preceded or succeeded by whitespace."
},
"harper.linters.RapidFire": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Checks to ensure writers hyphenate `rapid-fire`."
},
"harper.linters.RealTrouper": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures the correct use of `real trouper`, distinguishing it from `trooper`, which refers to a soldier or police officer."
},
"harper.linters.RedundantAdditiveAdverbs": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects redundant additive adverbs."
},
"harper.linters.RedundantIIRC": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags redundant use of 'if' or 'correctly' with 'IIRC', since 'IIRC' already stands for 'if I recall correctly'."
},
"harper.linters.RedundantSuperlatives": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Simplifies redundant double positives like `most optimal` to the base form."
},
"harper.linters.Regardless": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `regardless`."
},
"harper.linters.Regionalisms": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Regionalisms"
},
"harper.linters.RepeatedWords": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "This rule looks for repetitions of words that are not homographs."
},
"harper.linters.RifeWith": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `ripe with` to `rife with`, preserving the phrases meaning of being filled with something, often undesirable."
},
"harper.linters.RiseTheQuestion": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `rise the question` to `raise the question`."
},
"harper.linters.RoadMap": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects when `roadmap` is used instead of `road map`, prompting the correct spacing."
},
"harper.linters.RulesOfThumb": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects pluralizing the wrong noun in `rule of thumb`."
},
"harper.linters.SameAs": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the incorrect phrase `same then` to the standard `same as`."
},
"harper.linters.SaveToSafe": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `save to <verb>` to `safe to <verb>` after a form of `be`."
},
"harper.linters.ScantilyClad": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Fixes `scandally clad` to `scantily clad`, ensuring clarity in describing minimal attire."
},
"harper.linters.SemicolonApostrophe": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects semicolons accidentally typed instead of apostrophes."
},
"harper.linters.SentenceCapitalization": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "The opening word of a sentence should almost always be capitalized."
},
"harper.linters.ShootOneselfInTheFoot": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects non-standard variants of 'shoot oneself in the foot'."
},
"harper.linters.SimpleGrammatical": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `simply grammatical` to `simple grammatical` for proper adjective usage."
},
"harper.linters.SimplePastToPastParticiple": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects simple past tense verbs to past participle after auxiliary verbs like \"have\" or \"be\"."
},
"harper.linters.SinceDuration": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects the use of 'since' with a duration instead of a point in time."
},
"harper.linters.SneakingSuspicion": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Changes `sneaky suspicion` to `sneaking suspicion`."
},
"harper.linters.SomeOfThe": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Quantity words such as `some` normally take `of` before a definite article. Including `of` signals that you mean a subset of a larger set, preventing a momentary stumble in comprehension."
},
"harper.linters.Somebody": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `somebody`."
},
"harper.linters.SomebodyElses": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `somebody else's` when the `'s` is in the wrong place."
},
"harper.linters.Somehow": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `somehow`."
},
"harper.linters.Someone": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `someone`."
},
"harper.linters.SomethingIs": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags forms like `somethings` before progressive verbs and suggests using `something's` or `something is`."
},
"harper.linters.SomewhatSomething": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags the phrase `somewhat of a` in favor of `something of a`, which can be considered more traditional."
},
"harper.linters.Somewhere": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `somewhere`."
},
"harper.linters.SoonerOrLater": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Fixes the improper phrase `sooner than later` by suggesting standard alternatives."
},
"harper.linters.SoughtAfter": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Correct `sort after` to `sought after`"
},
"harper.linters.Spaces": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Words should be separated by at most one space."
},
"harper.linters.SpecialAttention": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Changes `spacial attention` to `special attention`."
},
"harper.linters.SpellCheck": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks and provides corrections for misspelled words."
},
"harper.linters.SpelledNumbers": {
"scope": "resource",
"type": "boolean",
"default": false,
"description": "Most style guides recommend that you spell out numbers less than ten."
},
"harper.linters.Starving": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Encourages vivid writing by suggesting `starving` instead of weaker expressions like `very hungry.`"
},
"harper.linters.StateOfTheArt": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects incorrect usage of `state of art` and suggests `state of the art` as the correct phrase."
},
"harper.linters.StatuteOfLimitations": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `statue of limitations` to `statute of limitations`."
},
"harper.linters.SufficeItToSay": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `suffice to say` to `suffice it to say`."
},
"harper.linters.SupposedTo": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Fixes `suppose to` to the correct `supposed to`."
},
"harper.linters.TakeItPersonally": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `take it personal` to `take it personally`."
},
"harper.linters.TalkToYouLater": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands an initialism."
},
"harper.linters.ThanksALot": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the missing article in `thanks lot`, forming `thanks a lot`."
},
"harper.linters.ThatChallenged": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `the challenged` to `that challenged` for proper relative clause usage."
},
"harper.linters.ThatThan": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the typo `that` to `than` in comparisons."
},
"harper.linters.ThatThis": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Fixes `the this` to the correct phrase `that this`."
},
"harper.linters.ThatWhich": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Repeating the word \"that\" is often redundant. The phrase `that which` is easier to read."
},
"harper.linters.The": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Fixes especially common misspellings of the word `the`"
},
"harper.linters.TheAnother": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `the another`."
},
"harper.linters.TheHowWhy": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Removes the extra `the` from expressions like `the how`, skipping `how to` and `who's who`."
},
"harper.linters.TheMy": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags the definite article used together with a possessive."
},
"harper.linters.ThenThan": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects mixing up `then` and `than`."
},
"harper.linters.Therefore": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `therefore`."
},
"harper.linters.Thereupon": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `thereupon`."
},
"harper.linters.ThingThink": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the typo `thing` when it should be `think`."
},
"harper.linters.ThoughThought": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `though` when it's a typo for `thought`."
},
"harper.linters.ThoughtProcess": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Changes `though process` to `thought process`."
},
"harper.linters.ThrowAway": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Finds the typo `through away` and suggests `throw away` instead."
},
"harper.linters.ThrowRubbish": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Checks for throwing rubbish rather than throwing it away."
},
"harper.linters.TickingTimeClock": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `ticking time clock` to `ticking time bomb` for idiomatic urgency or `ticking clock` otherwise."
},
"harper.linters.ToAdverb": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags duplicated `to` around certain adverbs (e.g. `to never to`) and offers fixes that keep only one `to`."
},
"harper.linters.ToBeHonest": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Expands an initialism."
},
"harper.linters.ToDoHyphen": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures `to-do` is correctly hyphenated."
},
"harper.linters.ToGreatLengths": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `through great lengths` to `to great lengths`."
},
"harper.linters.ToTheMannerBorn": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `to the manor born` to `to the manner born`, ensuring the intended meaning of being naturally suited to a way of life."
},
"harper.linters.ToTooIdioms": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `to` used instead of `too`."
},
"harper.linters.ToTwoToo": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects homophone confusion between `to` and `too`."
},
"harper.linters.TooTo": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `too` used instead of `to`."
},
"harper.linters.Touristic": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Suggests replacing the uncommon word `touristic` with `tourist`, `tourism`, and/or `touristy`."
},
"harper.linters.Towards": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Removes redundant `to` before `towards`."
},
"harper.linters.TrialAndError": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `trail` to `trial` in `trial and error`."
},
"harper.linters.TumblrNames": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensure proper capitalization of Tumblr-related terms."
},
"harper.linters.TurnItOff": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Fixes the mistake in the phrase `turn it off`."
},
"harper.linters.USUniversities": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensure proper capitalization of major universities in the United States."
},
"harper.linters.UnclosedQuotes": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Quotation marks should always be closed. Unpaired quotation marks are a hallmark of sloppy work."
},
"harper.linters.Underclock": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `underclock`."
},
"harper.linters.UnitedOrganizations": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "When referring to national or international organizations, make sure to treat them as a proper noun."
},
"harper.linters.Unless": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `unless if`."
},
"harper.linters.UpdatePlaceNames": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "This rule looks for deprecated place names and offers to update them."
},
"harper.linters.Upset": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `upset`."
},
"harper.linters.Upward": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `upward`."
},
"harper.linters.UseGenitive": {
"scope": "resource",
"type": "boolean",
"default": false,
"description": "Looks for situations where the genitive case of \"there\" should be used."
},
"harper.linters.VeryUnique": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags phrases like `very unique`, `pretty unique`, etc., and suggests using `unique` alone or a more precise adjective such as `special`, `rare`, or `unusual`."
},
"harper.linters.ViceVersa": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Recommends writing vice versa without hyphens."
},
"harper.linters.WantBe": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Detects incorrect usage of `want be` and suggests `won't be` or `want to be` based on context."
},
"harper.linters.WasAloud": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures `was aloud` and `were aloud` are corrected to `was allowed` or `were allowed` when referring to permission."
},
"harper.linters.WaveFunction": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Identifies the mistake of merging `wave` and `function` into one word. In quantum mechanics, a `wave function` (written as two words) describes the mathematical function that represents the quantum state of a particle or system. Correct usage is crucial for clear and accurate scientific communication."
},
"harper.linters.WayTooAdjective": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Replaces the preposition `to` with the adverb `too` after `way` when followed by an adjective (e.g. `way too fast`)"
},
"harper.linters.WellBeing": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures `well-being` is correctly hyphenated."
},
"harper.linters.WellEducated": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Replaces `good-educated` with the accepted compound `well-educated`."
},
"harper.linters.WellKept": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags `highly-kept` and recommends `well-kept` as an alternative."
},
"harper.linters.Whereas": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "The Whereas rule is designed to identify instances where the phrase `where as` is used in text and suggests replacing it with the single word `whereas`."
},
"harper.linters.Whereupon": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `whereupon`."
},
"harper.linters.WhetYourAppetite": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures `whet your appetite` is used correctly, distinguishing it from the incorrect `wet` variation."
},
"harper.linters.WholeEntire": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects the redundancy in `whole entire` to `whole` or `entire`."
},
"harper.linters.WidelyAccepted": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Flags `wide accepted`, `wide acceptable`, or `wide used` and recommends switching `wide` to the adverb `widely`."
},
"harper.linters.Widespread": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `widespread`."
},
"harper.linters.WillContain": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Incorrect verb form: `will` should be followed by the base form `contain`."
},
"harper.linters.WinPrize": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Catches the mix-up between `price`/`prise` and `prize` after the verb `win`."
},
"harper.linters.WordPressDotcom": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Ensures correct capitalization of WordPress.com. This rule verifies that the official stylization of WordPress.com is used when referring to the hosting provider."
},
"harper.linters.Worldwide": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Looks for incorrect spacing inside the closed compound `worldwide`."
},
"harper.linters.WorseOrWorst": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `worse` and `worst` used in contexts where the other belongs."
},
"harper.linters.WorstCaseScenario": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `worst-case scenario` when the hyphen is missing or `worse` is used instead of `worst`."
},
"harper.linters.WouldNeverHave": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "Corrects `would/could have never` to `never would/could have`."
},
"harper.linters.WroughtIron": {
"scope": "resource",
"type": "boolean",
"default": true,
"description": "`Wrought iron` is low-carbon, malleable iron used for decorative work; variants like `rod iron` or `rot iron` are phonetic misspellings that may confuse readers."
}
}
}
},
"scripts": {
"watch:esbuild": "node esbuild.cjs --watch",
"watch:tsc": "tsc --noEmit --watch",
"pretest": "tsc && node esbuild.cjs",
"test": "node build/tests/runTests.js",
"vscode:prepublish": "tsc --noEmit && node esbuild.cjs --production",
"package": "vsce package --no-dependencies"
},
"devDependencies": {
"@types/jasmine": "^5.1.7",
"@types/node": "catalog:",
"@types/vscode": "^1.96.2",
"@vscode/test-electron": "^2.3.9",
"@vscode/vsce": "^3.3.0",
"esbuild": "^0.25.0",
"jasmine": "^5.6.0",
"typescript": "catalog:"
},
"dependencies": {
"vscode-languageclient": "^9.0.1"
}
}