Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
b2597ff2
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b2597ff2
编写于
3月 03, 2016
作者:
A
Alex Dima
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Do not generate brackets when tokenizing JS/TS
上级
63c9d46c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
22 addition
and
40 deletion
+22
-40
src/vs/languages/less/test/common/colorizer.test.ts
src/vs/languages/less/test/common/colorizer.test.ts
+0
-1
src/vs/languages/typescript/common/features/tokenization.ts
src/vs/languages/typescript/common/features/tokenization.ts
+9
-20
src/vs/languages/typescript/test/common/tokenization.test.ts
src/vs/languages/typescript/test/common/tokenization.test.ts
+13
-19
未找到文件。
src/vs/languages/less/test/common/colorizer.test.ts
浏览文件 @
b2597ff2
...
...
@@ -631,7 +631,6 @@ suite('LESS-tokenization', () => {
{
startIndex
:
16
,
type
:
''
},
{
startIndex
:
17
,
type
:
'
identifier.js
'
},
{
startIndex
:
24
,
type
:
'
delimiter.parenthesis.js
'
},
{
startIndex
:
25
,
type
:
'
delimiter.parenthesis.js
'
},
{
startIndex
:
26
,
type
:
'
punctuation.backtick.less
'
},
{
startIndex
:
27
,
type
:
''
},
{
startIndex
:
28
,
type
:
'
comment.less
'
}
...
...
src/vs/languages/typescript/common/features/tokenization.ts
浏览文件 @
b2597ff2
...
...
@@ -95,8 +95,8 @@ function tokenize(bracketTypeTable: { [i: number]: string }, tokenTypeTable: { [
modeTransitions
:
[{
startIndex
:
offsetDelta
,
mode
:
state
.
getMode
()
}],
};
function
appendFn
(
startIndex
:
number
,
type
:
string
,
bracket
:
Modes
.
Bracket
):
void
{
if
(
ret
.
tokens
.
length
===
0
||
bracket
!==
void
0
||
arrays
.
tail
(
ret
.
tokens
).
type
!==
type
)
{
function
appendFn
(
startIndex
:
number
,
type
:
string
):
void
{
if
(
ret
.
tokens
.
length
===
0
||
arrays
.
tail
(
ret
.
tokens
).
type
!==
type
)
{
ret
.
tokens
.
push
(
new
supports
.
Token
(
startIndex
,
type
));
}
}
...
...
@@ -116,28 +116,25 @@ function tokenize(bracketTypeTable: { [i: number]: string }, tokenTypeTable: { [
for
(
let
entry
of
result
.
entries
)
{
var
bracket
=
Modes
.
Bracket
.
None
,
type
:
string
;
var
type
:
string
;
if
(
entry
.
classification
===
ts
.
TokenClass
.
Punctuation
)
{
// punctions: check for brackets: (){}[]
var
ch
=
text
.
charCodeAt
(
offset
);
bracket
=
characterToBracket
[
ch
]
||
Modes
.
Bracket
.
None
;
type
=
bracketTypeTable
[
ch
]
||
tokenTypeTable
[
entry
.
classification
];
appendFn
(
offset
+
offsetDelta
,
type
,
bracket
);
appendFn
(
offset
+
offsetDelta
,
type
);
}
else
if
(
entry
.
classification
===
ts
.
TokenClass
.
Comment
)
{
// comments: check for JSDoc, block, and line comments
if
(
ret
.
endState
.
inJsDocComment
||
/
\/\*\*
.*
\*\/
/
.
test
(
text
.
substr
(
offset
,
entry
.
length
)))
{
appendFn
(
offset
+
offsetDelta
,
isTypeScript
?
'
comment.doc.ts
'
:
'
comment.doc.js
'
,
Modes
.
Bracket
.
None
);
appendFn
(
offset
+
offsetDelta
,
isTypeScript
?
'
comment.doc.ts
'
:
'
comment.doc.js
'
);
}
else
{
appendFn
(
offset
+
offsetDelta
,
isTypeScript
?
'
comment.ts
'
:
'
comment.js
'
,
Modes
.
Bracket
.
None
);
appendFn
(
offset
+
offsetDelta
,
isTypeScript
?
'
comment.ts
'
:
'
comment.js
'
);
}
}
else
{
// everything else
appendFn
(
offset
+
offsetDelta
,
tokenTypeTable
[
entry
.
classification
]
||
strings
.
empty
,
void
0
);
tokenTypeTable
[
entry
.
classification
]
||
strings
.
empty
);
}
offset
+=
entry
.
length
;
...
...
@@ -146,14 +143,6 @@ function tokenize(bracketTypeTable: { [i: number]: string }, tokenTypeTable: { [
return
ret
;
}
var
characterToBracket
=
collections
.
createNumberDictionary
<
number
>
();
characterToBracket
[
'
(
'
.
charCodeAt
(
0
)]
=
Modes
.
Bracket
.
Open
;
characterToBracket
[
'
)
'
.
charCodeAt
(
0
)]
=
Modes
.
Bracket
.
Close
;
characterToBracket
[
'
{
'
.
charCodeAt
(
0
)]
=
Modes
.
Bracket
.
Open
;
characterToBracket
[
'
}
'
.
charCodeAt
(
0
)]
=
Modes
.
Bracket
.
Close
;
characterToBracket
[
'
[
'
.
charCodeAt
(
0
)]
=
Modes
.
Bracket
.
Open
;
characterToBracket
[
'
]
'
.
charCodeAt
(
0
)]
=
Modes
.
Bracket
.
Close
;
var
tsBracketTypeTable
=
collections
.
createNumberDictionary
<
string
>
();
tsBracketTypeTable
[
'
(
'
.
charCodeAt
(
0
)]
=
'
delimiter.parenthesis.ts
'
;
tsBracketTypeTable
[
'
)
'
.
charCodeAt
(
0
)]
=
'
delimiter.parenthesis.ts
'
;
...
...
@@ -189,9 +178,9 @@ jsTokenTypeTable[ts.TokenClass.RegExpLiteral] = 'regexp.js';
jsTokenTypeTable
[
ts
.
TokenClass
.
StringLiteral
]
=
'
string.js
'
;
function
checkSheBang
(
state
:
State
,
deltaOffset
:
number
,
line
:
string
,
appendFn
:
(
startIndex
:
number
,
type
:
string
,
bracket
:
Modes
.
Bracket
)
=>
void
):
boolean
{
function
checkSheBang
(
state
:
State
,
deltaOffset
:
number
,
line
:
string
,
appendFn
:
(
startIndex
:
number
,
type
:
string
)
=>
void
):
boolean
{
if
(
line
.
indexOf
(
'
#!
'
)
===
0
)
{
appendFn
(
deltaOffset
,
'
comment.shebang
'
,
Modes
.
Bracket
.
None
);
appendFn
(
deltaOffset
,
'
comment.shebang
'
);
return
true
;
}
}
src/vs/languages/typescript/test/common/tokenization.test.ts
浏览文件 @
b2597ff2
...
...
@@ -6,7 +6,6 @@
import
'
vs/languages/javascript/common/javascript.contribution
'
;
import
EditorCommon
=
require
(
'
vs/editor/common/editorCommon
'
);
import
Modes
=
require
(
'
vs/editor/common/modes
'
);
import
modesUtil
=
require
(
'
vs/editor/test/common/modesUtil
'
);
...
...
@@ -68,12 +67,11 @@ suite('TS/JS - syntax highlighting', () => {
{
startIndex
:
6
,
type
:
'
delimiter.js
'
},
{
startIndex
:
7
,
type
:
''
},
{
startIndex
:
8
,
type
:
'
keyword.js
'
},
{
startIndex
:
16
,
type
:
'
delimiter.parenthesis.js
'
,
bracket
:
Modes
.
Bracket
.
Open
},
{
startIndex
:
17
,
type
:
'
delimiter.parenthesis.js
'
,
bracket
:
Modes
.
Bracket
.
Close
},
{
startIndex
:
16
,
type
:
'
delimiter.parenthesis.js
'
},
{
startIndex
:
18
,
type
:
''
},
{
startIndex
:
19
,
type
:
'
delimiter.bracket.js
'
,
bracket
:
Modes
.
Bracket
.
Open
},
{
startIndex
:
19
,
type
:
'
delimiter.bracket.js
'
},
{
startIndex
:
20
,
type
:
''
},
{
startIndex
:
21
,
type
:
'
delimiter.bracket.js
'
,
bracket
:
Modes
.
Bracket
.
Close
},
{
startIndex
:
21
,
type
:
'
delimiter.bracket.js
'
},
{
startIndex
:
22
,
type
:
'
delimiter.js
'
}
]}],
...
...
@@ -457,58 +455,54 @@ suite('TS/JS - syntax highlighting', () => {
{
startIndex
:
11
,
type
:
'
delimiter.js
'
}
]}],
// Bracket Matching
[{
line
:
'
{ key: 123 }
'
,
tokens
:
[
{
startIndex
:
0
,
type
:
'
delimiter.bracket.js
'
,
bracket
:
Modes
.
Bracket
.
Open
},
{
startIndex
:
0
,
type
:
'
delimiter.bracket.js
'
},
{
startIndex
:
1
,
type
:
''
},
{
startIndex
:
2
,
type
:
'
identifier.js
'
},
{
startIndex
:
5
,
type
:
'
delimiter.js
'
},
{
startIndex
:
6
,
type
:
''
},
{
startIndex
:
7
,
type
:
'
number.js
'
},
{
startIndex
:
10
,
type
:
''
},
{
startIndex
:
11
,
type
:
'
delimiter.bracket.js
'
,
bracket
:
Modes
.
Bracket
.
Close
}
{
startIndex
:
11
,
type
:
'
delimiter.bracket.js
'
}
]}],
[{
line
:
'
[1,2,3]
'
,
tokens
:
[
{
startIndex
:
0
,
type
:
'
delimiter.array.js
'
,
bracket
:
Modes
.
Bracket
.
Open
},
{
startIndex
:
0
,
type
:
'
delimiter.array.js
'
},
{
startIndex
:
1
,
type
:
'
number.js
'
},
{
startIndex
:
2
,
type
:
'
delimiter.js
'
},
{
startIndex
:
3
,
type
:
'
number.js
'
},
{
startIndex
:
4
,
type
:
'
delimiter.js
'
},
{
startIndex
:
5
,
type
:
'
number.js
'
},
{
startIndex
:
6
,
type
:
'
delimiter.array.js
'
,
bracket
:
Modes
.
Bracket
.
Close
}
{
startIndex
:
6
,
type
:
'
delimiter.array.js
'
}
]}],
[{
line
:
'
foo(123);
'
,
tokens
:
[
{
startIndex
:
0
,
type
:
'
identifier.js
'
},
{
startIndex
:
3
,
type
:
'
delimiter.parenthesis.js
'
,
bracket
:
Modes
.
Bracket
.
Open
},
{
startIndex
:
3
,
type
:
'
delimiter.parenthesis.js
'
},
{
startIndex
:
4
,
type
:
'
number.js
'
},
{
startIndex
:
7
,
type
:
'
delimiter.parenthesis.js
'
,
bracket
:
Modes
.
Bracket
.
Close
},
{
startIndex
:
7
,
type
:
'
delimiter.parenthesis.js
'
},
{
startIndex
:
8
,
type
:
'
delimiter.js
'
}
]}],
[{
line
:
'
{a:{b:[]}}
'
,
tokens
:
[
{
startIndex
:
0
,
type
:
'
delimiter.bracket.js
'
,
bracket
:
Modes
.
Bracket
.
Open
},
{
startIndex
:
0
,
type
:
'
delimiter.bracket.js
'
},
{
startIndex
:
1
,
type
:
'
identifier.js
'
},
{
startIndex
:
2
,
type
:
'
delimiter.js
'
},
{
startIndex
:
3
,
type
:
'
delimiter.bracket.js
'
,
bracket
:
Modes
.
Bracket
.
Open
},
{
startIndex
:
3
,
type
:
'
delimiter.bracket.js
'
},
{
startIndex
:
4
,
type
:
'
identifier.js
'
},
{
startIndex
:
5
,
type
:
'
delimiter.js
'
},
{
startIndex
:
6
,
type
:
'
delimiter.array.js
'
,
bracket
:
Modes
.
Bracket
.
Open
},
{
startIndex
:
7
,
type
:
'
delimiter.array.js
'
,
bracket
:
Modes
.
Bracket
.
Close
},
{
startIndex
:
8
,
type
:
'
delimiter.bracket.js
'
,
bracket
:
Modes
.
Bracket
.
Close
},
{
startIndex
:
9
,
type
:
'
delimiter.bracket.js
'
,
bracket
:
Modes
.
Bracket
.
Close
}
{
startIndex
:
6
,
type
:
'
delimiter.array.js
'
},
{
startIndex
:
8
,
type
:
'
delimiter.bracket.js
'
}
]}],
// No Bracket Matching inside strings
[{
line
:
'
x = "[{()}]"
'
,
tokens
:
[
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录