Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
110b5acf
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
110b5acf
编写于
9月 27, 2019
作者:
A
Alexandru Dima
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
wip
上级
7e4991aa
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
39 addition
and
0 deletion
+39
-0
extensions/typescript-language-features/src/features/semanticColoring.ts
...script-language-features/src/features/semanticColoring.ts
+1
-0
src/vs/editor/common/model/textModel.ts
src/vs/editor/common/model/textModel.ts
+13
-0
src/vs/editor/common/services/modelServiceImpl.ts
src/vs/editor/common/services/modelServiceImpl.ts
+25
-0
未找到文件。
extensions/typescript-language-features/src/features/semanticColoring.ts
浏览文件 @
110b5acf
...
...
@@ -109,6 +109,7 @@ class SemanticColoringProvider implements vscode.SemanticColoringProvider {
}
export
function
register
(
_selector
:
vscode
.
DocumentSelector
,
client
:
ITypeScriptServiceClient
)
{
const
provider
=
new
SemanticColoringProvider
(
client
);
...
...
src/vs/editor/common/model/textModel.ts
浏览文件 @
110b5acf
...
...
@@ -276,6 +276,7 @@ export class TextModel extends Disposable implements model.ITextModel {
private
_languageIdentifier
:
LanguageIdentifier
;
private
readonly
_languageRegistryListener
:
IDisposable
;
private
readonly
_tokens
:
TokensStore
;
private
readonly
_tokens2
:
TokensStore
;
private
readonly
_tokenization
:
TextModelTokenization
;
//#endregion
...
...
@@ -339,6 +340,7 @@ export class TextModel extends Disposable implements model.ITextModel {
this
.
_trimAutoWhitespaceLines
=
null
;
this
.
_tokens
=
new
TokensStore
();
this
.
_tokens2
=
new
TokensStore
();
this
.
_tokenization
=
new
TextModelTokenization
(
this
);
}
...
...
@@ -414,6 +416,7 @@ export class TextModel extends Disposable implements model.ITextModel {
// Flush all tokens
this
.
_tokens
.
flush
();
this
.
_tokens2
.
flush
();
// Destroy all my decorations
this
.
_decorations
=
Object
.
create
(
null
);
...
...
@@ -1263,6 +1266,7 @@ export class TextModel extends Disposable implements model.ITextModel {
const
change
=
contentChanges
[
i
];
const
[
eolCount
,
firstLineLength
]
=
countEOL
(
change
.
text
);
this
.
_tokens
.
acceptEdit
(
change
.
range
,
eolCount
,
firstLineLength
);
this
.
_tokens2
.
acceptEdit
(
change
.
range
,
eolCount
,
firstLineLength
);
this
.
_onDidChangeDecorations
.
fire
();
this
.
_decorationsTree
.
acceptReplace
(
change
.
rangeOffset
,
change
.
rangeLength
,
change
.
text
.
length
,
change
.
forceMoveMarkers
);
...
...
@@ -1716,6 +1720,10 @@ export class TextModel extends Disposable implements model.ITextModel {
});
}
public
setSemanticTokens
(
tokens
:
MultilineTokens
[]):
void
{
}
public
tokenizeViewport
(
startLineNumber
:
number
,
endLineNumber
:
number
):
void
{
startLineNumber
=
Math
.
max
(
1
,
startLineNumber
);
endLineNumber
=
Math
.
min
(
this
.
_buffer
.
getLineCount
(),
endLineNumber
);
...
...
@@ -1733,6 +1741,11 @@ export class TextModel extends Disposable implements model.ITextModel {
});
}
public
clearSemanticTokens
():
void
{
this
.
_tokens2
.
flush
();
console
.
log
(
`todo - shoud emit event?`
);
}
private
_emitModelTokensChangedEvent
(
e
:
IModelTokensChangedEvent
):
void
{
if
(
!
this
.
_isDisposing
)
{
this
.
_onDidChangeTokens
.
fire
(
e
);
...
...
src/vs/editor/common/services/modelServiceImpl.ts
浏览文件 @
110b5acf
...
...
@@ -426,3 +426,28 @@ export class ModelServiceImpl extends Disposable implements IModelService {
export
interface
ILineSequence
{
getLineContent
(
lineNumber
:
number
):
string
;
}
class
SemanticColoring
extends
Disposable
{
private
_watchers
:
Record
<
string
,
ModelSemanticColoring
>
;
constructor
(
modelService
:
IModelService
)
{
super
();
this
.
_watchers
=
Object
.
create
(
null
);
this
.
_register
(
modelService
.
onModelAdded
((
model
)
=>
{
this
.
_watchers
[
model
.
uri
.
toString
()]
=
new
ModelSemanticColoring
(
model
);
}));
this
.
_register
(
modelService
.
onModelRemoved
((
model
)
=>
{
this
.
_watchers
[
model
.
uri
.
toString
()].
dispose
();
delete
this
.
_watchers
[
model
.
uri
.
toString
()];
}));
}
}
class
ModelSemanticColoring
extends
Disposable
{
constructor
(
model
:
ITextModel
)
{
super
();
this
.
_register
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录