Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
80a9ecff
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,发现更多精彩内容 >>
未验证
提交
80a9ecff
编写于
11月 05, 2020
作者:
C
Connor Peet
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
debug: cancel hover evaluate requests when hovering off dialog
Fixes
https://github.com/microsoft/vscode/issues/91457
上级
451c2b61
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
17 addition
and
5 deletion
+17
-5
src/vs/workbench/contrib/debug/browser/debugEditorContribution.ts
...orkbench/contrib/debug/browser/debugEditorContribution.ts
+1
-1
src/vs/workbench/contrib/debug/browser/debugHover.ts
src/vs/workbench/contrib/debug/browser/debugHover.ts
+16
-4
未找到文件。
src/vs/workbench/contrib/debug/browser/debugEditorContribution.ts
浏览文件 @
80a9ecff
...
@@ -355,7 +355,7 @@ export class DebugEditorContribution implements IDebugEditorContribution {
...
@@ -355,7 +355,7 @@ export class DebugEditorContribution implements IDebugEditorContribution {
}
}
private
hideHoverWidget
():
void
{
private
hideHoverWidget
():
void
{
if
(
!
this
.
hideHoverScheduler
.
isScheduled
()
&&
this
.
hoverWidget
.
is
Visible
())
{
if
(
!
this
.
hideHoverScheduler
.
isScheduled
()
&&
this
.
hoverWidget
.
willBe
Visible
())
{
this
.
hideHoverScheduler
.
schedule
();
this
.
hideHoverScheduler
.
schedule
();
}
}
this
.
showHoverScheduler
.
cancel
();
this
.
showHoverScheduler
.
cancel
();
...
...
src/vs/workbench/contrib/debug/browser/debugHover.ts
浏览文件 @
80a9ecff
...
@@ -31,7 +31,7 @@ import { coalesce } from 'vs/base/common/arrays';
...
@@ -31,7 +31,7 @@ import { coalesce } from 'vs/base/common/arrays';
import
{
IAsyncDataSource
}
from
'
vs/base/browser/ui/tree/tree
'
;
import
{
IAsyncDataSource
}
from
'
vs/base/browser/ui/tree/tree
'
;
import
{
VariablesRenderer
}
from
'
vs/workbench/contrib/debug/browser/variablesView
'
;
import
{
VariablesRenderer
}
from
'
vs/workbench/contrib/debug/browser/variablesView
'
;
import
{
EvaluatableExpressionProviderRegistry
}
from
'
vs/editor/common/modes
'
;
import
{
EvaluatableExpressionProviderRegistry
}
from
'
vs/editor/common/modes
'
;
import
{
CancellationToken
}
from
'
vs/base/common/cancellation
'
;
import
{
CancellationToken
Source
}
from
'
vs/base/common/cancellation
'
;
const
$
=
dom
.
$
;
const
$
=
dom
.
$
;
...
@@ -70,6 +70,7 @@ export class DebugHoverWidget implements IContentWidget {
...
@@ -70,6 +70,7 @@ export class DebugHoverWidget implements IContentWidget {
allowEditorOverflow
=
true
;
allowEditorOverflow
=
true
;
private
_isVisible
:
boolean
;
private
_isVisible
:
boolean
;
private
showCancellationSource
?:
CancellationTokenSource
;
private
domNode
!
:
HTMLElement
;
private
domNode
!
:
HTMLElement
;
private
tree
!
:
AsyncDataTree
<
IExpression
,
IExpression
,
any
>
;
private
tree
!
:
AsyncDataTree
<
IExpression
,
IExpression
,
any
>
;
private
showAtPosition
:
Position
|
null
;
private
showAtPosition
:
Position
|
null
;
...
@@ -161,13 +162,17 @@ export class DebugHoverWidget implements IContentWidget {
...
@@ -161,13 +162,17 @@ export class DebugHoverWidget implements IContentWidget {
}
}
isHovered
():
boolean
{
isHovered
():
boolean
{
return
this
.
domNode
.
matches
(
'
:hover
'
);
return
!!
this
.
domNode
?
.
matches
(
'
:hover
'
);
}
}
isVisible
():
boolean
{
isVisible
():
boolean
{
return
this
.
_isVisible
;
return
this
.
_isVisible
;
}
}
willBeVisible
():
boolean
{
return
!!
this
.
showCancellationSource
;
}
getId
():
string
{
getId
():
string
{
return
DebugHoverWidget
.
ID
;
return
DebugHoverWidget
.
ID
;
}
}
...
@@ -177,6 +182,8 @@ export class DebugHoverWidget implements IContentWidget {
...
@@ -177,6 +182,8 @@ export class DebugHoverWidget implements IContentWidget {
}
}
async
showAt
(
range
:
Range
,
focus
:
boolean
):
Promise
<
void
>
{
async
showAt
(
range
:
Range
,
focus
:
boolean
):
Promise
<
void
>
{
this
.
showCancellationSource
?.
cancel
();
const
cancellationSource
=
this
.
showCancellationSource
=
new
CancellationTokenSource
();
const
session
=
this
.
debugService
.
getViewModel
().
focusedSession
;
const
session
=
this
.
debugService
.
getViewModel
().
focusedSession
;
if
(
!
session
||
!
this
.
editor
.
hasModel
())
{
if
(
!
session
||
!
this
.
editor
.
hasModel
())
{
...
@@ -193,7 +200,7 @@ export class DebugHoverWidget implements IContentWidget {
...
@@ -193,7 +200,7 @@ export class DebugHoverWidget implements IContentWidget {
const
supports
=
EvaluatableExpressionProviderRegistry
.
ordered
(
model
);
const
supports
=
EvaluatableExpressionProviderRegistry
.
ordered
(
model
);
const
promises
=
supports
.
map
(
support
=>
{
const
promises
=
supports
.
map
(
support
=>
{
return
Promise
.
resolve
(
support
.
provideEvaluatableExpression
(
model
,
pos
,
CancellationToken
.
None
)).
then
(
expression
=>
{
return
Promise
.
resolve
(
support
.
provideEvaluatableExpression
(
model
,
pos
,
cancellationSource
.
token
)).
then
(
expression
=>
{
return
expression
;
return
expression
;
},
err
=>
{
},
err
=>
{
//onUnexpectedExternalError(err);
//onUnexpectedExternalError(err);
...
@@ -236,7 +243,7 @@ export class DebugHoverWidget implements IContentWidget {
...
@@ -236,7 +243,7 @@ export class DebugHoverWidget implements IContentWidget {
}
}
}
}
if
(
!
expression
||
(
expression
instanceof
Expression
&&
!
expression
.
available
))
{
if
(
cancellationSource
.
token
.
isCancellationRequested
||
!
expression
||
(
expression
instanceof
Expression
&&
!
expression
.
available
))
{
this
.
hide
();
this
.
hide
();
return
;
return
;
}
}
...
@@ -315,6 +322,11 @@ export class DebugHoverWidget implements IContentWidget {
...
@@ -315,6 +322,11 @@ export class DebugHoverWidget implements IContentWidget {
hide
():
void
{
hide
():
void
{
if
(
this
.
showCancellationSource
)
{
this
.
showCancellationSource
.
cancel
();
this
.
showCancellationSource
=
undefined
;
}
if
(
!
this
.
_isVisible
)
{
if
(
!
this
.
_isVisible
)
{
return
;
return
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录