Skip to content

Commit 56ad631

Browse files
authored
Pick up latest Markdown language service (microsoft#211391)
Fixes microsoft#211389
1 parent 3415990 commit 56ad631

File tree

7 files changed

+25
-14
lines changed

7 files changed

+25
-14
lines changed

extensions/markdown-language-features/server/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "vscode-markdown-languageserver",
33
"description": "Markdown language server",
4-
"version": "0.5.0-alpha.5",
4+
"version": "0.5.0-alpha.6",
55
"author": "Microsoft Corporation",
66
"license": "MIT",
77
"engines": {
@@ -18,7 +18,7 @@
1818
"vscode-languageserver": "^8.1.0",
1919
"vscode-languageserver-textdocument": "^1.0.8",
2020
"vscode-languageserver-types": "^3.17.3",
21-
"vscode-markdown-languageservice": "^0.5.0-alpha.5",
21+
"vscode-markdown-languageservice": "^0.5.0-alpha.6",
2222
"vscode-uri": "^3.0.7"
2323
},
2424
"devDependencies": {

extensions/markdown-language-features/server/src/protocol.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import type * as lsp from 'vscode-languageserver-types';
88
import type * as md from 'vscode-markdown-languageservice';
99

1010
//#region From server
11-
export const parse = new RequestType<{ uri: string }, md.Token[], any>('markdown/parse');
11+
export const parse = new RequestType<{ uri: string; text?: string }, md.Token[], any>('markdown/parse');
1212

1313
export const fs_readFile = new RequestType<{ uri: string }, number[], any>('markdown/fs/readFile');
1414
export const fs_readDirectory = new RequestType<{ uri: string }, [string, { isDirectory: boolean }][], any>('markdown/fs/readDirectory');

extensions/markdown-language-features/server/src/server.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,13 @@ export async function startVsCodeServer(connection: Connection) {
2929
slugifier = md.githubSlugifier;
3030

3131
tokenize(document: md.ITextDocument): Promise<md.Token[]> {
32-
return connection.sendRequest(protocol.parse, { uri: document.uri.toString() });
32+
return connection.sendRequest(protocol.parse, {
33+
uri: document.uri,
34+
35+
// Clients won't be able to read temp documents.
36+
// Send along the full text for parsing.
37+
text: document.version < 0 ? document.getText() : undefined
38+
});
3339
}
3440
};
3541

extensions/markdown-language-features/server/yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,10 @@ vscode-languageserver@^8.1.0:
151151
dependencies:
152152
vscode-languageserver-protocol "3.17.3"
153153

154-
vscode-markdown-languageservice@^0.5.0-alpha.5:
155-
version "0.5.0-alpha.5"
156-
resolved "https://registry.yarnpkg.com/vscode-markdown-languageservice/-/vscode-markdown-languageservice-0.5.0-alpha.5.tgz#d4c5a4b7ab8d03a9dbbdf64ce51862686ca05cf8"
157-
integrity sha512-yu2TbIj2alrgh7JAzGQS4YadSBX4MDT7UjgrT4BQvtGfXOPC4G76llP4iZpkDWPBvAXywxnMZ9eZ3N15f81InA==
154+
vscode-markdown-languageservice@^0.5.0-alpha.6:
155+
version "0.5.0-alpha.6"
156+
resolved "https://registry.yarnpkg.com/vscode-markdown-languageservice/-/vscode-markdown-languageservice-0.5.0-alpha.6.tgz#3aa5fc94fea3d5d7f0cd970e64348e2791643dc0"
157+
integrity sha512-mA1JCA7aHHSek5gr8Yv7C3esEPo2hRrgxmoZUDRro+pnwbdsJuRaWOKWtCWxejRUVVVhc/5yTK2X64Jx9OCmFQ==
158158
dependencies:
159159
"@vscode/l10n" "^0.0.10"
160160
node-html-parser "^6.1.5"

extensions/markdown-language-features/src/client/client.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { IMdParser } from '../markdownEngine';
99
import { IDisposable } from '../util/dispose';
1010
import { looksLikeMarkdownPath, markdownFileExtensions } from '../util/file';
1111
import { FileWatcherManager } from './fileWatchingManager';
12+
import { InMemoryDocument } from './inMemoryDocument';
1213
import * as proto from './protocol';
1314
import { VsCodeMdWorkspace } from './workspace';
1415

@@ -101,11 +102,15 @@ export async function startClient(factory: LanguageClientConstructor, parser: IM
101102

102103
client.onRequest(proto.parse, async (e) => {
103104
const uri = vscode.Uri.parse(e.uri);
104-
const doc = await workspace.getOrLoadMarkdownDocument(uri);
105-
if (doc) {
106-
return parser.tokenize(doc);
105+
if (typeof e.text === 'string') {
106+
return parser.tokenize(new InMemoryDocument(uri, e.text, -1));
107107
} else {
108-
return [];
108+
const doc = await workspace.getOrLoadMarkdownDocument(uri);
109+
if (doc) {
110+
return parser.tokenize(doc);
111+
} else {
112+
return [];
113+
}
109114
}
110115
});
111116

extensions/markdown-language-features/src/client/protocol.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export type ResolvedDocumentLinkTarget =
1616
| { readonly kind: 'external'; readonly uri: vscode.Uri };
1717

1818
//#region From server
19-
export const parse = new RequestType<{ uri: string }, Token[], any>('markdown/parse');
19+
export const parse = new RequestType<{ uri: string; text?: string }, Token[], any>('markdown/parse');
2020

2121
export const fs_readFile = new RequestType<{ uri: string }, number[], any>('markdown/fs/readFile');
2222
export const fs_readDirectory = new RequestType<{ uri: string }, [string, { isDirectory: boolean }][], any>('markdown/fs/readDirectory');

extensions/markdown-language-features/src/markdownEngine.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class TokenCache {
5555
public tryGetCached(document: ITextDocument, config: MarkdownItConfig): Token[] | undefined {
5656
if (this._cachedDocument
5757
&& this._cachedDocument.uri.toString() === document.uri.toString()
58-
&& this._cachedDocument.version === document.version
58+
&& document.version >= 0 && this._cachedDocument.version === document.version
5959
&& this._cachedDocument.config.breaks === config.breaks
6060
&& this._cachedDocument.config.linkify === config.linkify
6161
) {

0 commit comments

Comments
 (0)