mirror of
https://github.com/Microsoft/vscode
synced 2024-11-05 18:29:38 +00:00
Fixes #83410 - FsProviders causing invalid links
When more than one ext host FileSystemProvider was registered the linkification for the scheme of the provider was causing links to get incorrectly found because the link state machine was setting up the states incorrectly Should hopefully fix MicrosoftDocs/vsonline#28 as well
This commit is contained in:
parent
83253517fd
commit
2528f75970
1 changed files with 5 additions and 0 deletions
|
@ -44,6 +44,7 @@ class FsLinkProvider {
|
||||||
const edges: Edge[] = [];
|
const edges: Edge[] = [];
|
||||||
let prevScheme: string | undefined;
|
let prevScheme: string | undefined;
|
||||||
let prevState: State;
|
let prevState: State;
|
||||||
|
let lastState = State.LastKnownState;
|
||||||
let nextState = State.LastKnownState;
|
let nextState = State.LastKnownState;
|
||||||
for (const scheme of schemes) {
|
for (const scheme of schemes) {
|
||||||
|
|
||||||
|
@ -60,6 +61,8 @@ class FsLinkProvider {
|
||||||
// keep creating new (next) states until the
|
// keep creating new (next) states until the
|
||||||
// end (and the BeforeColon-state) is reached
|
// end (and the BeforeColon-state) is reached
|
||||||
if (pos + 1 === scheme.length) {
|
if (pos + 1 === scheme.length) {
|
||||||
|
// Save the last state here, because we need to continue for the next scheme
|
||||||
|
lastState = nextState;
|
||||||
nextState = State.BeforeColon;
|
nextState = State.BeforeColon;
|
||||||
} else {
|
} else {
|
||||||
nextState += 1;
|
nextState += 1;
|
||||||
|
@ -70,6 +73,8 @@ class FsLinkProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
prevScheme = scheme;
|
prevScheme = scheme;
|
||||||
|
// Restore the last state
|
||||||
|
nextState = lastState;
|
||||||
}
|
}
|
||||||
|
|
||||||
// all link must match this pattern `<scheme>:/<more>`
|
// all link must match this pattern `<scheme>:/<more>`
|
||||||
|
|
Loading…
Reference in a new issue