提交 63376cca 编写于 作者: Y Yu-Hsin Hung

Fix link parsing for non-ASCII characters

上级 6ea12661
......@@ -33,14 +33,6 @@ var getCharacterClasses = (function() {
var CANNOT_END_WITH_CHARACTERS = '.,;';
var _cachedResult: CharacterClass[] = null;
var findLargestCharCode = (str:string):number => {
var r = 0;
for (var i = 0, len = str.length; i < len; i++) {
r = Math.max(r, str.charCodeAt(i));
}
return r;
};
var set = (str:string, toWhat:CharacterClass): void => {
for (var i = 0, len = str.length; i < len; i++) {
_cachedResult[str.charCodeAt(i)] = toWhat;
......@@ -49,15 +41,9 @@ var getCharacterClasses = (function() {
return function(): CharacterClass[] {
if (_cachedResult === null) {
// Find cachedResult size
var largestCharCode = Math.max(
findLargestCharCode(FORCE_TERMINATION_CHARACTERS),
findLargestCharCode(CANNOT_END_WITH_CHARACTERS)
);
// Initialize cachedResult
// Initialize cachedResult for ASCII characters
_cachedResult = [];
for (var i = 0; i < largestCharCode; i++) {
for (var i = 0; i < 128; i++) {
_cachedResult[i] = CharacterClass.None;
}
......@@ -153,7 +139,7 @@ class LinkComputer {
chClass = (hasOpenCurlyBracket ? CharacterClass.None : CharacterClass.ForceTermination);
break;
default:
chClass = (chCode < characterClassesLength ? characterClasses[chCode] : CharacterClass.None);
chClass = (chCode < characterClassesLength ? characterClasses[chCode] : CharacterClass.ForceTermination);
}
// Check if character terminates link
......
......@@ -150,6 +150,10 @@ suite('Editor Modes - Link Computer', () => {
'For instructions, see http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx.</value>',
' http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx '
);
assertLink(
'請參閱 http://go.microsoft.com/fwlink/?LinkId=761051。',
' http://go.microsoft.com/fwlink/?LinkId=761051 '
);
// foo bar (see http://www.w3schools.com/tags/att_iframe_sandbox.asp)
});
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册