Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
a18a7bf9
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,发现更多精彩内容 >>
提交
a18a7bf9
编写于
10月 20, 2019
作者:
J
jeanp413
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixes #77837
上级
82ca6ba8
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
16 deletion
+16
-16
src/vs/workbench/contrib/debug/browser/repl.ts
src/vs/workbench/contrib/debug/browser/repl.ts
+16
-16
未找到文件。
src/vs/workbench/contrib/debug/browser/repl.ts
浏览文件 @
a18a7bf9
...
...
@@ -797,36 +797,32 @@ class ReplRawObjectsRenderer implements ITreeRenderer<RawObjectReplElement, Fuzz
class
ReplDelegate
implements
IListVirtualDelegate
<
IReplElement
>
{
private
heightCache
=
new
WeakMap
<
IReplElement
,
number
>
();
constructor
(
private
configurationService
:
IConfigurationService
)
{
}
getHeight
(
element
:
IReplElement
):
number
{
const
countNumberOfLines
=
(
str
:
string
)
=>
Math
.
max
(
1
,
(
str
&&
str
.
match
(
/
\r\n
|
\n
/g
)
||
[]).
length
);
const
hasValue
=
(
e
:
any
):
e
is
{
value
:
string
}
=>
typeof
e
.
value
===
'
string
'
;
// Give approximate heights. Repl has dynamic height so the tree will measure the actual height on its own.
const
config
=
this
.
configurationService
.
getValue
<
IDebugConfiguration
>
(
'
debug
'
);
const
fontSize
=
config
.
console
.
fontSiz
e
;
const
{
fontSize
,
wordWrap
}
=
config
.
consol
e
;
const
rowHeight
=
Math
.
ceil
(
1.4
*
fontSize
);
const
wordWrap
=
config
.
console
.
wordWrap
;
if
(
!
wordWrap
)
{
return
rowHeight
;
}
// In order to keep scroll position we need to give a good approximation to the tree
// For every 150 characters increase the number of lines needed
if
(
element
instanceof
ReplEvaluationResult
)
{
let
value
=
element
.
value
;
if
(
element
.
hasChildren
)
{
return
rowHeight
;
}
let
valueRows
=
value
?
(
countNumberOfLines
(
value
)
+
Math
.
floor
(
value
.
length
/
150
))
:
0
;
return
rowHeight
*
valueRows
;
const
cachedHeight
=
this
.
heightCache
.
get
(
element
);
if
(
typeof
cachedHeight
===
'
number
'
)
{
return
cachedHeight
;
}
if
(
element
instanceof
SimpleReplElement
||
element
instanceof
ReplEvaluationInput
)
{
// Calculate a rough overestimation for the height
// For every 30 characters increase the number of lines needed
if
(
hasValue
(
element
))
{
let
value
=
element
.
value
;
let
valueRows
=
countNumberOfLines
(
value
)
+
Math
.
floor
(
value
.
length
/
15
0
);
let
valueRows
=
countNumberOfLines
(
value
)
+
Math
.
floor
(
value
.
length
/
3
0
);
return
valueRows
*
rowHeight
;
}
...
...
@@ -852,10 +848,14 @@ class ReplDelegate implements IListVirtualDelegate<IReplElement> {
return
ReplRawObjectsRenderer
.
ID
;
}
hasDynamicHeight
?
(
element
:
IReplElement
):
boolean
{
hasDynamicHeight
(
element
:
IReplElement
):
boolean
{
// Empty elements should not have dynamic height since they will be invisible
return
element
.
toString
().
length
>
0
;
}
setDynamicHeight
(
element
:
IReplElement
,
height
:
number
):
void
{
this
.
heightCache
.
set
(
element
,
height
);
}
}
function
isDebugSession
(
obj
:
any
):
obj
is
IDebugSession
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录