{"id":21270365,"url":"https://github.com/amdzy/writesharp","last_synced_at":"2025-03-15T11:46:36.561Z","repository":{"id":174963085,"uuid":"582275722","full_name":"amdzy/WriteSharp","owner":"amdzy","description":"A linter for English prose and a spell checker","archived":false,"fork":false,"pushed_at":"2022-12-27T15:43:24.000Z","size":80,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T02:28:28.614Z","etag":null,"topics":["cli","csharp","english","linter","prose","spellchecker"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amdzy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-12-26T09:56:23.000Z","updated_at":"2023-01-02T19:32:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"324c3fe0-2021-4470-a387-ade66bd78e92","html_url":"https://github.com/amdzy/WriteSharp","commit_stats":null,"previous_names":["soul-remix/writesharp","amdzy/writesharp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amdzy%2FWriteSharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amdzy%2FWriteSharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amdzy%2FWriteSharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amdzy%2FWriteSharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amdzy","download_url":"https://codeload.github.com/amdzy/WriteSharp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243725560,"owners_count":20337667,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","csharp","english","linter","prose","spellchecker"],"created_at":"2024-11-21T08:17:14.194Z","updated_at":"2025-03-15T11:46:36.532Z","avatar_url":"https://github.com/amdzy.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WriteSharp\n\nNaive linter for English prose and a spell checker for developers who can't write good and wanna learn to do other stuff good too.    \n\n**Important:** Do not use this tool to be a jerk to other people about their writing.    \n\n## API\n\n\n```csharp\nusing WriteSharp;\n\nvar writeSharp = new WriteSharp();\n\nvar suggestion = writeSharp.Check(\"Remarkably few developers write well.\");\n\n// suggestions:\n//\n// [{\n//   Reason = \"Remarkably\" can weaken meaning and is a weasel word,\n//   Index = 0,\n//   Offset = 10\n//\n// },{\n//   Reason = \"few\" is a weasel word,\n//   Index = 11,\n//   Offset = 3\n// }]\n```\n\n`WriteSharp.Checks` takes an optional second argument that allows you to disable certain checks.\n\nYou can disable checking for passive voice like this:\n\n```csharp\nusing WriteSharp;\n\nvar writeSharp = new WriteSharp();\n\nvar suggestion = writeSharp.Check(\"So the cat was stolen.\", new WriteSharpOptions() { PassiveVoice = false });\n// suggestions: []\n```\n\nYou can also pass WriteSharpOption in WriteSharp constructor, this will overwrite the default options.\n\n```csharp\nusing WriteSharp;\n\nvar writeSharpOptions = new WriteSharpOptions()\n        {\n            WeaselWords = false,\n            AdverbWhere = false\n        };\n\nvar writeSharp = new WriteSharp(writeSharpOptions);\n\nvar suggestion = writeSharp.Check(\"Remarkably few developers write well.\");\n\n// suggestions: []\n```\n\nYou can use the WriteSharpOptions `WhiteList` property to pass in a list of strings to whitelist from suggestions.\nFor example, normally `only` would be picked up as a bad word to use, but you might want to exempt `read-only` from that:\n\n```csharp\nusing WriteSharp;\n\nvar writeSharp = new WriteSharp();\n\nvar suggestion = writeSharp.Check(\"Never write read-only sentences.\");\n// suggestions:\n//\n// [{\n//   Reason = \"\"only\" can weaken meaning\",\n//   Index = 16,\n//   Offset = 4\n//\n// }]\n\nvar filtered = writeSharp.Check(\"Never write read-only sentences.\",\n            new WriteSharpOptions() { WhiteList = { \"read-only\" } });\n// filtered: []\n```\n\n## CLI\nYou can use `WriteSharp` as a command-line tool\n\n```shell\nws \"Remarkably few developers write well.\"\nReason = \"Remarkably\" can weaken meaning and is a weasel word, Index = 0, Offset = 10\nReason = \"few\" is a weasel word, Index = 11, Offset = 3\n```\n\nYou can run just specific checks like this:\n```shell\nws \"Remarkably few developers write well.\" --checks=weasel,so\n```\n\nOr exclude checks like this:\n```shell\nws \"Remarkably few developers write well.\" --no-checks=weasel,so\n```\n\n## Checks\n\nYou can disable or enable any combination of the following checks\n\n### `passive`\nChecks for passive voice.\n\n### `duplicates`\nChecks for duplicates – cases where a word is repeated.\n\n### `so`\nChecks for `so` at the beginning of the sentence.\n\n### `thereIs`\nChecks for `there is` or `there are` at the beginning of the sentence.\n\n### `weasel`\nChecks for \"weasel words.\"\n\n### `adverb`\nChecks for adverbs that can weaken meaning: really, very, extremely, etc.\n\n### `tooWordy`\nChecks for wordy phrases and unnecessary words.\n\n### `cliches`\nChecks for common cliches.\n\n### `eprime`\nChecks for [\"to-be\"](https://en.wikipedia.org/wiki/E-Prime) verbs. _Disabled by default_\n\n#### Prose\n\n* [Elements of Style](http://www.bartleby.com/141/)\n* [Flesch–Kincaid readability](http://en.wikipedia.org/wiki/Flesch%E2%80%93Kincaid_readability_test)\n* [Fear and Loathing of the English passive](http://www.lel.ed.ac.uk/~gpullum/passive_loathing.pdf)\n* [Words to Avoid in Educational Writing](http://css-tricks.com/words-avoid-educational-writing/)\n\n## License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famdzy%2Fwritesharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famdzy%2Fwritesharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famdzy%2Fwritesharp/lists"}