Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
d1dd77cf
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,发现更多精彩内容 >>
提交
d1dd77cf
编写于
9月 05, 2017
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
hide lightbulb when dragging over it, less flicker when showing (again) on the same line
上级
c4f74d6d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
13 deletion
+28
-13
src/vs/editor/contrib/quickFix/browser/lightBulbWidget.ts
src/vs/editor/contrib/quickFix/browser/lightBulbWidget.ts
+28
-13
未找到文件。
src/vs/editor/contrib/quickFix/browser/lightBulbWidget.ts
浏览文件 @
d1dd77cf
...
...
@@ -8,6 +8,7 @@ import 'vs/css!./lightBulbWidget';
import
{
CancellationTokenSource
}
from
'
vs/base/common/cancellation
'
;
import
{
dispose
,
IDisposable
}
from
'
vs/base/common/lifecycle
'
;
import
Event
,
{
Emitter
}
from
'
vs/base/common/event
'
;
import
{
GlobalMouseMoveMonitor
,
IStandardMouseMoveEventData
,
standardMouseMoveMerger
}
from
'
vs/base/browser/globalMouseMoveMonitor
'
;
import
*
as
dom
from
'
vs/base/browser/dom
'
;
import
{
ICodeEditor
,
IContentWidget
,
IContentWidgetPosition
,
ContentWidgetPositionPreference
}
from
'
vs/editor/browser/editorBrowser
'
;
import
{
QuickFixComputeEvent
}
from
'
./quickFixModel
'
;
...
...
@@ -50,13 +51,20 @@ export class LightBulbWidget implements IDisposable, IContentWidget {
y
:
top
+
height
+
pad
});
}));
this
.
_disposables
.
push
(
this
.
_editor
.
onDidChangeCursorSelection
(
e
=>
{
// hide lightbulb when selection starts to
// enclose it
if
(
this
.
_position
&&
e
.
selection
.
containsPosition
(
this
.
_position
.
position
))
{
this
.
hide
();
this
.
_disposables
.
push
(
dom
.
addDisposableListener
(
this
.
_domNode
,
'
mouseenter
'
,
(
e
:
MouseEvent
)
=>
{
if
((
e
.
buttons
&
1
)
!==
1
)
{
return
;
}
// mouse enters lightbulb while the primary/left button
// is being pressed -> hide the lightbulb and block future
// showings until mouse is released
this
.
hide
();
dom
.
addClass
(
this
.
_domNode
,
'
hidden
'
);
const
monitor
=
new
GlobalMouseMoveMonitor
<
IStandardMouseMoveEventData
>
();
monitor
.
startMonitoring
(
standardMouseMoveMerger
,
()
=>
{
},
()
=>
{
monitor
.
dispose
();
dom
.
removeClass
(
this
.
_domNode
,
'
hidden
'
);
});
}));
}
...
...
@@ -78,14 +86,23 @@ export class LightBulbWidget implements IDisposable, IContentWidget {
}
set
model
(
value
:
QuickFixComputeEvent
)
{
this
.
hide
();
this
.
_model
=
value
;
if
(
this
.
_position
&&
(
!
value
.
position
||
this
.
_position
.
position
.
lineNumber
!==
value
.
position
.
lineNumber
))
{
// hide when getting a 'hide'-request or when currently
// showing on another line
this
.
hide
();
}
else
if
(
this
.
_futureFixes
)
{
// cancel pending show request in any case
this
.
_futureFixes
.
cancel
();
}
this
.
_futureFixes
=
new
CancellationTokenSource
();
const
{
token
}
=
this
.
_futureFixes
;
this
.
_model
=
value
;
this
.
_model
.
fixes
.
done
(
fixes
=>
{
if
(
!
token
.
isCancellationRequested
&&
fixes
&&
fixes
.
length
>
0
)
{
this
.
show
(
this
.
_model
);
this
.
_show
(
);
}
else
{
this
.
hide
();
}
...
...
@@ -106,9 +123,9 @@ export class LightBulbWidget implements IDisposable, IContentWidget {
return
this
.
_domNode
.
title
;
}
show
(
e
:
QuickFixComputeEvent
):
void
{
private
_show
(
):
void
{
const
{
fontInfo
}
=
this
.
_editor
.
getConfiguration
();
const
{
lineNumber
}
=
e
.
position
;
const
{
lineNumber
}
=
this
.
_model
.
position
;
const
model
=
this
.
_editor
.
getModel
();
const
indent
=
model
.
getIndentLevel
(
lineNumber
);
const
lineHasSpace
=
fontInfo
.
spaceWidth
*
indent
>
22
;
...
...
@@ -126,9 +143,7 @@ export class LightBulbWidget implements IDisposable, IContentWidget {
position
:
{
lineNumber
:
effectiveLineNumber
,
column
:
1
},
preference
:
LightBulbWidget
.
_posPref
};
this
.
_editor
.
layoutContentWidget
(
this
);
this
.
_model
=
e
;
}
hide
():
void
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录