Commit graph

1124 commits

Author SHA1 Message Date
Matt Bierner 21337aed3f
Pick up newest markdown language service (#159619)
This brings support for code actions and source actions, along with some bug fixes

Also fixes `getAllMarkdownDocuments` to prefer open documents instead of those on disk
2022-08-31 09:20:41 +02:00
Matt Bierner 01ea9c11ea
Update extension enabled tsconfig libs (#159631)
Matches what we set for `src/`
2022-08-31 07:57:15 +02:00
Matt Bierner a13e5e1da6
Also apply max-width to videos in webviews (#159500) 2022-08-30 00:52:54 +02:00
Matt Bierner b91533f3d7
Pick up latest vscode-markdown-languageservice (#159341) 2022-08-26 13:08:49 -07:00
Matt Bierner ea6cfdd2ef
Pick up 8.0.2 for MD language client (#159319)
Missed updating this when pulling in new server version

https://github.com/microsoft/vscode-languageserver-node/issues/1064
2022-08-26 11:13:37 -04:00
Matt Bierner 0a7b686a48
Fix markdown not registering find all references support (#159242) 2022-08-26 01:42:52 +02:00
Matt Bierner 940abc9c11
Fix workspace edit format for update md paths on move (#158965)
Unblocks testing #158416
2022-08-23 16:33:00 -07:00
Matt Bierner 3393b785de
Bump server version (#158297) 2022-08-16 14:38:41 -04:00
Matt Bierner 720a61fc28
Fix markdown link diagnostics not updated when directories are renamed / deleted (#157956)
Fix markdown link diagnostics not updated when directories are renamed/deleted

Turns our that `createFileSystemWatcher` will not fire if a parent dir is renamed / deleted. See #60813

To fix this, I believe we have to create watchers for all parent directories too (or watch everything in the entire workspace)
2022-08-12 13:48:40 -04:00
Matt Bierner b731beeef4
Use notebook document uri for drop / copy paste (#157939)
Fixes #157938
2022-08-11 19:52:55 +01:00
Matt Bierner 38ea5c22a6
Pick up new markdown LS version (#157843) 2022-08-10 18:16:24 -07:00
Matt Bierner 8bf82819fc
Add experimental support for update markdown links on file moves/renames (#157209)
* Add experimental support for update markdown links on file moves/renames

Fixes #148146

This adds a new experimental setting that automatically updates markdown

Note that this needs a new version of the vscode-markdown-languageservice so the build is expected to break for now

* Pick up new LS version
2022-08-09 08:31:40 -07:00
Matt Bierner 389938998f
Show error when markdown preview restore fails (#157566)
Fixes #155493
2022-08-09 09:55:40 +02:00
Matt Bierner 0103536a60
Apply editor-font-family to all code in notebooks (#157554)
Apply editor-font-family to all `code` in notebook

Fixes #146696

This matches what we do in the markdown preview
2022-08-08 20:59:16 +02:00
Tyler James Leonhardt d8453c0440
Rev built-in versions of vscode-nls to 5.1.0 (#157530)
* rev version of vscode-nls to 5.1.0

* and yarn lock
2022-08-08 18:43:45 +02:00
Matt Bierner 07e45c5a71
Fix package version (#157202)
Not sure why this was not caught by earlier builds
2022-08-04 21:40:06 -07:00
Matt Bierner b012216211
Fix markdown images having duplicate ids (#157177)
Fixes #153144
2022-08-05 06:31:42 +02:00
Matt Bierner 784de60319
Add activeWebviewPanelId context key (#156944)
Fixes #156942

This context tracks the id of the active webviewPanel
2022-08-03 07:03:33 +02:00
Matt Bierner 8b27dcb1f8
Pick up latest markdown language service (#156933) 2022-08-02 23:31:58 +02:00
John Murray 7e400c7137
Provide valid markdown-specific default for editor.quickSuggestions setting (#156686) (#156689)
Co-authored-by: Matt Bierner <matb@microsoft.com>
2022-08-02 13:51:41 -07:00
Matt Bierner e3267b75c6
Fix onDidDeleteMarkdownDocument not hooked up (#156913) 2022-08-02 22:18:08 +02:00
Matt Bierner 1097f3e440
Use finalized vscode-languageserver version (#156910)
Use finalized vscode-languageserver build
2022-08-02 15:51:07 -04:00
Matt Bierner 3a5a458643
Clear markdown diagnostics when file is closed (#156912) 2022-08-02 20:32:02 +02:00
Matt Bierner 241c770203
Exclude esbuild files from build (#156362) 2022-07-27 09:32:07 -04:00
Matt Bierner 9cf2fabdd6
Rename editor.dropIntoEditor.enabled setting (#156381)
Fixes #156344
2022-07-27 06:44:44 +02:00
Matt Bierner cf145a83ac
Enable safe inline svg tags in trusted html (#156216)
Enable safe svg tags in trusted html

From cce00ac40d/src/tags.js (L124)
2022-07-25 16:32:10 -07:00
Matt Bierner 68cbaa708e
Pick up new version of markdown-language-server (#156010)
This fixes md diagnostics and links for multiroot workspaces
2022-07-24 22:22:03 -07:00
Matt Bierner a9b387204b
Add some additional logging to md server (#156007)
Logs watcher operations
2022-07-23 00:32:10 +02:00
Matt Bierner e2006a52da
Add npmignore to markdown server (#155898)
* Add npmignore to markdown server

* Update version
2022-07-21 16:21:57 -07:00
Matt Bierner b2daf1af82
Add MD server tracing and update diagnostics on files changes (#155797) 2022-07-21 10:07:06 -07:00
Matt Bierner 924dde5c1e
Documenting markdown LS (#155789) 2022-07-21 11:48:30 +02:00
Matt Bierner 32f5e49082
Move MD diagnostics to language server (#155653)
* Move MD diagnostics to language server

This switches us to using the LSP pull diagnostic model with a new version of the language service

* Bump package version

* Delete unused file
2022-07-19 16:34:09 -07:00
Matt Bierner 394eaa9fa3
Fix md document links for untitled files (#155248) 2022-07-14 18:15:13 -07:00
Matt Bierner 9ee8961347
Move MD references, rename, and definition support to md LS (#155127) 2022-07-14 08:32:27 +02:00
Matt Bierner 867acc336f
Remove references to finalized drop api (#155128) 2022-07-14 08:27:25 +02:00
Matt Bierner 50056f3e78
Finalize drop into editor api (#155102)
Fixes #142990
Fixes #149779
2022-07-13 12:54:52 -07:00
Matt Bierner bec36ce756
Move md path completions and document links to language server (#155100) 2022-07-13 12:49:37 -07:00
Matt Bierner 75e231ad82
Clean up document link resolve (#154959)
- Move vscode scheme normalization to the DocumentLinkProvider
- Remove extra function since we already recognize uri-like links
2022-07-12 15:55:21 -07:00
Matt Bierner eeb8d49317
Move md workspace symbol search to language service (#154874)
* Move md workspace symbol search to language service

Also implements more of IWorkspace for the server

* Revert extra change
2022-07-12 10:04:25 -04:00
Matt Bierner c9bf4393d5
Rename drop API interface (#154876)
Makes the names more consistent
2022-07-12 11:33:13 +02:00
Matt Bierner 3a9292f23f
Remove extra files from build (#154875)
These server files should not be included
2022-07-12 11:31:43 +02:00
Matt Bierner e02c71e3c6
Fix range of reference links (#154819)
Fixes #150921
2022-07-11 17:46:15 +02:00
Ladislau Szomoru f2a475346f
Fix compilation error (#154699) 2022-07-10 07:50:17 -07:00
Matt Bierner 2b3912fa29
Fix markdown extension path (#154656)
Fixes #154645
Fixes #154653
2022-07-10 14:25:45 +02:00
Matt Bierner 2fb56e9d62
Move smart select and folding to md language server (#154334)
* Move smart select and folding to md language server

Also fixes a few minor issues:

- Don't log to web console
- Remove convert code since it is no longer needed
- Use correct extension id

* bump cache

* Bump package version

Co-authored-by: João Moreno <joao.moreno@microsoft.com>
2022-07-07 07:30:03 -07:00
João Moreno b4525a77fb
update yarn.lock (#154336) 2022-07-07 09:26:12 +02:00
Logan Ramos a20329d291
Switch extensions to 1DS (#154299)
* Move extensions to 1DS

* Switch extensions to 1DS
2022-07-06 17:18:41 -07:00
Matt Bierner ad9675f099
Scaffold out basic markdown language server (#154293)
* Scaffold out basic markdown lsp

This scaffolds out a new markdown language server and then uses it to implement document symbols. After the change, the markdown extension will have the following structure:

- languageService — Where all the LSP language stuff will eventually land
- server — The actual language server. Consumes ` languageService`
- src — The current extension that launches the server and implements VS Code specific functions

* Adding build scripts

* a

* Use language service from github

* Remove ls build scripts

* Bump versions

* Only build ext

* Enable for web

* Fixing for browser
2022-07-06 16:03:24 -07:00
Matt Bierner f6271dd82e
Fix angle bracket path completions for link defs (#154182)
Fixes #153866
2022-07-05 11:55:20 -07:00
Matt Bierner fc0bd9d377
Remove reliance on document.lineAt (#154191)
* Remove reliance on document.lineAt

This helps aligning more with the LSP types: https://github.com/microsoft/vscode-languageserver-node/issues/146

* Strip newline
2022-07-05 11:52:47 -07:00
Matt Bierner 0b3574dcef
Update id of markdown-it renderer (#153876)
Fixes #153873
2022-06-30 23:19:49 +00:00
Matt Bierner e44361365e
Don't include reference links that are inside other links (#153864)
Fixes #150921
2022-06-30 15:43:31 -07:00
Matt Bierner bbce24d8bb
Handle fs error in markdown path completions (#153869)
Fixes #153867
2022-06-30 22:32:32 +00:00
Matt Bierner e13feea6ae
Only compute diagnostics for opened md files (#153395)
* Only compute diagnostics for opened md files

For #152494

* Make tests stable for result ordering
2022-06-27 15:55:38 -07:00
Matt Bierner fc709e2d35
Use more standard values for scheme constants (#153367)
This drops the `:` from the scheme constants as it was easy to misuse this
2022-06-27 22:35:17 +02:00
Matt Bierner da0f64881a
Dispose in markdown tests (#153345)
Updates the markdown tests to dispose of disposables created during the test
2022-06-27 15:52:59 -04:00
Matt Bierner d1b4630a50
Fix Markdown tests on windows (#153212)
Fix windows tests
2022-06-25 18:59:25 +02:00
Matt Bierner 3b549009fe
Markdown path completions tests use mocked out fs (#153045)
* Markdown path completions tests use mocked out fs

This updates the path completion tests to stop depending on the actual fs and instead use `IMdWorkspace`

* Update remaining tests
2022-06-24 23:01:24 +00:00
Matt Bierner 64305a732e
Better handling of text/uri-list in built-in extensions (#153163)
- When splitting `text/uri-list`, we should split on `\n` to handle against spec versions of `text/uri-list`
- However when constructing a `text/uri-list`, we should use `\r\n` to align with the spec
2022-06-24 15:24:16 -07:00
Matt Bierner 7fd834b64f
Enable angle bracket path completions in markdown (#153158)
Fixes #152510
2022-06-24 15:04:40 -07:00
Matt Bierner 8acfd0ae60
Exclude empty links from md results (#153161)
These are technically valid links but we don't care about them since they take up no space
2022-06-24 21:42:00 +00:00
Matt Bierner 00ad6bc3d4
Markdown document links should reveal cell in notebook (#153147)
Fixes #141024
2022-06-24 15:49:15 -04:00
Matt Bierner d6497d3db1
Use ResourceMap (#153051)
Replaces `Set` of uris with a `ResourceMap`
2022-06-24 01:00:05 +00:00
Matt Bierner 9b7696cc9c
Fix notebook links to other docs in edited markdown cells (#153052)
Fixes #148199

This makes us resolve links in notebooks relative to the notebook document instead of relaitve to the cell
2022-06-23 20:55:08 -04:00
Matt Bierner ab7bc9fb0b
Split up MD link tests (#153048)
This splits the markdown link tests in two:

- Tests for detecting links in md files (`MdLinkComputer`)
- Tests for the actual vs code editor link provider

Also fixes a few cases splitting these tests up caught
2022-06-23 17:53:56 -07:00
Logan Ramos 4a7a6a597a
Update extension telemetry modules (#153057) 2022-06-24 00:53:23 +00:00
Matt Bierner 385bf5036b
Optimize NoLinkRanges lookup (#153010)
This switches us to use a map to check if a position exists inside the no link ranges
2022-06-23 11:38:13 -07:00
Matt Bierner 07144d22c4
Rename types in the markdown extension (#152905)
Renames in the markdown extension

This renames some types and splits up some files as part of an exploration towards a proper LSP. Changes:

- `SkinnyTextDocument` -> `ITextDocument`
- Moved `ITextDocument` to own file
- `MdWorkspaceContents` -> `IMdWorkspace`
2022-06-22 14:12:48 -07:00
Matt Bierner be1ee5d9f1
Re-validate md files when a linked to file is created or deleted (#152520) 2022-06-22 19:02:46 +00:00
Matt Bierner 321423db2b
Standardize text/uri-list handling (#152756)
This creates a common set of functions for creating and parsing the `text/uri-list` mime type. As part of this, I also aligned us with the standard, which uses `\r\n` between lines instead of just `\n`
2022-06-22 13:53:37 +02:00
Matt Bierner 5437480941
Enable md paste actions by default (#152810)
Turns on pasting of links for easier testing. However `editor.experimental.pasteActions.enabled` is still off by default so this won't be enabled by default
2022-06-22 08:19:52 +02:00
Matt Bierner c84655d123
Reduce recomputation of state in markdown extension (#152804)
* Reduce recomputation of state in markdown extension

- Use `getForDocument` more often to avoid refetching documents
- Debounce `MdTableOfContentsWatcher`. We don't want this to trigger on every keystroke :)

* Cache LinkDefinitionSet

* Add test file change

* Fix toc watcher for tests
2022-06-21 16:25:10 -07:00
Matt Bierner 389aa8a935
Fix MdDocumentInfoCache computing values twice (#152799)
* Fix MdDocumentInfoCache computing values twice

Fixes a race where values could be computed twice before being cached

* Remove only
2022-06-21 16:22:07 -07:00
Matt Bierner d5a75f2ceb
Add logging for MD language features (#152792)
This verbose logging will help track down inefficient calling patterns (such as recomputing stuff)
2022-06-21 14:18:36 -07:00
Matt Bierner bbe7b54cf4
Remove custom editor tests (#152777)
These tests are not actively being run or maintained. Removing them for now
2022-06-21 15:37:19 -04:00
Matt Bierner fa53aa6fec
Cleanup pass for md extension (#152760)
Clean up names in md extension
2022-06-21 15:36:32 -04:00
Matt Bierner 2249b171f4
Reduce number of times MD docs are re-tokenized (#152674)
This change reduces the number of times we retokenize a markdown file by doing the following:

- Use `MdTableOfContentsProvider` in more places
- Introduce a `IMarkdownParser` interface that lets us drop in a caching version of the tokenizer
2022-06-21 08:43:01 +02:00
Matt Bierner 369252a027
Skip diagnostics for non-open md files (#152687)
Currently we only show diagnostics for opened tabs. This means we shouldn't waste time computing diagnostics for these non open files
2022-06-20 16:39:01 -07:00
Matt Bierner 0bc3109761
Don't try parsing non-markdown files (#152661)
This fixes our references and rename provider to not try parsing non-markdown files as if they were markdown
2022-06-20 10:44:50 -07:00
Matt Bierner 4c72dedb4a
Optimize markdown workspace scanning (#152563)
* Optimize markdown workspace scanning

- Adds cache for markdown file
- Avoid reading non-markdown files from disk (when we expect markdown files)
- Use `range.contains(pos)` instead of `range.intersects(range)`

* Don't remove cached document on change

We only want to invalidate the cached document when it is first opened (since the cached version is the one from disk). Otherwise we can use the live version of the doc
2022-06-19 09:40:10 -07:00
Matt Bierner 5a175207de
Improve markdown link regexp (#152533)
* Improve markdown link regexp

This makes the markdown link regexp more readable and also combines the two regular expressions we were running

* Fixed backtracking
2022-06-19 06:25:54 +02:00
Matt Bierner 78597fd026
Don't hardcode use of github slugifier (#152507)
Use `engine.slugifier` for this instead
2022-06-17 17:25:54 -04:00
Matt Bierner dea813ff7c
Add table of contents provider abstraction (#152504)
We currently re-compute the same table of contents for markdown files multiple times. This is because multiple language features all need table of contents

With this change, we introduce a new `TableOfContentsProvider` which maintains a cache of the table of contents per file. This provider is then passed into every caller that needs a toc
2022-06-17 18:20:02 +00:00
Matt Bierner 623f55f437
Refactor markdown language features (#152402)
(sorry for the size of this PR)

This change cleans up the markdown language features by making the following changes:

- Use `registerXSupport` public functions to register these
- Expose the slugifier the `MarkdownEngine` uses. You never want to use a different one if you already have a markdown engine
- Sort of clean up names. I'd introduced a bunch of confusing names while iterating in this space. What I'm working towards:

    - `Computer` — Stateless thing that computer data
    - `Provider` — Potentially stateful thing that provides data (which may be cached)
    - `VsCodeProvider` — The actual implementation of the various vscode language features (which should only be used by VS Code and in tests, not shared with other features)
- Introduce `MdLinkProvider` to avoid recomputing links for a given document. Also use this to hide more internals of link computation
2022-06-17 10:25:52 +02:00
Matt Bierner afe316c08c
Add diagnostic manager enablement change tests (#152392)
* Add test for MD diagnostic manager config changes

Add a simple test the enabling/disable diagnostics should make the diagnostic manager recompute diagnostics

* Add `.get`
2022-06-16 15:53:19 -07:00
Matt Bierner cb5fa75d11
Clean up markdown diagnostic tests (#152374)
* Clean up markdown diagnostic tests

This splits the diagnostic compute tests from the test for the diagnostic manager

* Mark internal field as private
2022-06-16 22:33:11 +02:00
Matt Bierner 3114ee690b
Split out VS Code reference provider from markdown reference provider (#152369)
This change renames the main markdown reference provider class to `MdReferenceComputer` and then uses this to implement a `vscode.ReferenceProvider`

This more cleanly splits the VS Code part of the logic from the general reference calculation stuff other providers consume
2022-06-16 15:47:48 -04:00
Matt Bierner 6c252851f2
Revalidate linked files on header change (#152366)
Fixes #150945

With this change, when the headers in a file change, we should also try to revalidate all files that link to it
2022-06-16 18:14:01 +00:00
Matt Bierner 4fc5d76213
Fix ranges and validation setting for MD own path + header links (#152270)
* Fix ranges and validation setting for MD own path + header links

Previously for a `file.md`, links to headers in that file that use paths, such as `[link](./file.md#some-header)` were validated using `markdown.experimental.validate.fragmentLinks.enabled`

This is confusing as that setting was only meant to be used for links such as`[link](#some-header`). It also resulted in the diagnostic having the incorrect range

This change instead makes these links be validated by `markdown.experimental.validate.fileLinks.markdownFragmentLinks`

* Fix compile
2022-06-15 20:02:41 -07:00
Matt Bierner a765abcf07
Adopt ResourceMap for MD diagnostics (#152264)
Adopt ResourceMap

Switches to use `ResourceMap` instead of our own implementation
2022-06-15 15:43:09 -07:00
Matt Bierner f17b33faf2
Use .?method() in more places (#152112)
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
2022-06-15 16:28:31 +00:00
Matt Bierner 354e1a0595
Finalize data file reading API (#152127)
Fixes #147481
Also reverts #150963 since the `kind` field is not being finalized
2022-06-15 07:56:02 -07:00
Matt Bierner 00273730e8
Split markdown linkComputer from linkProvider (#152124)
Instead of passing around a full `vscode.DocumentLinkProvider`, we should pass just the more minimal interface that consumers need
2022-06-14 15:34:05 -07:00
Matt Bierner 00574df08a
Remove extra path field in FileLinksData (#152004)
Remove extra `path` field

This field is no longer needed after we switched to use `ResourceMap` vs `Map`

Also inlines the `FileLinksData` type def
2022-06-14 08:01:53 -07:00
Matt Bierner a658c04b0a
Adjust md external header link diagnostic range (#152001)
Fixes #151998

Makes errors for invalid headers on file links only cover the fragment range instead of the entire link range
2022-06-14 09:39:49 +02:00
Matt Bierner 1a07fd15d7
Clarify markdown validate settings (#151997)
Clairify markdown validate settings

Fixes #150949

- Rename headerLinks -> fragmentLinks
- Add new `fileLink.markdownFragmentsLinks` to validate the headers on fragment links (inherits the default setting value from `fragmentLinks`)
2022-06-13 17:06:28 -07:00
Matt Bierner 7284c3e4c1
Use classes for drop/paste edit types (#151980) 2022-06-13 13:10:07 -07:00
Johannes ed9ed45794
Merge branch 'main' into joh/voluminous-lobster 2022-06-10 09:07:30 +02:00
Babak K. Shandiz a8de8e2112
[markdown] Ignore brackets inside link text (#151610)
* 🔨 Allow texts in bracket pairs inside link titles; [text](link)

Signed-off-by: GitHub <noreply@github.com>

* 🔨 Allow texts in bracket pairs inside link titles; [text](<link>)

Signed-off-by: GitHub <noreply@github.com>

* ⚗️ Add tests to verify  link titles can include bracket pairs

Signed-off-by: GitHub <noreply@github.com>
2022-06-09 11:48:50 -07:00
Johannes 3622010b64
Merge branch 'main' into joh/voluminous-lobster 2022-06-09 09:08:20 +02:00
Matt Bierner d7c90c2b2b
Update text editor drop proposal (#151552)
This updates the text editor drop proposal (#142990). This change introduces `DocumentDropEdit` which removes the need for `SnippetTextEdit`. This interface may also be extended in the future with additional metadata
2022-06-08 17:44:28 -04:00
Matt Bierner 48cfaa2187
Fix rename of paths in markdown reference link definitions (#151545)
Fixes #151117
2022-06-08 19:20:17 +00:00
Matt Bierner 370dfd5fee
Iterate on paste edit provider api (#151477)
* Iterate on paste edit provider api

For #30066

- Pass all selections to paste providers. For #151326
- Introduce `DocumentPasteEdit` as return type. This new type uses an `insertText` that is applied to every paste location (for multicursor), plus an optional additional edit
-  Add `DocumentPasteProviderMetadata`. This lets extensions tell us which types of mimetypes they are interested in, letting us avoid round trips if no extensions care about the pasted data

* Correctly batch insertText
2022-06-08 15:06:55 -04:00
Johannes 0656d21d11
auto-fixed prefer-const violation 2022-06-08 17:49:21 +02:00
Matt Bierner 1327d1eb50
Adopt ResourceMap in more places (#151475)
This changes switches to use the new `ResourceMap` type in more places in the markdown extension where we need to have a map/set with uris as the key
2022-06-08 08:34:06 +02:00
Matt Bierner 60a68d666d
Add resourceMap helper for markdown extension (#151471)
This change introduces a `ResoruceMap` map type that is essentially `Map<vscode.Uri, T>`

It also fixes a potential race condition with `MdWorkspaceCache` where two quick calls would both trigger init
2022-06-07 18:00:10 -07:00
Matt Bierner 9545af80f6
Fix markdown link detection for links with titles (#151459)
Fixes #151458
2022-06-07 20:58:29 +00:00
Justin Chen bcc7ffae3e
bugfix on markdown underlines, addressing part of issue #136073 (#151178)
Co-authored-by: Justin Chen <t-justinchen@microsoft.com>
Co-authored-by: Matt Bierner <matb@microsoft.com>
2022-06-06 17:35:41 +00:00
Logan Ramos 70647a2ffd
Fix #150041 (#151108) 2022-06-02 11:02:26 -04:00
Matt Bierner e44f4ba886
Add experimental tag to experimental extension settings (#151031)
This makes a few more extension settings with the `experimental` tag so that show up if you search `@tag:experimental`
2022-06-01 16:32:58 -07:00
Matt Bierner 9302343e8e
Also ignore star checkboxes (#151029)
Fixes #150672

This makes our md link detection also ignore checkboxes like `* [x]` instead of just `- [x]`
2022-06-01 21:23:29 +00:00
Matt Bierner 7477efd87e
Better message for markdown reference links (#151018)
Fixes #151017

Also improves the diagnostic message for invalid reference links to make it clear we are talking about a missing link definition
2022-06-01 19:01:36 +00:00
Matt Bierner e6fff5ecff
Don't parse checkboxes are links in markdown (#150914)
Fixes #150672
2022-05-31 14:57:32 -07:00
Matt Bierner e4f7f6a9da
Add PasteEditProvider (#107283)
For #30066

This adds a new `documentPaste` api proposal that lets extensions hook into copy and paste.

This can be used to do things such as:

- Create link when pasting an image
- Bring along imports when copy and pasting code
2022-05-25 12:27:58 +02:00
Matt Bierner 1c7991f1e8
Markdown ignoreLink should apply to paths in header links (#150223)
This change lets you ignore all links to a given file, even if those links include a header. For example: `[text](/path/to/file#some-header)` can be ignored using `/path/to/file`
2022-05-23 17:07:15 -07:00
Matt Bierner b8420578fd
Add additional allowed tags in untrusted notebook markdown (#150228)
This adds some extra allowed tags when rendering markdown in notebooks. Additions are:

```
  "b",

    "br",

    "caption",

    "center",

    "col",

    "colgroup",

    "details",

    "em",

    "font",

    "i",

    "kbd",

    "sub",

    "summary",

    "sup",

    "table",

    "tbody",

    "tfoot",

    "thead",

    "td",

    "th",

    "tr",

    "tt",

    "u",

    "video"
```
2022-05-23 22:30:42 +00:00
Matt Bierner 96cae45ba9
Rename skipPaths to ignoreLinks (#150064)
This change renames the experimental skipPaths setting to ignoreLinks. This setting applies to all types of links, and can also be used to ignore links to headers
2022-05-20 22:54:21 +00:00
Esteban Dalel R e76ad21903
Fix typo (#150042) 2022-05-20 19:06:35 +00:00
Matt Bierner 993c36c920
Fix markdown ext errors accessing disposed webview (#149960)
When reloading windows that need to restore a markdown preview, sometimes I'll see an error when the markdown preview tries accessing a disposed of webview. This seems to be cause caused by `provideTextDocumentContent`, where we end up disposing of the webview before an `await` resumes execution
2022-05-20 09:17:57 -07:00
Matt Bierner 0d55d50173
Expose outputItem in notebook markdown eve (#149870)
For #121256

This change adds the current `ouputItem` to the notebook markdown renderer's environment

Renders that extend our markdown renderer can use this to access output item metadata for example
2022-05-18 16:14:32 -07:00
Matt Bierner 27903c28aa
Remove unfinished test (#149864)
Mistakenly checked this in
2022-05-18 16:01:28 -07:00
Matt Bierner daf0d5e551
Add skipPaths option for markdown link validation (#149859)
The new `markdown.experimental.validate.fileLinks.skipPaths` setting lets you specify a list of paths (as globs) that should not be validation

This is useful since markdown is used in a range of environments, and sometimes you may need to link to paths that don't exist on disk but will exist on deployment

A few other changes here:

- Adds a quick fix that adds paths to `skipPaths`
- Rename existing settings to use the `.enabled` prefix
2022-05-18 14:37:08 -07:00
Matt Bierner 1c7ab35761
Rename to DocumentOnDropEditProvider (#149730)
This change renames `DocumentOnDropProvider` to `DocumentOnDropEditProvider`. This new name aligns with the existing `DocumentFormattingEditProvider`
2022-05-17 09:26:54 -07:00
Matt Bierner c2b064538b
Don't detect links in markdown code blocks (#149680)
Fixes #149678
2022-05-16 17:35:16 -07:00
Matt Bierner d71f6ec0d9
Update markdown diagnostics when linked files change (#149672)
For #146303

This PR updates the markdown diagnostic reporter to watch linked to files. If one of these linked to files is created or deleted, we recompute the diagnostics for all markdown files that linked to it
2022-05-16 17:30:39 -07:00
Matt Bierner dd9dca9825
Fixing some html tags detected as autolinks for diagnostics (#149511)
For markdown such as `<scope:tag>b</scope:tag>`, we currently detect `<scope:tag>` as an uri (an autolink) and then try validating it as a file path

This change doesn't fix `<scope:tag>` being detected as a link (which is actually correct if there isn't closing html), but does fix the us trying to validate it by marking the uri as external
2022-05-16 12:19:29 +02:00
Matt Bierner 113287ccc3
Don't treat escaped markdown reference links as links (#149407)
Fixes #149406

Make sure that escaping the leading `[` of a reference link means it is not considered a link

- Picks up new grammar with fixes
- Updates our document link provider to also not consider these as link
2022-05-12 19:35:36 -07:00
Matt Bierner a075453e55
Clean up the markdown document link provider tests (#149405)
- Use `joinLines` instead of
- Inline document text
- Always use `example.com`
- Move issue numbers into test titles
- Clean up text
2022-05-12 16:01:51 -07:00
Matt Bierner 5485b8e215
Include " and '/' as puctuators for slugify (#149404)
We already include `'` and `/` makes sense to treat as a puctuator too for titles such as `# do A / B`
2022-05-12 15:56:25 -07:00
Matt Bierner 9e42783398
Don't repeat markdown link validation (#149169)
We currently validate each link in a markdown file individually. This means that if there are multiple links to the same file, we check if that file exists multiple times

With this change, we instead will check that the file exists once and then use this to add diagnostics for all the links to it. This is done by introducing a new `FileLinkMap` which maps file paths to links within that file
2022-05-10 09:14:40 -07:00
Matt Bierner d850919250
Adds cancellation to md diagnostic computer (#149122)
This tracks inflight diagnostic computation and tries to cancel them if a new request comes in for the same document (usually because the document has changed or has been closed)
2022-05-09 15:42:32 -07:00
Matt Bierner a6dd083a7e
Use / for md paths, even on windows (#149120)
Fixes #149010
2022-05-09 15:22:44 -07:00
Matt Bierner 04ecb1d42f
Normalize markdown links in notebooks (#148827)
Fixes #146352

This ensures we pass links in markdown cells through the same normalization function we use to assign headers ids
2022-05-05 18:33:38 +00:00
Matt Bierner c08941b87c
Ignore bulkedit previews for markdown references / renames (#148744)
Makes sure we don't pick up the fake documents created by the bulkedit-preview
2022-05-04 16:03:35 -07:00
Matt Bierner 9dab79d9c8
Fix markdown web extensions (#148739)
We're currently importing a file from `test/util`, which is not supported on web. Move the noop cancellation token into the `util` folder instead
2022-05-04 14:02:38 -07:00
Matt Bierner 93fd393a0e
Add API proposal for reading files in data transfer (#148596)
* Add experimental support for reading files in data transfer

Adds a new `DataTransfer.asFile` method which lets you get file objects from a `DataTransfer`. This is currently only hooked up for drop into editors.

A few follow ups:

- Right now the file data is also read eagerly when it is transfered to the extension host. Before shipping this we would make this happen lazily instead
- The drop into editor api does not provide a nice way to do anything with the dropped files.

    We should at least support returning a `WorkspaceEdit`. However `WorkspaceEdit` only supports text files, so we would also need to add an API that lets it deal with binary files

* Make `asFile` return a value instead of a promise

`asFile().data()` already returns a promise so `asFile` doesn't also need to be async

* Trying resolving data files transfer lazily

* Cleaning up code for lazy drop

* Remove testing code

* Remove unneeded buffer serialize

* 💄
2022-05-04 12:59:27 -07:00
Matt Bierner eba8ef0547
Add diagnostics for markdown links (#148578)
* Initial work on md link diagnostics

* Adding settings to enable/disable validation

* Add delay for recomputing diagnostics

* 💄

* Split test on diagnostics compute vs management

* Validate on file open

* Remove dianostics on file close

* Allow paths to folders

* Add validation configuration option
2022-05-02 16:06:00 -07:00
Matt Bierner e3e4bfacc3
Remove blank 2022-05-02 15:50:41 -07:00
Jean Pierre 44e644467d
Enable go to definition for markdown links (#148017)
* Enable go to definition for markdown links

* Add markdown definitionProvider tests
2022-05-02 10:07:40 -07:00
Yuki Hattori 82ad6afd36
Fixes microsoft/vscode#147936 (#148503)
By changing output esbuild setting for Markdown preview scripts to iife,
prevents global namespace pollution and reduces possibility of breaking
the preview by contributions from other extensions.
2022-05-02 09:33:51 -07:00
Matt Bierner 892d6ec2a2
Fix md workspace cache for untitled files
Makes sure we also add all text documents to the list of md docs
2022-04-30 20:15:40 -04:00
Matt Bierner 8449a9f5cb
Fix md rename when file does not exist
Fixes #148147

- Don't try renaming non-existent files
- Also fixes a bug where renaming in untitled files would insert `untitled:`
2022-04-30 19:52:44 -04:00
Matt Bierner 3e182633c7
Adding some more tests for markdown references 2022-04-30 19:14:03 -04:00
Matt Bierner c41728c479
Fixes #147896 (#148101)
* Fixes #147896

* Replace all

* Fix windows slash check

* Skip test on windows for now
2022-04-26 15:45:15 -04:00
Benjamin Pasero 72b4be55fa
skip markdown rename tests (#147896) 2022-04-22 08:07:49 +02:00
Matt Bierner 59b6227bf3
Use un-encoded file paths are rename placeholder 2022-04-21 22:23:53 -04:00
Matt Bierner 7b1168660a
Fix resolving of links on rename
We should resolve relative to the file the rename is triggered in
2022-04-21 22:23:53 -04:00
Matt Bierner 62eebab685
Use uri instead of string 2022-04-21 22:23:52 -04:00
Matt Bierner b438e8438d
Fixing rename to use correct file paths relative to containing files 2022-04-21 22:23:52 -04:00
Matt Bierner 0610f195fb
Try automatically adding .md file extension to new paths on rename 2022-04-21 22:23:51 -04:00
Matt Bierner 0ac39e800d
Add support for renaming files in markdown using F2
This lets you trigger F2 on a file path in a markdown link to both rename the file and also update all references to it
2022-04-21 22:23:51 -04:00
Matt Bierner 9fbd962973
Differentiate md refs request on file path vs on fragment 2022-04-21 22:23:50 -04:00
Matt Bierner 800eec5645
Mark setting as experimental again
Will finalize along when we actually ship this api
2022-04-19 13:08:47 -07:00
Matt Bierner 08e838cba3
Don't encode paths 2022-04-19 10:13:38 -07:00
Matt Bierner cba0a0e460
Always encode paths dropped in md 2022-04-14 14:55:22 -07:00
Akat b499467f9f
fix(markdown): avoid considering link references/sources in code sections (#146826) 2022-04-07 14:50:37 -07:00
Matt Bierner bba6c56123
Fix dropping image from webpage into markdown files 2022-04-06 14:27:41 -07:00
Matt Bierner 27759c6e03
Use limiter instead of custom batcher 2022-04-06 14:16:06 -07:00
Matt Bierner 62d6f38fc2
Auto create image links when dropping an image file into markdown 2022-04-05 15:42:56 -07:00
Matt Bierner 032ee47056
Add setting to enable/disable markdown drop into editor
For #142990
2022-04-05 15:42:56 -07:00
Matt Bierner b4b7380576
Fix md references not checking authority
Simply compare by string for now
2022-04-05 15:31:43 -07:00
Matt Bierner a56c9f10b7
Enable find all references and rename of auto links and http(s) links in markdown
For #146777, #146277
2022-04-05 15:18:18 -07:00
Matt Bierner c80acef8a1
Mark cached prop readonly 2022-04-05 15:18:17 -07:00
Matt Bierner 55627db338
Move fragment range down into documentLinkProvider 2022-04-05 14:22:57 -07:00
Matt Bierner 9b141e1959
Use clearer logic 2022-04-05 14:22:57 -07:00
Matt Bierner 2154f3d008
Pass through CancellationToken 2022-04-05 11:56:40 -07:00
Matt Bierner 0496c2b3a7
Add basic file references provider for markdown
Fixes #146267
2022-04-05 11:56:40 -07:00
Matt Bierner d0767451a9
Adding test for renaming the definition itself 2022-04-04 15:56:29 -07:00
Matt Bierner 7831ff6a32
Reuse references in rename requests 2022-04-04 15:56:29 -07:00
Matt Bierner baa7434480
Use header text as placeholder for md rename
For #146291
2022-04-04 15:56:28 -07:00
rebornix 024e40fb31
💄 2022-04-04 14:20:07 -07:00
rebornix ab2a987919
fix #146750. 2022-04-04 14:19:15 -07:00
Matt Bierner 44ffeba237
Switch to provider based model for on drop
This simplifies implementing the provider and also give potentially gives us more control over how the drop happens
2022-04-01 15:51:38 -07:00
Matt Bierner 5451119820
Adopt SnippetTextEdit for drop 2022-04-01 15:51:38 -07:00
Matt Bierner ca267e3f5e
Error on rename in bare file links in definition 2022-04-01 11:15:24 -07:00
Matt Bierner 114b340f7a
Fix explicit references to own file 2022-04-01 11:15:24 -07:00
Matt Bierner 8b7086afdb
Fixing false positive ref link being detected 2022-03-31 19:09:14 -07:00
Matt Bierner c39d09a4c0
Working on initial support for renaming refs in md
For #146291
2022-03-31 18:28:23 -07:00
Matt Bierner 6b573340bd
Fixing references on header when looking at file extensions 2022-03-31 15:31:41 -07:00
Matt Bierner 8a6a300216
Simplify code for dealing with link definitions 2022-03-31 15:11:35 -07:00
Matt Bierner 57dffde3d4
Trying to clean up md link structure by moving defintion up a level 2022-03-31 15:11:35 -07:00
Matt Bierner 0e65adbda8
Initial work on rename in markdown
For #146291

Also fixes references triggered on a definition link
2022-03-31 15:11:34 -07:00
Matt Bierner 6da26a9351
Fix duplicate resources sometimes opened from references 2022-03-31 11:56:37 -07:00
Matt Bierner e32a13be77
Fix references to header to return just the span of the header itself and not its body 2022-03-31 11:56:37 -07:00
Matt Bierner 55719a3dc5
Remove dup type 2022-03-30 16:33:34 -07:00
Matt Bierner 1bb96d5d72
Mark methods private 2022-03-30 16:33:34 -07:00
Matt Bierner afad64c534
Move function to method 2022-03-30 16:33:33 -07:00
Matt Bierner 174924d73c
Clean up link data structure 2022-03-30 16:33:33 -07:00
Matt Bierner cfe0b1d480
Extract getReferencesToLink and getReferencesToReferenceLink 2022-03-30 16:33:32 -07:00
Matt Bierner 2510e3dca6
Refactoring md refs provider to prep for re-use 2022-03-30 16:33:32 -07:00
Matt Bierner 590a9bf8a3
Make sure double click in md preview always reveals target line
Fixes #146333
2022-03-30 15:49:56 -07:00
Matt Bierner 8a4f35d96a
Better comment 2022-03-30 15:49:56 -07:00
Matt Bierner 6c7ba2de69
Fix refs to own file being included in md ref results from other file
For #146277
2022-03-30 15:22:15 -07:00
Matt Bierner 982a353285
workspaceFile -> workspacePath 2022-03-30 15:14:34 -07:00
Matt Bierner f3cb3510b8
Use joinLines helper 2022-03-30 15:14:34 -07:00
Matt Bierner bea2ce0111
Add assertReferencesEqual helper 2022-03-30 15:14:33 -07:00
Matt Bierner f68db8f6ba
Compare normalized fragments for md references
For #146277
2022-03-30 15:14:33 -07:00
Matt Bierner 767178d1b9
Remove duplicate function 2022-03-30 15:14:33 -07:00
Matt Bierner d441406b1e
Include invalid references as targets for find all references
For #146277
2022-03-30 14:36:03 -07:00
Matt Bierner 17783a09e5
Add support for reference to ref links in md
For #146277
2022-03-30 14:36:03 -07:00
Matt Bierner 0d69c2bbb7
💄 2022-03-30 14:36:02 -07:00
Matt Bierner 6d1b112d13
Make MdWorkspaceCache always store promises
Makes working with the class easier
2022-03-30 11:50:37 -07:00
Matt Bierner 2754cef4a7
Fix finding references from link without header ref 2022-03-30 11:38:50 -07:00
Matt Bierner ebd490f28e
Improve markdown references
For #146277

- Find all references on links
- Better support for links without a file extension
2022-03-30 11:38:50 -07:00
Matt Bierner d06c17bd1b
Respect includeDeclaration for markdown references 2022-03-29 18:28:28 -07:00
Matt Bierner 8adb42079b
Fix slow positionAt impl for markdown references
- Use `vscode-languageserver-textdocument` instead of custom impl
- Reuse `InMemoryDocument`  across tests and working code
- Use `SkinnyTextDocument` in more places
- Fixes some test errors that seem to be caused by bad `InMemoryDocument` impl
2022-03-29 18:19:52 -07:00
Matt Bierner 338ae07ccb
Initial work on md references provider
#146277
2022-03-29 18:19:52 -07:00
Matt Bierner 9b6435af76
Extract MdWorkspaceCache
This lets us reuse this logic in other places
2022-03-29 18:19:51 -07:00
Matt Bierner 407b66a6d4
Remove extra await 2022-03-29 18:19:51 -07:00
Matt Bierner 0c3a241171
💄 2022-03-29 18:19:50 -07:00
Matt Bierner 3ce5c78cb9
Extract workspaceContents to own file 2022-03-29 18:19:49 -07:00
Matt Bierner 2783263582
Clean up link provider 2022-03-29 18:19:47 -07:00
Matt Bierner 22fb4e9de8
Better align language provider names and export styles
- Use named exports
- use `Md*` for providers
2022-03-29 13:35:48 -07:00
Matt Bierner 4949f13d13
Organize imports 2022-03-29 13:25:40 -07:00
Matt Bierner 252515e59d
💄 2022-03-29 13:25:40 -07:00
Matt Bierner a2d9157a9a
Extract markdown scrolling code to own file 2022-03-29 13:25:39 -07:00
Matt Bierner d49fc3ca8d
Move files to better folders and add better name 2022-03-29 13:25:38 -07:00
Matt Bierner c8c6224c84
Remove unused hash functions 2022-03-29 13:25:37 -07:00
Matt Bierner 3bc3b1f8ec
Use padStart 2022-03-29 13:25:37 -07:00
Matt Bierner b21350fdcb
Use string uri as key instead of fsPath 2022-03-29 13:25:36 -07:00
Matt Bierner 28e2475f72
Use find instead of filter 2022-03-29 13:25:36 -07:00
Matt Bierner 15c617e5b0
Use ._register 2022-03-29 13:25:35 -07:00
Matt Bierner 7736c87cb0
Move markdown preview files to own folder 2022-03-29 13:25:35 -07:00
Matt Bierner ffd8aea1a7
Remove outdated comment 2022-03-29 13:25:34 -07:00
Matt Bierner 2edb9bc9ca
Reapply parcel/watcher adoption
Revert "Revert e7fffbf1c9169087f1098aedfe54c59c079fa3ac"

This reverts commit 6786b0ad7d.

Two changes:

- Lazy import parcel/watcher
- Add `@parcel/watcher` as a dev dep in extensions folder so that we pull in correct version for build os
2022-03-24 14:13:39 -07:00
Dirk Baeumer 6786b0ad7d
Revert e7fffbf1c9 2022-03-24 09:04:05 +01:00
Matt Bierner e7fffbf1c9
Use parcel for watching esbuild build files
Seeing small but consistent cpu usage when using esbuild's watcher. Switch to parcel to avoid this
2022-03-23 14:49:59 -07:00
Matt Bierner e6e907e721
Move drop into feature to own file 2022-03-22 18:18:03 -07:00
Matt Bierner 77d9be7a45
Use text/uri-list for drop into editor
For #145713
2022-03-22 17:36:32 -07:00
Matt Bierner 82c70007a3
Make sure we decode path components for md path completions
Fixes #145447
2022-03-22 16:58:37 -07:00
Matt Bierner d2db6fb2d0
Remove negative lookbehind in regexp
Fixes #145655
2022-03-22 14:34:46 -07:00
Johannes 0f648cd7db
add eslint rule to disallow look behind regex feature, ignore in git and markdown fyi @lszomoru, @mjbvz 2022-03-22 16:02:19 +01:00
Matt Bierner bfc026b97a
Drop into text editor api proposal (#143334)
* Add drop into editor api proposal

For #142990

* Use AsyncEmitter
2022-03-18 11:32:11 -07:00
Logan Ramos 9b7268acf9
Update telemetry module 2022-03-18 11:34:33 -04:00
Matt Bierner 307364a174
Check the static line cache for markdown custom editors
Fixes #138161
2022-03-17 16:06:07 -07:00
BamBamboozled b6f6a37cbd
Add support for references when no [] exists (#144781)
* add single reference linking regex

* add less invasive regex

* add lookahead to exclude [tag]: <url> case

* add tests for references when no [] exists

* revert integration test script

* make test description clearer

* remove vim swap file (whoops)

Co-authored-by: Jayce <grate.resales.0r@icloud.com>
Co-authored-by: Jefferson Chen <jc@Jeffersons-MBP.attlocal.net>
2022-03-17 12:55:31 -07:00
Matt Bierner bd36b7d6a3
Make sure we set html on markdown preview when it is not visible
Fixes #138630

If the webview does not exist, we need to update the html on it instead of posting a message to it. This makes sure the correct content is shown when the webview is created again

This also removes a previous workaround for this issue that I no longer believe is required
2022-03-08 18:08:47 -08:00
Matt Bierner eaf352e6d1
Hook up watch properly for extension build scripts 2022-03-08 17:54:16 -08:00
Matt Bierner 78e1b3cca8
Bump highlight JS version 2022-03-08 16:27:42 -08:00
Matt Bierner fb6cf37ea9
Move simple-browser to use esbuild for webview scripts 2022-03-08 16:23:14 -08:00
Matt Bierner 2f48496d2b
Switch the markdown preview script to use esbuild 2022-03-08 15:48:13 -08:00
Matt Bierner 79d381f1df
Use vscode-uri instead of node's path
This makes sure we handle other types of uris instead of assuming they are all file uris
2022-03-08 15:48:13 -08:00
Matt Bierner 7f39250d49
Remove extra spread 2022-03-08 14:51:45 -08:00
Matt Bierner 6d64839d01
Fix test 2022-02-24 14:33:55 -08:00
Matt Bierner 2363668892
Don't encode label for md path completions
For #142838
2022-02-24 13:52:31 -08:00
Matt Bierner a56905be63
Use decodeURIComponent instead of decodeUri
This is not actually a uri
2022-02-24 13:52:31 -08:00
David Dossett 4bef8dc8d7 Fix #143837 2022-02-23 16:55:41 -08:00
Matt Bierner 9e3d77b1e4
Also use relative pattern for watching markdown resources 2022-02-22 16:22:55 -08:00
Martin Aeschlimann db9e8fba63 remove unecessary files in build 2022-02-18 20:38:55 +01:00
rebornix a93f7e0b23
indentation. 2022-02-16 18:05:40 -08:00
rebornix 07e840cb51
Support syntax highlighting in code blocks in markdown output 2022-02-16 15:18:54 -08:00
Matt Bierner 2b752cc239
Only remove margin on last child of preview
Fixes #142791
2022-02-11 16:27:02 -08:00
Matt Bierner 7f5be63be9
Escape spaces in file names for md suggestions
Fixes #142838
2022-02-11 16:18:24 -08:00
Kazuyuki Sato a83046f9e6
Decode header suggestions in Markdown path IntelliSense, https://github.com/microsoft/vscode/issues/142330 (#142392) 2022-02-07 09:19:24 -08:00
Matt Bierner 1981fd8ece
Fix markdown previews not having an icon 2022-02-03 12:01:10 -08:00
Johannes Rieken 4a130c40ed
enable @typescript-eslint/member-delimiter-style, https://github.com/microsoft/vscode/issues/140391 2022-02-02 14:35:33 +01:00
Johannes Rieken 7ccb868835
make sure to use .eslintignore when running yarn eslint, this will ensure that cli failure and editor squiggles are always equal 2022-02-02 12:37:29 +01:00
Matt Bierner 90b50dc7e2
Use ?. in a few more places 2022-02-01 13:59:12 -08:00
Megan Rogge 265cca240a
tweak bold regexp (#141968) 2022-02-01 14:10:02 -06:00
Matt Bierner fdd5c8471a
Avoid lookbehind in regexp
Fixes #141689
2022-01-27 17:54:50 -08:00
Matt Bierner 4bdfc9ad01
type -> interface 2022-01-27 17:54:50 -08:00
Matt Bierner ae08924bfa
readonly 2022-01-27 17:54:50 -08:00
Waqas Ali a514979b02
Prevent link highlight in markdown code blocks and spans (#140816)
* Prevent link highlight in markdown codeblocks (#139770)

* Handle inline codespan variants for markdown link provider (#139770)

* Refactor codespan detection in markdown link provider (#139770)
2022-01-25 12:38:50 -08:00
Matt Bierner b44c6b3e0f
Treat / as relative to current folder for loose md files 2022-01-24 15:01:52 -08:00
Matt Bierner 968ef3a828
Implement opening for markdown custom editor
Fixes #138196
2022-01-19 14:41:39 -08:00
Matt Bierner 280658327f
Move toc expanding for notebooks logic into toc 2022-01-19 14:41:38 -08:00
Matt Bierner a2d7dfaf35
Simplify toc structure 2022-01-19 14:41:38 -08:00
Matt Bierner 7756c6d7c7
Enable header completions for rest of notebook markdown cells 2022-01-19 14:41:38 -08:00
Matt Bierner 920a00d09d
Use markdown renderer for text/latex (#139154)
Fixes #123144

Uses the standard markdown renderer for `text/latex` outputs. This enables support for python outputs such as:

```python
%%latex
Given : $\pi = 3.14$ , $\alpha = \frac{3\pi}{4}\, rad$
```
2022-01-19 13:26:52 -08:00
Logan Ramos c047af40b2
Fix compilation 2022-01-19 16:18:14 -05:00
Logan Ramos b22ee20028
Move to @vscode/extension-telemetry 2022-01-19 15:57:17 -05:00
Matt Bierner 0906e08747
Enable path completions in notebook markdown cells 2022-01-19 11:31:10 -08:00
Matt Bierner a3e350e5b3
Enable completions in markdown defintions
Fixes #140602
2022-01-14 15:15:56 -08:00
dependabot[bot] 2fcbbdc3c8
Bump markdown-it in /extensions/markdown-language-features (#140598)
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 12.2.0 to 12.3.2.
- [Release notes](https://github.com/markdown-it/markdown-it/releases)
- [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/markdown-it/markdown-it/compare/12.2.0...12.3.2)

---
updated-dependencies:
- dependency-name: markdown-it
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-13 17:04:53 -08:00
Matt Bierner 3d79cbb912 Fix markdown path suggestions on windows 2022-01-13 16:51:36 -08:00
Matt Bierner a1f3d41472
Use generators 2022-01-12 19:17:45 -08:00
Matt Bierner dc03ccdfa9
Support insert and replace completion styles for paths in markdown 2022-01-12 19:05:37 -08:00
Matt Bierner fb98c6da10
Skip path completion tests for now
A few of these are failing on windows. Need to test over there
2022-01-12 19:05:37 -08:00
Matt Bierner 1f6c069a1a
Adding basic support for reference link completions
For #140602
2022-01-12 19:05:37 -08:00
Matt Bierner a4e529c759
Add basic markdown link completions
For #140602

Only normal links for now. Will add reference links later. Should support the forms:

- `[](dir/file.md)`
- `[](./dir/file.md)`
- `[](/root-dir/file.md)`
- `[](#header)`
- `[](./dir/file.md#header)`
2022-01-12 18:13:21 -08:00
Matt Bierner 43c5bc4795
Always add dirname of current md document to localResourceRoots
Fixes #139907

Previously we only added this dir on `file` file system
2022-01-11 12:39:54 -08:00
Matt Bierner f528f1a415
Make sure markdown refresh forces the preview to be updated 2022-01-08 17:30:37 -08:00
Matt Bierner ef69c9c8d8
Fix markdown pinning test 2022-01-05 14:49:00 -08:00
Mohammad Sadegh Salimi 2a0d371ca3
Adding support for RTL languages for readme markdown preview. (#139644)
* [markdown preview] dir "auto" added to the markdown-body class.

* fix markdown preview for RTL languages
2022-01-05 14:14:32 -08:00
Logan Ramos 932ab8e485
Update vscode extension telemetry modules 2021-12-28 11:06:48 -05:00
Matt Bierner e7b3724e0c
Enable no-case-declarations in codebase (#139243)
Fixes #139236

This can catch tricky programming mistakes that cause a runtime error. See 7e266b2c42 as an example of the type of bug this can prevent
2021-12-15 17:15:35 -08:00
Kaan Genç ab2b080715
hasCustomMarkdownPreview disables markdown preview buttons in context menus (#139241) 2021-12-15 14:19:39 -08:00
Matt Bierner 5cbc8ed825
Enable find widget in markdown preview custom editors
Fixes #139148
2021-12-14 18:37:47 -08:00
Matt Bierner 9f454a39b3
Fix md preview trying to update its content on dispose 2021-12-14 18:37:47 -08:00
Matt Bierner 913639f42a
Strip meta http-equiv tags from webview content updates 2021-12-14 11:53:49 -08:00
Hans 3abcabd4e8
fix generates different html content for the same markdown (#138935)
fix generates different html content for the same markdown when get the cached token
2021-12-13 16:55:54 -08:00
Matt Bierner e88394000f
Fix markdown outline for cases without a space after #
Fixes #138027
2021-12-06 15:58:11 -08:00
Joyce Er efd055b8ba
Refresh markdown preview on all file changes (#138301)
* Refresh markdown preview on all file changes

* Don't watch `https`, `http`, and `data` uris
2021-12-06 12:36:22 -08:00
Matt Bierner c8a321ae17
Skip document link test on web
Fixes #136738

Cant figure out why these tests sometimes timeout in safari on web. Only in ci too it seems :/
2021-11-15 13:27:04 -08:00
Johannes Rieken 09c9d4c293
use enabledApiProposals instead of wildcard property, also update compilation units to only include d.ts-files that are needed, https://github.com/microsoft/vscode/issues/131165 2021-11-12 11:05:57 +01:00
Johannes Rieken a4d426a1c2
split vscode.proposed.d.ts into a file per proposal, https://github.com/microsoft/vscode/issues/131165 2021-11-12 09:48:17 +01:00
Matt Bierner 40fbc4e89e
Unskip test 2021-11-11 09:20:58 -08:00
Johannes Rieken edb91ace89
Merge branch 'main' into joh/vscode-dts 2021-11-11 09:30:36 +01:00
Matt Bierner 3a79384dbf
Tempoary skip sometimes flaky tests 2021-11-10 20:28:43 -08:00
Matt Bierner 4c00e6de08
Adding logging to test
For #136738
2021-11-10 16:07:35 -08:00