未验证 提交 5bcfb8e8 编写于 作者: A Alex Dima

Fixes #67022: Do not terminate at space when in square brackets

上级 e95476a2
......@@ -223,6 +223,7 @@ export class LinkComputer {
let state = State.Start;
let hasOpenParens = false;
let hasOpenSquareBracket = false;
let inSquareBrackets = false;
let hasOpenCurlyBracket = false;
while (j < len) {
......@@ -241,10 +242,12 @@ export class LinkComputer {
chClass = (hasOpenParens ? CharacterClass.None : CharacterClass.ForceTermination);
break;
case CharCode.OpenSquareBracket:
inSquareBrackets = true;
hasOpenSquareBracket = true;
chClass = CharacterClass.None;
break;
case CharCode.CloseSquareBracket:
inSquareBrackets = false;
chClass = (hasOpenSquareBracket ? CharacterClass.None : CharacterClass.ForceTermination);
break;
case CharCode.OpenCurlyBrace:
......@@ -272,6 +275,10 @@ export class LinkComputer {
// `|` terminates a link if the link began with `|`
chClass = (linkBeginChCode === CharCode.Pipe) ? CharacterClass.ForceTermination : CharacterClass.None;
break;
case CharCode.Space:
// ` ` allow space in between [ and ]
chClass = (inSquareBrackets ? CharacterClass.None : CharacterClass.ForceTermination);
break;
default:
chClass = classifier.get(chCode);
}
......
......@@ -216,4 +216,11 @@ suite('Editor Modes - Link Computer', () => {
' https://portal.azure.com '
);
});
test('issue #67022: Space as end of hyperlink isn\'t always good idea', () => {
assertLink(
'aa https://foo.bar/[this is foo site] aa',
' https://foo.bar/[this is foo site] '
);
});
});
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册