Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
3cdcfa85
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,发现更多精彩内容 >>
提交
3cdcfa85
编写于
12月 19, 2018
作者:
M
Matt Bierner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Prevent currentSignature and activeSignature from getting out of state
Use modes.SignatureHelp as source of truth for activeSignature
上级
6b39891d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
26 deletion
+21
-26
src/vs/editor/contrib/parameterHints/parameterHintsModel.ts
src/vs/editor/contrib/parameterHints/parameterHintsModel.ts
+17
-22
src/vs/editor/contrib/parameterHints/parameterHintsWidget.ts
src/vs/editor/contrib/parameterHints/parameterHintsWidget.ts
+4
-4
未找到文件。
src/vs/editor/contrib/parameterHints/parameterHintsModel.ts
浏览文件 @
3cdcfa85
...
...
@@ -20,13 +20,12 @@ export interface TriggerContext {
export
interface
IHintEvent
{
readonly
hints
:
modes
.
SignatureHelp
;
readonly
currentSignature
:
number
;
}
type
ParameterHintState
=
{
readonly
state
:
'
default
'
}
|
{
readonly
state
:
'
pending
'
}
|
{
readonly
state
:
'
active
'
,
readonly
hints
:
modes
.
SignatureHelp
;
readonly
currentSignature
:
number
;
};
|
{
readonly
state
:
'
active
'
,
readonly
hints
:
modes
.
SignatureHelp
;
};
export
class
ParameterHintsModel
extends
Disposable
{
...
...
@@ -106,9 +105,8 @@ export class ParameterHintsModel extends Disposable {
}
const
length
=
this
.
state
.
hints
.
signatures
.
length
;
let
currentSignature
=
this
.
state
.
currentSignature
;
const
last
=
(
currentSignature
%
length
)
===
(
length
-
1
);
const
activeSignature
=
this
.
state
.
hints
.
activeSignature
;
const
last
=
(
activeSignature
%
length
)
===
(
length
-
1
);
const
cycle
=
this
.
editor
.
getConfiguration
().
contribInfo
.
parameterHints
.
cycle
;
// If there is only one signature, or we're on last signature of list
...
...
@@ -117,14 +115,7 @@ export class ParameterHintsModel extends Disposable {
return
;
}
if
(
last
&&
cycle
)
{
currentSignature
=
0
;
}
else
{
currentSignature
++
;
}
this
.
state
=
{
...
this
.
state
,
currentSignature
};
this
.
_onHint
.
fire
(
this
.
state
);
this
.
updateActiveSignature
(
last
&&
cycle
?
0
:
activeSignature
+
1
);
}
public
previous
():
void
{
...
...
@@ -133,9 +124,8 @@ export class ParameterHintsModel extends Disposable {
}
const
length
=
this
.
state
.
hints
.
signatures
.
length
;
let
currentSignature
=
this
.
state
.
currentSignature
;
const
first
=
currentSignature
===
0
;
const
activeSignature
=
this
.
state
.
hints
.
activeSignature
;
const
first
=
activeSignature
===
0
;
const
cycle
=
this
.
editor
.
getConfiguration
().
contribInfo
.
parameterHints
.
cycle
;
// If there is only one signature, or we're on first signature of list
...
...
@@ -144,13 +134,18 @@ export class ParameterHintsModel extends Disposable {
return
;
}
if
(
first
&&
cycle
)
{
currentSignature
=
length
-
1
;
}
else
{
currentSignature
--
;
this
.
updateActiveSignature
(
first
&&
cycle
?
length
-
1
:
activeSignature
-
1
);
}
private
updateActiveSignature
(
activeSignature
:
number
)
{
if
(
this
.
state
.
state
!==
'
active
'
)
{
return
;
}
this
.
state
=
{
...
this
.
state
,
currentSignature
};
this
.
state
=
{
state
:
'
active
'
,
hints
:
{
...
this
.
state
.
hints
,
activeSignature
}
};
this
.
_onHint
.
fire
(
this
.
state
);
}
...
...
@@ -176,7 +171,7 @@ export class ParameterHintsModel extends Disposable {
this
.
_onCancel
.
fire
(
void
0
);
return
false
;
}
else
{
this
.
state
=
{
state
:
'
active
'
,
hints
:
result
,
currentSignature
:
result
.
activeSignature
};
this
.
state
=
{
state
:
'
active
'
,
hints
:
result
};
this
.
_onHint
.
fire
(
this
.
state
);
return
true
;
}
...
...
src/vs/editor/contrib/parameterHints/parameterHintsWidget.ts
浏览文件 @
3cdcfa85
...
...
@@ -61,7 +61,7 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
this
.
disposables
.
push
(
this
.
model
.
onHint
(
e
=>
{
this
.
show
();
this
.
render
(
e
.
hints
,
e
.
currentSignature
);
this
.
render
(
e
.
hints
);
}));
this
.
disposables
.
push
(
this
.
model
.
onCancel
(()
=>
{
...
...
@@ -160,7 +160,7 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
return
null
;
}
private
render
(
hints
:
modes
.
SignatureHelp
,
currentSignature
:
number
):
void
{
private
render
(
hints
:
modes
.
SignatureHelp
):
void
{
const
multiple
=
hints
.
signatures
.
length
>
1
;
dom
.
toggleClass
(
this
.
element
,
'
multiple
'
,
multiple
);
this
.
keyMultipleSignatures
.
set
(
multiple
);
...
...
@@ -168,7 +168,7 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
this
.
signature
.
innerHTML
=
''
;
this
.
docs
.
innerHTML
=
''
;
const
signature
=
hints
.
signatures
[
current
Signature
];
const
signature
=
hints
.
signatures
[
hints
.
active
Signature
];
if
(
!
signature
)
{
return
;
...
...
@@ -219,7 +219,7 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
dom
.
append
(
this
.
docs
,
renderedContents
.
element
);
}
let
currentOverload
=
String
(
current
Signature
+
1
);
let
currentOverload
=
String
(
hints
.
active
Signature
+
1
);
if
(
hints
.
signatures
.
length
<
10
)
{
currentOverload
+=
`/
${
hints
.
signatures
.
length
}
`
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录