Fixes#165055
We need to consider the distance between the end of the previous element and start of the next element. Previously we were taking distance from start of the previous to start of the next
Fixes#155552
For lists, the outer ul/ol always has the same source line as the first element in the list. We should prefer using the first element in the list when highlighting the active line
This also fixes a bug where scroll sync would stop working if you added lines to the doc. This was caused by `lineCount` getting out of sync as the document is being updated. I've removed this state and made the reveal logic more robust instead
Switches simple patterns like:
```ts
if (some.thing) {
some.thing.method();
}
```
to:
```ts
some.thing?.method()
```
This is more concise and avoids having to repeat the `some.thing` part
* Fix scrolling of markdown preview.
* Use scrollDisabledCount.
* Stop initializing scrollDisabledCount.
* Make scrollTo enough large to occur scroll events.
* Should resolve when the error event occurs.
Possibly for #102733
Tries to get users out of a potential bad state where the state was being stored as a string. Only insiders users should have hit this
Splits the preview part of the markdown preview from the dynamic preview management part of things. Static preview swap to preview the active markdown file and don't scroll sync with any other markdown files
**Problem**
All of our extensions currently are built using the dom typings. This can lead to runtime errors if you mistakenly use `window` or similar
**Fix**
Exclude the dom typings from compile. Then explicitly import the node types for `URL` and `TextEncoder`
Fixes#80680
- Always sync the current preview line number with the editor, even when `scrollEditorWithPreview` is false
- If the md file is focused and refresh is called, do not try resetting the current line to match the editor file. This mainly effects the case where `scrollEditorWithPreview` is false
Fixes#72155
Adds a constant to the api that tracks the root path for resources inside of webviews. This is required because we will not be able to use `vscode-resource:` uris on the web. Our current approach is to rewrite the html we are given but there are almost certainly going to be cases where we don't get this quite right.
Adopts the new api for the markdown preview