Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
2243766d
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,发现更多精彩内容 >>
提交
2243766d
编写于
3月 15, 2020
作者:
M
Martin Aeschlimann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Show semantic token help
上级
e9838277
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
92 addition
and
0 deletion
+92
-0
src/vs/editor/common/model/textModel.ts
src/vs/editor/common/model/textModel.ts
+4
-0
src/vs/editor/common/model/textModelEvents.ts
src/vs/editor/common/model/textModelEvents.ts
+1
-0
src/vs/workbench/contrib/codeEditor/browser/codeEditor.contribution.ts
...nch/contrib/codeEditor/browser/codeEditor.contribution.ts
+1
-0
src/vs/workbench/contrib/codeEditor/browser/semanticTokensHelp.ts
...orkbench/contrib/codeEditor/browser/semanticTokensHelp.ts
+86
-0
未找到文件。
src/vs/editor/common/model/textModel.ts
浏览文件 @
2243766d
...
...
@@ -1754,6 +1754,7 @@ export class TextModel extends Disposable implements model.ITextModel {
if
(
ranges
.
length
>
0
)
{
this
.
_emitModelTokensChangedEvent
({
tokenizationSupportChanged
:
false
,
semanticTokensApplied
:
false
,
ranges
:
ranges
});
}
...
...
@@ -1764,6 +1765,7 @@ export class TextModel extends Disposable implements model.ITextModel {
this
.
_emitModelTokensChangedEvent
({
tokenizationSupportChanged
:
false
,
semanticTokensApplied
:
tokens
!==
null
,
ranges
:
[{
fromLineNumber
:
1
,
toLineNumber
:
this
.
getLineCount
()
}]
});
}
...
...
@@ -1778,6 +1780,7 @@ export class TextModel extends Disposable implements model.ITextModel {
this
.
_tokens
.
flush
();
this
.
_emitModelTokensChangedEvent
({
tokenizationSupportChanged
:
true
,
semanticTokensApplied
:
false
,
ranges
:
[{
fromLineNumber
:
1
,
toLineNumber
:
this
.
_buffer
.
getLineCount
()
...
...
@@ -1790,6 +1793,7 @@ export class TextModel extends Disposable implements model.ITextModel {
this
.
_emitModelTokensChangedEvent
({
tokenizationSupportChanged
:
false
,
semanticTokensApplied
:
true
,
ranges
:
[{
fromLineNumber
:
1
,
toLineNumber
:
this
.
getLineCount
()
}]
});
}
...
...
src/vs/editor/common/model/textModelEvents.ts
浏览文件 @
2243766d
...
...
@@ -87,6 +87,7 @@ export interface IModelDecorationsChangedEvent {
*/
export
interface
IModelTokensChangedEvent
{
readonly
tokenizationSupportChanged
:
boolean
;
readonly
semanticTokensApplied
:
boolean
;
readonly
ranges
:
{
/**
* The start of the range (inclusive)
...
...
src/vs/workbench/contrib/codeEditor/browser/codeEditor.contribution.ts
浏览文件 @
2243766d
...
...
@@ -12,6 +12,7 @@ import './inspectEditorTokens/inspectEditorTokens';
import
'
./quickaccess/gotoLineQuickAccess
'
;
import
'
./quickaccess/gotoSymbolQuickAccess
'
;
import
'
./saveParticipants
'
;
import
'
./semanticTokensHelp
'
;
import
'
./toggleColumnSelection
'
;
import
'
./toggleMinimap
'
;
import
'
./toggleMultiCursorModifier
'
;
...
...
src/vs/workbench/contrib/codeEditor/browser/semanticTokensHelp.ts
0 → 100644
浏览文件 @
2243766d
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import
*
as
nls
from
'
vs/nls
'
;
import
*
as
path
from
'
vs/base/common/path
'
;
import
{
Disposable
,
DisposableStore
}
from
'
vs/base/common/lifecycle
'
;
import
{
ICodeEditor
}
from
'
vs/editor/browser/editorBrowser
'
;
import
{
registerEditorContribution
}
from
'
vs/editor/browser/editorExtensions
'
;
import
{
IEditorContribution
}
from
'
vs/editor/common/editorCommon
'
;
import
{
INotificationService
,
Severity
}
from
'
vs/platform/notification/common/notification
'
;
import
{
IOpenerService
}
from
'
vs/platform/opener/common/opener
'
;
import
{
URI
}
from
'
vs/base/common/uri
'
;
import
{
ITextModel
}
from
'
vs/editor/common/model
'
;
import
{
IWorkbenchThemeService
}
from
'
vs/workbench/services/themes/common/workbenchThemeService
'
;
/**
* Shows a message when semantic tokens are shown the first time.
*/
export
class
SemanticTokensHelp
extends
Disposable
implements
IEditorContribution
{
public
static
readonly
ID
=
'
editor.contrib.semanticHighlightHelp
'
;
constructor
(
_editor
:
ICodeEditor
,
@
INotificationService
_notificationService
:
INotificationService
,
@
IOpenerService
_openerService
:
IOpenerService
,
@
IWorkbenchThemeService
_themeService
:
IWorkbenchThemeService
)
{
super
();
const
toDispose
=
this
.
_register
(
new
DisposableStore
());
const
localToDispose
=
toDispose
.
add
(
new
DisposableStore
());
const
installChangeTokenListener
=
(
model
:
ITextModel
)
=>
{
localToDispose
.
add
(
model
.
onDidChangeTokens
((
e
)
=>
{
if
(
!
e
.
semanticTokensApplied
)
{
return
;
}
toDispose
.
dispose
();
// uninstall all listeners, makes sure the notification is only shown once per window
const
message
=
nls
.
localize
(
{
key
:
'
semanticTokensHelp
'
,
comment
:
[
'
Variable 0 will be a file name.
'
,
'
Variable 1 will be a theme name.
'
]
},
"
Semantic highlighting has been applied on top of the syntax highlighting of {0} as current the theme ({1}) has semantic highlighting enabled.
"
,
path
.
basename
(
model
.
uri
.
path
),
_themeService
.
getColorTheme
().
label
);
_notificationService
.
prompt
(
Severity
.
Info
,
message
,
[
{
label
:
nls
.
localize
(
'
learnMoreButton
'
,
"
Learn More
"
),
run
:
()
=>
{
const
url
=
'
https://go.microsoft.com/fwlink/?linkid=852450
'
;
_openerService
.
open
(
URI
.
parse
(
url
));
}
}
],
{
neverShowAgain
:
{
id
:
'
editor.contrib.semanticTokensHelp
'
}
});
}));
};
const
model
=
_editor
.
getModel
();
if
(
model
!==
null
)
{
installChangeTokenListener
(
model
);
}
toDispose
.
add
(
_editor
.
onDidChangeModel
((
e
)
=>
{
localToDispose
.
clear
();
const
model
=
_editor
.
getModel
();
if
(
!
model
)
{
return
;
}
installChangeTokenListener
(
model
);
}));
}
}
registerEditorContribution
(
SemanticTokensHelp
.
ID
,
SemanticTokensHelp
);
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录