Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
71b4653a
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,发现更多精彩内容 >>
提交
71b4653a
编写于
5月 14, 2020
作者:
D
Daniel Imms
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Move renderAction into ContentHoverWidget
上级
b0ac041a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
34 addition
and
26 deletion
+34
-26
src/vs/editor/contrib/hover/hover.ts
src/vs/editor/contrib/hover/hover.ts
+1
-1
src/vs/editor/contrib/hover/hoverWidgets.ts
src/vs/editor/contrib/hover/hoverWidgets.ts
+31
-4
src/vs/editor/contrib/hover/modesContentHover.ts
src/vs/editor/contrib/hover/modesContentHover.ts
+2
-21
未找到文件。
src/vs/editor/contrib/hover/hover.ts
浏览文件 @
71b4653a
...
...
@@ -205,7 +205,7 @@ export class ModesHoverController implements IEditorContribution {
}
private
_createHoverWidgets
()
{
this
.
_contentWidget
.
value
=
new
ModesContentHoverWidget
(
this
.
_editor
,
this
.
_markerDecorationsService
,
this
.
_
themeService
,
this
.
_keybinding
Service
,
this
.
_modeService
,
this
.
_openerService
);
this
.
_contentWidget
.
value
=
new
ModesContentHoverWidget
(
this
.
_editor
,
this
.
_markerDecorationsService
,
this
.
_
keybindingService
,
this
.
_theme
Service
,
this
.
_modeService
,
this
.
_openerService
);
this
.
_glyphWidget
.
value
=
new
ModesGlyphHoverWidget
(
this
.
_editor
,
this
.
_modeService
,
this
.
_openerService
);
}
...
...
src/vs/editor/contrib/hover/hoverWidgets.ts
浏览文件 @
71b4653a
...
...
@@ -3,7 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import
{
toggleClass
}
from
'
vs/base/browser/dom
'
;
import
*
as
dom
from
'
vs/base/browser/dom
'
;
import
{
IKeyboardEvent
}
from
'
vs/base/browser/keyboardEvent
'
;
import
{
DomScrollableElement
}
from
'
vs/base/browser/ui/scrollbar/scrollableElement
'
;
import
{
Widget
}
from
'
vs/base/browser/ui/widget
'
;
...
...
@@ -12,6 +12,10 @@ import { IContentWidget, ICodeEditor, IContentWidgetPosition, ContentWidgetPosit
import
{
ConfigurationChangedEvent
,
EditorOption
}
from
'
vs/editor/common/config/editorOptions
'
;
import
{
Position
}
from
'
vs/editor/common/core/position
'
;
import
{
Range
}
from
'
vs/editor/common/core/range
'
;
import
{
IDisposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
IKeybindingService
}
from
'
vs/platform/keybinding/common/keybinding
'
;
const
$
=
dom
.
$
;
export
class
ContentHoverWidget
extends
Widget
implements
IContentWidget
{
...
...
@@ -34,10 +38,14 @@ export class ContentHoverWidget extends Widget implements IContentWidget {
protected
set
isVisible
(
value
:
boolean
)
{
this
.
_isVisible
=
value
;
toggleClass
(
this
.
_containerDomNode
,
'
hidden
'
,
!
this
.
_isVisible
);
dom
.
toggleClass
(
this
.
_containerDomNode
,
'
hidden
'
,
!
this
.
_isVisible
);
}
constructor
(
id
:
string
,
editor
:
ICodeEditor
)
{
constructor
(
id
:
string
,
editor
:
ICodeEditor
,
private
readonly
_keybindingService
:
IKeybindingService
)
{
super
();
this
.
_id
=
id
;
this
.
_editor
=
editor
;
...
...
@@ -147,6 +155,25 @@ export class ContentHoverWidget extends Widget implements IContentWidget {
this
.
onContentsChange
();
}
protected
renderAction
(
parent
:
HTMLElement
,
actionOptions
:
{
label
:
string
,
iconClass
?:
string
,
run
:
(
target
:
HTMLElement
)
=>
void
,
commandId
:
string
}):
IDisposable
{
const
actionContainer
=
dom
.
append
(
parent
,
$
(
'
div.action-container
'
));
const
action
=
dom
.
append
(
actionContainer
,
$
(
'
a.action
'
));
action
.
setAttribute
(
'
href
'
,
'
#
'
);
action
.
setAttribute
(
'
role
'
,
'
button
'
);
if
(
actionOptions
.
iconClass
)
{
dom
.
append
(
action
,
$
(
`span.icon.
${
actionOptions
.
iconClass
}
`
));
}
const
label
=
dom
.
append
(
action
,
$
(
'
span
'
));
const
keybinding
=
this
.
_keybindingService
.
lookupKeybinding
(
actionOptions
.
commandId
);
const
keybindingLabel
=
keybinding
?
keybinding
.
getLabel
()
:
null
;
label
.
textContent
=
keybindingLabel
?
`
${
actionOptions
.
label
}
(
${
keybindingLabel
}
)`
:
actionOptions
.
label
;
return
dom
.
addDisposableListener
(
actionContainer
,
dom
.
EventType
.
CLICK
,
e
=>
{
e
.
stopPropagation
();
e
.
preventDefault
();
actionOptions
.
run
(
actionContainer
);
});
}
protected
onContentsChange
():
void
{
this
.
scrollbar
.
scanDomNode
();
}
...
...
@@ -198,7 +225,7 @@ export class GlyphHoverWidget extends Widget implements IOverlayWidget {
protected
set
isVisible
(
value
:
boolean
)
{
this
.
_isVisible
=
value
;
toggleClass
(
this
.
_domNode
,
'
hidden
'
,
!
this
.
_isVisible
);
dom
.
toggleClass
(
this
.
_domNode
,
'
hidden
'
,
!
this
.
_isVisible
);
}
public
getId
():
string
{
...
...
src/vs/editor/contrib/hover/modesContentHover.ts
浏览文件 @
71b4653a
...
...
@@ -213,12 +213,12 @@ export class ModesContentHoverWidget extends ContentHoverWidget {
constructor
(
editor
:
ICodeEditor
,
markerDecorationsService
:
IMarkerDecorationsService
,
keybindingService
:
IKeybindingService
,
private
readonly
_themeService
:
IThemeService
,
private
readonly
_keybindingService
:
IKeybindingService
,
private
readonly
_modeService
:
IModeService
,
private
readonly
_openerService
:
IOpenerService
=
NullOpenerService
,
)
{
super
(
ModesContentHoverWidget
.
ID
,
editor
);
super
(
ModesContentHoverWidget
.
ID
,
editor
,
keybindingService
);
this
.
_messages
=
[];
this
.
_lastRange
=
null
;
...
...
@@ -633,25 +633,6 @@ export class ModesContentHoverWidget extends ContentHoverWidget {
});
}
private
renderAction
(
parent
:
HTMLElement
,
actionOptions
:
{
label
:
string
,
iconClass
?:
string
,
run
:
(
target
:
HTMLElement
)
=>
void
,
commandId
:
string
}):
IDisposable
{
const
actionContainer
=
dom
.
append
(
parent
,
$
(
'
div.action-container
'
));
const
action
=
dom
.
append
(
actionContainer
,
$
(
'
a.action
'
));
action
.
setAttribute
(
'
href
'
,
'
#
'
);
action
.
setAttribute
(
'
role
'
,
'
button
'
);
if
(
actionOptions
.
iconClass
)
{
dom
.
append
(
action
,
$
(
`span.icon.
${
actionOptions
.
iconClass
}
`
));
}
const
label
=
dom
.
append
(
action
,
$
(
'
span
'
));
const
keybinding
=
this
.
_keybindingService
.
lookupKeybinding
(
actionOptions
.
commandId
);
const
keybindingLabel
=
keybinding
?
keybinding
.
getLabel
()
:
null
;
label
.
textContent
=
keybindingLabel
?
`
${
actionOptions
.
label
}
(
${
keybindingLabel
}
)`
:
actionOptions
.
label
;
return
dom
.
addDisposableListener
(
actionContainer
,
dom
.
EventType
.
CLICK
,
e
=>
{
e
.
stopPropagation
();
e
.
preventDefault
();
actionOptions
.
run
(
actionContainer
);
});
}
private
static
readonly
_DECORATION_OPTIONS
=
ModelDecorationOptions
.
register
({
className
:
'
hoverHighlight
'
});
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录