Commit graph

184 commits

Author SHA1 Message Date
David Anson
33631a5984 Split micromark.cjs into separate -parse and -helpers files. 2024-09-28 16:26:38 -07:00
David Anson
98ff66209d Move markdown-it token manipulation code into a separate file which is only require()-ed if/when needed. 2024-09-14 17:33:46 -07:00
David Anson
164bbac651 Add @stylistic/eslint-plugin to ESLint configuration. 2024-09-01 16:16:05 -07:00
David Anson
9c8e7156e1 Create strict JSON Schema for configuration (standalone for ease of use) and corresponding strict TypeScript type (via extends for conciseness) (fixes #1248). 2024-08-27 20:47:33 -07:00
David Anson
dfcb4529f3 Cache all top-level calls to filterByTypes (~7% runtime reduction). 2024-08-24 22:05:16 -07:00
David Anson
85e704f32a Update to only invoke rules that are used at least once by the content. 2024-08-22 20:35:01 -07:00
David Anson
ea8d596a9b Stop running the markdown-it parser unless a custom rule that requires it is present (~7% runtime reduction). 2024-08-21 21:19:52 -07:00
David Anson
7aac5b0553 Refactor to remove flattenedLists, indentFor, listItemMarkerRe, orderedListItemMarkerRe, rangeFromRegExp, and unorderedListStyleFor helpers, reimplement MD004/MD029 using micromark tokens. 2024-08-20 21:36:17 -07:00
David Anson
c8fd9eb4b3 Refactor to remove forEachLine and getLineMetadata helpers, reimplement MD012/MD018/MD020/MD031 using micromark tokens. 2024-08-17 17:58:16 -07:00
David Anson
7efc2605b1 Refactor to remove codeBlockAndSpanRanges helper. 2024-08-15 21:34:27 -07:00
David Anson
c6716f9bac Update to ESLint 9's "flat" configuration file format. 2024-04-20 21:29:23 -07:00
David Anson
4c7cc9c326 Add 2 missing trailing semicolons. 2024-03-20 20:24:55 -07:00
David Anson
d5994ae4de Add Rule.parser property for custom rules to specify which Markdown parser output they use, honor it strictly, and add full type support. 2024-03-13 20:55:57 -07:00
David Anson
c44f165fe1 Remove tokens property from RuleParams type definition (use parsers.markdownit.tokens instead). No change to runtime behavior. 2024-03-07 21:14:17 -08:00
David Anson
12c4f79604 Add parsers object to RuleParams type, annotate every rule definition with Rule type for better type validation. 2024-02-27 20:42:09 -08:00
David Anson
0ddbffdecf Update and simplify .eslintrc.json. 2024-01-03 22:12:23 -08:00
David Anson
20a552b4b7 Remove MD002 (deprecated in v0.13.0) and MD006 (deprecated in v0.19.0). 2023-11-09 19:47:24 -08:00
David Anson
d4bfb633bb Generate TypeScript declaration for Configuration object from JSON schema (refs #1004, refs #1014). 2023-11-08 19:49:02 -08:00
David Anson
3b1dfe42df Remove deprecated ESLint rules after version update. 2023-11-05 20:18:39 -08:00
David Anson
d2faf40e6a Add rule name and file/string identifier to Error message thrown by onError validation for rules. 2023-10-07 19:34:21 -07:00
David Anson
07f403173c Replace all instances of JSDoc generic Function with detailed @callback definition (type-only changes). 2023-09-04 21:41:31 -07:00
David Anson
523eeee3bb Update code for new behavior of ESLint rule n/prefer-promises/fs. 2023-08-22 22:00:43 -07:00
Tommy G
07b851b3c7
Always refer to rules by name (not number) in test configuration. 2023-07-27 21:33:03 -07:00
David Anson
73b9704159 Reimplement MD037/no-space-in-emphasis using micromark tokens, report start/end separately for smaller edit spans, remove markdown-it-texmath (fixes #533, fixes #597). 2023-07-24 21:36:55 -07:00
David Anson
9897863130 Harden code to snapshot rule definitions against mutation, add comments to some helper functions. 2023-07-12 21:58:48 -07:00
David Anson
14a7529ce7 Snapshot custom rule definitions to prevent them from changing dynamically. 2023-07-11 22:17:53 -07:00
David Anson
c699b8e22b Allow a custom rule's onError implementation to override that rule's information URL for each error. 2023-07-11 21:45:00 -07:00
David Anson
2ab546bec0 Implement (undocumented, promise-only) extendConfig API for readConfig-like behavior when the Configuration object is already available (i.e., to implement "extends" consistently). 2023-04-03 22:59:06 -07:00
David Anson
e8a85c91f2 Move call to mapAliasToRuleNames higher in the stack to avoid re-computing multiple times for the same input. 2023-03-12 20:50:17 -07:00
David Anson
4b27bac79b Update all references to "params.tokens" to "params.parsers.markdownit.tokens" for clarity. 2023-02-25 15:50:57 -08:00
David Anson
64159fa456 Address new @ts-check warnings in markdownlint-test.js. 2023-02-25 15:50:57 -08:00
David Anson
97f99befb8 Reimplement getReferenceLinkImageData using micromark tokens. 2023-02-25 15:50:57 -08:00
David Anson
c1df46f607 Convert params.parsers.name to params.parsers.name.tokens for clarity/flexibility. 2023-02-25 15:50:56 -08:00
David Anson
08b31da0aa Move micromark.cjs helpers from lib to helpers so it can be used by code in both locations. 2023-02-25 15:50:56 -08:00
David Anson
1461ad6272 Add content parsing via micromark, publish frozen micromark tokens alongside markdown-it tokens, remove assert from micromark wrapper. 2023-02-25 15:50:56 -08:00
David Anson
4c00ffa2f0 Fix new violations from eslint-plugin-unicorn update. 2022-08-15 21:20:27 -07:00
David Anson
5544ea54d7 Remove workaround for markdown-it-texmath issue fixed in @1.0.0. 2022-08-01 18:29:18 -07:00
David Anson
e8cdb5619c Update token annotation to call helpers.forEachInlineCodeSpan only when necessary for ~11% time reduction measured via profile-fixture.mjs on GitHub Codespaces. 2022-06-17 05:29:12 +00:00
David Anson
a14df5aa5f Remove unused parameter to helpers.getReferenceLinkImageData. 2022-06-12 18:39:28 -07:00
David Anson
312f4b8c6d Address new TypeScript warnings from VS Code. 2022-06-11 22:40:45 -07:00
David Anson
936c876810 Remove helpers.deepFreeze and call Object.freeze only on things that need it for ~11% time reduction measured via profile-fixture.mjs on Apple Silicon M1. 2022-06-09 23:56:44 -07:00
David Anson
b6471fba31 Enable ESLint rule unicorn/no-array-for-each, auto-fix all violations, manually address new issues for ~4% time reduction measured via profile-fixture.mjs on Apple Silicon M1. 2022-06-08 22:10:27 -07:00
David Anson
00082ee8a5 Add "configParsers" option so custom parsers can be used to handle the content of markdownlint-configure-file inline comments (fixes #528). 2022-06-05 22:32:22 -07:00
David Anson
bbec8c5c1e Hide the content of inline configuration HTML comments from the linting process to avoid false positives. 2022-06-04 22:59:19 -07:00
David Anson
36c689388f Refactor cache.js to simplify use. 2022-06-02 21:33:31 -07:00
David Anson
c5ca661b96 Add MD052/reference-links-images and MD053/link-image-reference-definitions for reporting issues with link and image references (fixes #144, fixes #390, fixes #425, fixes #456). 2022-06-01 20:26:01 -07:00
David Anson
ffc4d56918 Support tilde paths ("~" prefix) in readConfig/Sync APIs (for "file" parameter and "extends" keys). 2022-05-17 21:38:36 -07:00
David Anson
3792613d2d Implement markdownlint-disable-line inline comment (behaves like markdownlint-disable-next-line, but for the current line) (fixes #524). 2022-05-15 15:59:11 -07:00
David Anson
0f845e9ba1 Update MD044/proper-names to add html_elements parameter (fixes #435). 2022-04-25 21:50:33 -07:00
David Anson
9310713da1 Make resultVersion 3 (report multiple errors per line, include fixInfo) the default. 2022-04-21 21:30:56 -07:00