Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
88535290
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,发现更多精彩内容 >>
提交
88535290
编写于
1月 13, 2016
作者:
A
Alex Dima
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Clean up contentWidgets.ts
上级
2db33029
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
42 addition
and
42 deletion
+42
-42
src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts
...editor/browser/viewParts/contentWidgets/contentWidgets.ts
+42
-42
未找到文件。
src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts
浏览文件 @
88535290
...
...
@@ -6,11 +6,11 @@
'
use strict
'
;
import
'
vs/css!./contentWidgets
'
;
import
DomUtils
=
require
(
'
vs/base/browser/dom
'
);
import
*
as
DomUtils
from
'
vs/base/browser/dom
'
;
import
{
ViewPart
}
from
'
vs/editor/browser/view/viewPart
'
;
import
EditorBrowser
=
require
(
'
vs/editor/browser/editorBrowser
'
)
;
import
EditorCommon
=
require
(
'
vs/editor/common/editorCommon
'
)
;
import
*
as
EditorBrowser
from
'
vs/editor/browser/editorBrowser
'
;
import
*
as
EditorCommon
from
'
vs/editor/common/editorCommon
'
;
interface
IWidgetData
{
allowEditorOverflow
:
boolean
;
...
...
@@ -109,7 +109,7 @@ export class ViewContentWidgets extends ViewPart {
this
.
_requestModificationFrameBeforeRendering
(()
=>
{
// update the maxWidth on widgets nodes, such that `onReadAfterForcedLayout`
// below can read out the adjusted width/height of widgets
var
widgetId
:
string
;
let
widgetId
:
string
;
for
(
widgetId
in
this
.
_widgets
)
{
if
(
this
.
_widgets
.
hasOwnProperty
(
widgetId
))
{
DomUtils
.
StyleMutator
.
setMaxWidth
(
this
.
_widgets
[
widgetId
].
widget
.
getDomNode
(),
this
.
_contentWidth
);
...
...
@@ -135,7 +135,7 @@ export class ViewContentWidgets extends ViewPart {
// ---- end view event handlers
public
addWidget
(
widget
:
EditorBrowser
.
IContentWidget
):
void
{
var
widgetData
:
IWidgetData
=
{
let
widgetData
:
IWidgetData
=
{
allowEditorOverflow
:
widget
.
allowEditorOverflow
||
false
,
widget
:
widget
,
position
:
null
,
...
...
@@ -144,7 +144,7 @@ export class ViewContentWidgets extends ViewPart {
};
this
.
_widgets
[
widget
.
getId
()]
=
widgetData
;
var
domNode
=
widget
.
getDomNode
();
let
domNode
=
widget
.
getDomNode
();
domNode
.
style
.
position
=
'
absolute
'
;
DomUtils
.
StyleMutator
.
setMaxWidth
(
domNode
,
this
.
_contentWidth
);
DomUtils
.
StyleMutator
.
setVisibility
(
domNode
,
'
hidden
'
);
...
...
@@ -160,19 +160,19 @@ export class ViewContentWidgets extends ViewPart {
}
public
setWidgetPosition
(
widget
:
EditorBrowser
.
IContentWidget
,
position
:
EditorCommon
.
IPosition
,
preference
:
EditorBrowser
.
ContentWidgetPositionPreference
[]):
void
{
var
widgetData
=
this
.
_widgets
[
widget
.
getId
()];
let
widgetData
=
this
.
_widgets
[
widget
.
getId
()];
widgetData
.
position
=
position
;
widgetData
.
preference
=
preference
;
this
.
shouldRender
=
true
;
}
public
removeWidget
(
widget
:
EditorBrowser
.
IContentWidget
):
void
{
var
widgetId
=
widget
.
getId
();
let
widgetId
=
widget
.
getId
();
if
(
this
.
_widgets
.
hasOwnProperty
(
widgetId
))
{
var
widgetData
=
this
.
_widgets
[
widgetId
];
let
widgetData
=
this
.
_widgets
[
widgetId
];
delete
this
.
_widgets
[
widgetId
];
var
domNode
=
widgetData
.
widget
.
getDomNode
();
let
domNode
=
widgetData
.
widget
.
getDomNode
();
domNode
.
parentNode
.
removeChild
(
domNode
);
domNode
.
removeAttribute
(
'
monaco-visible-content-widget
'
);
...
...
@@ -182,32 +182,32 @@ export class ViewContentWidgets extends ViewPart {
private
_layoutBoxInViewport
(
position
:
EditorCommon
.
IEditorPosition
,
domNode
:
HTMLElement
,
ctx
:
EditorBrowser
.
IRenderingContext
):
IBoxLayoutResult
{
var
visibleRange
=
ctx
.
visibleRangeForPosition
(
position
);
let
visibleRange
=
ctx
.
visibleRangeForPosition
(
position
);
if
(
!
visibleRange
)
{
return
null
;
}
var
width
=
domNode
.
clientWidth
;
var
height
=
domNode
.
clientHeight
;
let
width
=
domNode
.
clientWidth
;
let
height
=
domNode
.
clientHeight
;
// Our visible box is split horizontally by the current line => 2 boxes
// a) the box above the line
var
aboveLineTop
=
visibleRange
.
top
;
var
heightAboveLine
=
aboveLineTop
;
let
aboveLineTop
=
visibleRange
.
top
;
let
heightAboveLine
=
aboveLineTop
;
// b) the box under the line
var
underLineTop
=
visibleRange
.
top
+
visibleRange
.
height
;
var
heightUnderLine
=
ctx
.
viewportHeight
-
underLineTop
;
let
underLineTop
=
visibleRange
.
top
+
visibleRange
.
height
;
let
heightUnderLine
=
ctx
.
viewportHeight
-
underLineTop
;
var
aboveTop
=
aboveLineTop
-
height
;
var
fitsAbove
=
(
heightAboveLine
>=
height
);
var
belowTop
=
underLineTop
;
var
fitsBelow
=
(
heightUnderLine
>=
height
);
let
aboveTop
=
aboveLineTop
-
height
;
let
fitsAbove
=
(
heightAboveLine
>=
height
);
let
belowTop
=
underLineTop
;
let
fitsBelow
=
(
heightUnderLine
>=
height
);
// And its left
var
actualLeft
=
visibleRange
.
left
;
let
actualLeft
=
visibleRange
.
left
;
if
(
actualLeft
+
width
>
ctx
.
viewportLeft
+
ctx
.
viewportWidth
)
{
actualLeft
=
ctx
.
viewportLeft
+
ctx
.
viewportWidth
-
width
;
}
...
...
@@ -225,45 +225,45 @@ export class ViewContentWidgets extends ViewPart {
}
private
_layoutBoxInPage
(
position
:
EditorCommon
.
IEditorPosition
,
domNode
:
HTMLElement
,
ctx
:
EditorBrowser
.
IRenderingContext
):
IBoxLayoutResult
{
var
visibleRange
=
ctx
.
visibleRangeForPosition
(
position
);
let
visibleRange
=
ctx
.
visibleRangeForPosition
(
position
);
if
(
!
visibleRange
)
{
return
null
;
}
var
left
=
visibleRange
.
left
-
ctx
.
viewportLeft
;
if
(
left
<
0
||
left
>
this
.
_contentWidth
)
{
let
left0
=
visibleRange
.
left
-
ctx
.
viewportLeft
;
if
(
left
0
<
0
||
left0
>
this
.
_contentWidth
)
{
return
null
;
}
var
width
=
domNode
.
clientWidth
,
let
width
=
domNode
.
clientWidth
,
height
=
domNode
.
clientHeight
;
var
aboveTop
=
visibleRange
.
top
-
height
,
let
aboveTop
=
visibleRange
.
top
-
height
,
belowTop
=
visibleRange
.
top
+
visibleRange
.
height
,
left
=
left
+
this
.
_contentLeft
;
left
=
left
0
+
this
.
_contentLeft
;
var
domNodePosition
=
DomUtils
.
getDomNodePosition
(
this
.
_viewDomNode
);
var
absoluteAboveTop
=
domNodePosition
.
top
+
aboveTop
-
document
.
body
.
scrollTop
-
document
.
documentElement
.
scrollTop
,
let
domNodePosition
=
DomUtils
.
getDomNodePosition
(
this
.
_viewDomNode
);
let
absoluteAboveTop
=
domNodePosition
.
top
+
aboveTop
-
document
.
body
.
scrollTop
-
document
.
documentElement
.
scrollTop
,
absoluteBelowTop
=
domNodePosition
.
top
+
belowTop
-
document
.
body
.
scrollTop
-
document
.
documentElement
.
scrollTop
,
absoluteLeft
=
domNodePosition
.
left
+
left
-
document
.
body
.
scrollLeft
-
document
.
documentElement
.
scrollLeft
;
var
INNER_WIDTH
=
window
.
innerWidth
||
document
.
documentElement
.
clientWidth
||
document
.
body
.
clientWidth
,
let
INNER_WIDTH
=
window
.
innerWidth
||
document
.
documentElement
.
clientWidth
||
document
.
body
.
clientWidth
,
INNER_HEIGHT
=
window
.
innerHeight
||
document
.
documentElement
.
clientHeight
||
document
.
body
.
clientHeight
;
// Leave some clearance to the bottom
var
BOTTOM_PADDING
=
22
;
let
BOTTOM_PADDING
=
22
;
var
fitsAbove
=
(
absoluteAboveTop
>=
0
),
let
fitsAbove
=
(
absoluteAboveTop
>=
0
),
fitsBelow
=
(
absoluteBelowTop
+
height
<=
INNER_HEIGHT
-
BOTTOM_PADDING
);
if
(
absoluteLeft
+
width
+
20
>
INNER_WIDTH
)
{
var
delta
=
absoluteLeft
-
(
INNER_WIDTH
-
width
-
20
);
let
delta
=
absoluteLeft
-
(
INNER_WIDTH
-
width
-
20
);
absoluteLeft
-=
delta
;
left
-=
delta
;
}
if
(
absoluteLeft
<
0
)
{
var
delta
=
absoluteLeft
;
let
delta
=
absoluteLeft
;
absoluteLeft
-=
delta
;
left
-=
delta
;
}
...
...
@@ -278,7 +278,7 @@ export class ViewContentWidgets extends ViewPart {
}
private
_prepareRenderWidgetAtExactPosition
(
position
:
EditorCommon
.
IEditorPosition
,
ctx
:
EditorBrowser
.
IRenderingContext
):
IMyWidgetRenderData
{
var
visibleRange
=
ctx
.
visibleRangeForPosition
(
position
);
let
visibleRange
=
ctx
.
visibleRangeForPosition
(
position
);
if
(
!
visibleRange
)
{
return
null
;
...
...
@@ -296,19 +296,19 @@ export class ViewContentWidgets extends ViewPart {
}
// Do not trust that widgets have a valid position
var
validModelPosition
=
this
.
_context
.
model
.
validateModelPosition
(
widgetData
.
position
),
let
validModelPosition
=
this
.
_context
.
model
.
validateModelPosition
(
widgetData
.
position
),
position
=
this
.
_context
.
model
.
convertModelPositionToViewPosition
(
validModelPosition
.
lineNumber
,
validModelPosition
.
column
),
pref
:
EditorBrowser
.
ContentWidgetPositionPreference
,
pass
:
number
,
i
:
number
;
var
placement
:
IBoxLayoutResult
=
null
;
var
fetchPlacement
=
()
=>
{
let
placement
:
IBoxLayoutResult
=
null
;
let
fetchPlacement
=
()
=>
{
if
(
placement
)
{
return
;
}
var
domNode
=
widgetData
.
widget
.
getDomNode
();
let
domNode
=
widgetData
.
widget
.
getDomNode
();
if
(
widgetData
.
allowEditorOverflow
)
{
placement
=
this
.
_layoutBoxInPage
(
position
,
domNode
,
ctx
);
}
else
{
...
...
@@ -352,7 +352,7 @@ export class ViewContentWidgets extends ViewPart {
}
_render
(
ctx
:
EditorBrowser
.
IRenderingContext
):
void
{
var
data
:
IMyRenderData
=
{},
let
data
:
IMyRenderData
=
{},
renderData
:
IMyWidgetRenderData
,
widgetId
:
string
;
...
...
@@ -366,7 +366,7 @@ export class ViewContentWidgets extends ViewPart {
}
this
.
_requestModificationFrame
(()
=>
{
var
widgetId
:
string
,
let
widgetId
:
string
,
widget
:
IWidgetData
,
domNode
:
HTMLElement
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录