| ## 6.10.2 (2024-06-03) | |
| ### Bug fixes | |
| Fix an infinite loop that could occur when enabling `bidiIsolates` in documents with both bidirectional text and very long lines. | |
| ## 6.10.1 (2024-02-02) | |
| ### Bug fixes | |
| Fix an issue where, when a lot of code is visible in the initial editor, the bottom bit of code is shown without highlighting for one frame. | |
| ## 6.10.0 (2023-12-28) | |
| ### New features | |
| The new `bidiIsolates` extension can be used to wrap syntactic elements where this is appropriate in an element that isolates their text direction, avoiding weird ordering of neutral characters on direction boundaries. | |
| ## 6.9.3 (2023-11-27) | |
| ### Bug fixes | |
| Fix an issue in `StreamLanguage` where it ran out of node type ids if you repeatedly redefined a language with the same token table. | |
| ## 6.9.2 (2023-10-24) | |
| ### Bug fixes | |
| Allow `StreamParser` tokens get multiple highlighting tags. | |
| ## 6.9.1 (2023-09-20) | |
| ### Bug fixes | |
| Indentation now works a lot better in mixed-language documents that interleave the languages in a complex way. | |
| Code folding is now able to pick the right foldable syntax node when the line end falls in a mixed-parsing language that doesn't match the target node. | |
| ## 6.9.0 (2023-08-16) | |
| ### Bug fixes | |
| Make `getIndentation` return null, rather than 0, when there is no syntax tree available. | |
| ### New features | |
| The new `preparePlaceholder` option to `codeFolding` makes it possible to display contextual information in a folded range placeholder widget. | |
| ## 6.8.0 (2023-06-12) | |
| ### New features | |
| The new `baseIndentFor` method in `TreeIndentContext` can be used to find the base indentation for an arbitrary node. | |
| ## 6.7.0 (2023-05-19) | |
| ### New features | |
| Export `DocInput` class for feeding editor documents to a Lezer parser. | |
| ## 6.6.0 (2023-02-13) | |
| ### New features | |
| Syntax-driven language data queries now support sublanguages, which make it possible to return different data for specific parts of the tree produced by a single language. | |
| ## 6.5.0 (2023-02-07) | |
| ### Bug fixes | |
| Make indentation for stream languages more reliable by having `StringStream.indentation` return overridden indentations from the indent context. | |
| ### New features | |
| The `toggleFold` command folds or unfolds depending on whether there's an existing folded range on the current line. | |
| `indentUnit` now accepts any (repeated) whitespace character, not just spaces and tabs. | |
| ## 6.4.0 (2023-01-12) | |
| ### New features | |
| The `bracketMatchingHandle` node prop can now be used to limit bracket matching behavior for larger nodes to a single subnode (for example the tag name of an HTML tag). | |
| ## 6.3.2 (2022-12-16) | |
| ### Bug fixes | |
| Fix a bug that caused `ensureSyntaxTree` to return incomplete trees when using a viewport-aware parser like `StreamLanguage`. | |
| ## 6.3.1 (2022-11-14) | |
| ### Bug fixes | |
| Make syntax-based folding include syntax nodes that start right at the end of a line as potential fold targets. | |
| Fix the `indentService` protocol to allow a distinction between declining to handle the indentation and returning null to indicate the line has no definite indentation. | |
| ## 6.3.0 (2022-10-24) | |
| ### New features | |
| `HighlightStyle` objects now have a `specs` property holding the tag styles that were used to define them. | |
| `Language` objects now have a `name` field holding the language name. | |
| ## 6.2.1 (2022-07-21) | |
| ### Bug fixes | |
| Fix a bug where `bracketMatching` would incorrectly match nested brackets in syntax trees that put multiple pairs of brackets in the same parent node. | |
| Fix a bug that could cause `indentRange` to loop infinitely. | |
| ## 6.2.0 (2022-06-30) | |
| ### Bug fixes | |
| Fix a bug that prevented bracket matching to recognize plain brackets inside a language parsed as an overlay. | |
| ### New features | |
| The `indentRange` function provides an easy way to programatically auto-indent a range of the document. | |
| ## 6.1.0 (2022-06-20) | |
| ### New features | |
| The `foldState` field is now public, and can be used to serialize and deserialize the fold state. | |
| ## 6.0.0 (2022-06-08) | |
| ### New features | |
| The `foldingChanged` option to `foldGutter` can now be used to trigger a recomputation of the fold markers. | |
| ## 0.20.2 (2022-05-20) | |
| ### Bug fixes | |
| List style-mod as a dependency. | |
| ## 0.20.1 (2022-05-18) | |
| ### Bug fixes | |
| Make sure `all` styles in the CSS generated for a `HighlightStyle` have a lower precedence than the other rules defined for the style. Use a shorthand property | |
| ## 0.20.0 (2022-04-20) | |
| ### Breaking changes | |
| `HighlightStyle.get` is now called `highlightingFor`. | |
| `HighlightStyles` no longer function as extensions (to improve tree shaking), and must be wrapped with `syntaxHighlighting` to add to an editor configuration. | |
| `Language` objects no longer have a `topNode` property. | |
| ### New features | |
| `HighlightStyle` and `defaultHighlightStyle` from the now-removed @codemirror/highlight package now live in this package. | |
| The new `forceParsing` function can be used to run the parser forward on an editor view. | |
| The exports that used to live in @codemirror/matchbrackets are now exported from this package. | |
| The @codemirror/fold package has been merged into this one. | |
| The exports from the old @codemirror/stream-parser package now live in this package. | |
| ## 0.19.10 (2022-03-31) | |
| ### Bug fixes | |
| Autocompletion may now also trigger automatic indentation on input. | |
| ## 0.19.9 (2022-03-30) | |
| ### Bug fixes | |
| Make sure nodes that end at the end of a partial parse aren't treated as valid fold targets. | |
| Fix an issue where the parser sometimes wouldn't reuse parsing work done in the background on transactions. | |
| ## 0.19.8 (2022-03-03) | |
| ### Bug fixes | |
| Fix an issue that could cause indentation logic to use the wrong line content when indenting multiple lines at once. | |
| ## 0.19.7 (2021-12-02) | |
| ### Bug fixes | |
| Fix an issue where the parse worker could incorrectly stop working when the parse tree has skipped gaps in it. | |
| ## 0.19.6 (2021-11-26) | |
| ### Bug fixes | |
| Fixes an issue where the background parse work would be scheduled too aggressively, degrading responsiveness on a newly-created editor with a large document. | |
| Improve initial highlight for mixed-language editors and limit the amount of parsing done on state creation for faster startup. | |
| ## 0.19.5 (2021-11-17) | |
| ### New features | |
| The new function `syntaxTreeAvailable` can be used to check if a fully-parsed syntax tree is available up to a given document position. | |
| The module now exports `syntaxParserRunning`, which tells you whether the background parser is still planning to do more work for a given editor view. | |
| ## 0.19.4 (2021-11-13) | |
| ### New features | |
| `LanguageDescription.of` now takes an optional already-loaded extension. | |
| ## 0.19.3 (2021-09-13) | |
| ### Bug fixes | |
| Fix an issue where a parse that skipped content with `skipUntilInView` would in some cases not be restarted when the range came into view. | |
| ## 0.19.2 (2021-08-11) | |
| ### Bug fixes | |
| Fix a bug that caused `indentOnInput` to fire for the wrong kinds of transactions. | |
| Fix a bug that could cause `indentOnInput` to apply its changes incorrectly. | |
| ## 0.19.1 (2021-08-11) | |
| ### Bug fixes | |
| Fix incorrect versions for @lezer dependencies. | |
| ## 0.19.0 (2021-08-11) | |
| ### Breaking changes | |
| CodeMirror now uses lezer 0.15, which means different package names (scoped with @lezer) and some breaking changes in the library. | |
| `EditorParseContext` is now called `ParseContext`. It is no longer passed to parsers, but must be retrieved with `ParseContext.get`. | |
| `IndentContext.lineIndent` now takes a position, not a `Line` object, as argument. | |
| `LezerLanguage` was renamed to `LRLanguage` (because all languages must emit Lezer-style trees, the name was misleading). | |
| `Language.parseString` no longer exists. You can just call `.parser.parse(...)` instead. | |
| ### New features | |
| New `IndentContext.lineAt` method to access lines in a way that is aware of simulated line breaks. | |
| `IndentContext` now provides a `simulatedBreak` property through which client code can query whether the context has a simulated line break. | |
| ## 0.18.2 (2021-06-01) | |
| ### Bug fixes | |
| Fix an issue where asynchronous re-parsing (with dynamically loaded languages) sometimes failed to fully happen. | |
| ## 0.18.1 (2021-03-31) | |
| ### Breaking changes | |
| `EditorParseContext.getSkippingParser` now replaces `EditorParseContext.skippingParser` and allows you to provide a promise that'll cause parsing to start again. (The old property remains available until the next major release.) | |
| ### Bug fixes | |
| Fix an issue where nested parsers could see past the end of the nested region. | |
| ## 0.18.0 (2021-03-03) | |
| ### Breaking changes | |
| Update dependencies to 0.18. | |
| ### Breaking changes | |
| The `Language` constructor takes an additional argument that provides the top node type. | |
| ### New features | |
| `Language` instances now have a `topNode` property giving their top node type. | |
| `TreeIndentContext` now has a `continue` method that allows an indenter to defer to the indentation of the parent nodes. | |
| ## 0.17.5 (2021-02-19) | |
| ### New features | |
| This package now exports a `foldInside` helper function, a fold function that should work for most delimited node types. | |
| ## 0.17.4 (2021-01-15) | |
| ## 0.17.3 (2021-01-15) | |
| ### Bug fixes | |
| Parse scheduling has been improved to reduce the likelyhood of the user looking at unparsed code in big documents. | |
| Prevent parser from running too far past the current viewport in huge documents. | |
| ## 0.17.2 (2021-01-06) | |
| ### New features | |
| The package now also exports a CommonJS module. | |
| ## 0.17.1 (2020-12-30) | |
| ### Bug fixes | |
| Fix a bug where changing the editor configuration wouldn't update the language parser used. | |
| ## 0.17.0 (2020-12-29) | |
| ### Breaking changes | |
| First numbered release. | |