Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
79a01a0f
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
79a01a0f
编写于
1月 14, 2020
作者:
P
Pine Wu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Revert isDetailsResolved and implement CompletionItemLabel
上级
fecfa6ec
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
131 addition
and
41 deletion
+131
-41
extensions/css-language-features/client/src/cssMain.ts
extensions/css-language-features/client/src/cssMain.ts
+8
-3
src/vs/editor/common/modes.ts
src/vs/editor/common/modes.ts
+23
-2
src/vs/editor/contrib/suggest/completionModel.ts
src/vs/editor/contrib/suggest/completionModel.ts
+4
-3
src/vs/editor/contrib/suggest/suggest.ts
src/vs/editor/contrib/suggest/suggest.ts
+10
-7
src/vs/editor/contrib/suggest/suggestController.ts
src/vs/editor/contrib/suggest/suggestController.ts
+2
-1
src/vs/editor/contrib/suggest/suggestWidget.ts
src/vs/editor/contrib/suggest/suggestWidget.ts
+18
-8
src/vs/editor/contrib/suggest/wordDistance.ts
src/vs/editor/contrib/suggest/wordDistance.ts
+4
-1
src/vs/monaco.d.ts
src/vs/monaco.d.ts
+19
-2
src/vs/vscode.d.ts
src/vs/vscode.d.ts
+1
-1
src/vs/vscode.proposed.d.ts
src/vs/vscode.proposed.d.ts
+20
-2
src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts
src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts
+5
-2
src/vs/workbench/api/common/extHost.protocol.ts
src/vs/workbench/api/common/extHost.protocol.ts
+1
-2
src/vs/workbench/api/common/extHostLanguageFeatures.ts
src/vs/workbench/api/common/extHostLanguageFeatures.ts
+6
-3
src/vs/workbench/api/common/extHostTypes.ts
src/vs/workbench/api/common/extHostTypes.ts
+9
-3
src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.ts
...nch/contrib/snippets/browser/snippetCompletionProvider.ts
+1
-1
未找到文件。
extensions/css-language-features/client/src/cssMain.ts
浏览文件 @
79a01a0f
...
...
@@ -60,12 +60,17 @@ export function activate(context: ExtensionContext) {
(
Array
.
isArray
(
r
)
?
r
:
r
.
items
).
forEach
(
updateRanges
);
if
(
!
Array
.
isArray
(
r
))
{
r
.
isDetailsResolved
=
true
;
r
.
items
.
forEach
(
i
=>
{
if
(
i
.
kind
===
CompletionItemKind
.
Color
)
{
i
.
detail
=
i
.
documentation
?.
toString
();
i
.
label
=
{
label
:
i
.
label
as
string
,
details
:
i
.
documentation
?.
toString
()
};
}
else
{
i
.
detail
=
i
.
label
;
i
.
label
=
{
label
:
i
.
label
as
string
,
details
:
i
.
label
as
string
};
}
});
}
...
...
src/vs/editor/common/modes.ts
浏览文件 @
79a01a0f
...
...
@@ -369,6 +369,28 @@ export let completionKindFromString: {
};
})();
export
interface
CompletionItemLabel
{
/**
* The label of this completion item. By default
* this is also the text that is inserted when selecting
* this completion.
*/
label
:
string
;
/**
* A description of the completion item which is rendered
* less prominent.
*/
// description?: string;
/**
* Details of the completion item that is rendered less
* prominent to the right.
*/
details
?:
string
;
}
export
const
enum
CompletionItemTag
{
Deprecated
=
1
}
...
...
@@ -396,7 +418,7 @@ export interface CompletionItem {
* this is also the text that is inserted when selecting
* this completion.
*/
label
:
string
;
label
:
string
|
CompletionItemLabel
;
/**
* The kind of this completion item. Based on the kind
* an icon is chosen by the editor.
...
...
@@ -481,7 +503,6 @@ export interface CompletionItem {
export
interface
CompletionList
{
suggestions
:
CompletionItem
[];
incomplete
?:
boolean
;
isDetailsResolved
?:
boolean
;
dispose
?():
void
;
}
...
...
src/vs/editor/contrib/suggest/completionModel.ts
浏览文件 @
79a01a0f
...
...
@@ -192,6 +192,7 @@ export class CompletionModel {
}
}
const
label
=
typeof
item
.
completion
.
label
===
'
string
'
?
item
.
completion
.
label
:
item
.
completion
.
label
.
label
;
if
(
wordPos
>=
wordLen
)
{
// the wordPos at which scoring starts is the whole word
// and therefore the same rules as not having a word apply
...
...
@@ -206,19 +207,19 @@ export class CompletionModel {
if
(
!
match
)
{
continue
;
// NO match
}
if
(
compareIgnoreCase
(
item
.
completion
.
filterText
,
item
.
completion
.
label
)
===
0
)
{
if
(
compareIgnoreCase
(
item
.
completion
.
filterText
,
label
)
===
0
)
{
// filterText and label are actually the same -> use good highlights
item
.
score
=
match
;
}
else
{
// re-run the scorer on the label in the hope of a result BUT use the rank
// of the filterText-match
item
.
score
=
anyScore
(
word
,
wordLow
,
wordPos
,
item
.
completion
.
label
,
item
.
labelLow
,
0
);
item
.
score
=
anyScore
(
word
,
wordLow
,
wordPos
,
label
,
item
.
labelLow
,
0
);
item
.
score
[
0
]
=
match
[
0
];
// use score from filterText
}
}
else
{
// by default match `word` against the `label`
let
match
=
scoreFn
(
word
,
wordLow
,
wordPos
,
item
.
completion
.
label
,
item
.
labelLow
,
0
,
false
);
let
match
=
scoreFn
(
word
,
wordLow
,
wordPos
,
label
,
item
.
labelLow
,
0
,
false
);
if
(
!
match
)
{
continue
;
// NO match
}
...
...
src/vs/editor/contrib/suggest/suggest.ts
浏览文件 @
79a01a0f
...
...
@@ -36,6 +36,9 @@ export class CompletionItem {
readonly
editInsertEnd
:
IPosition
;
readonly
editReplaceEnd
:
IPosition
;
//
readonly
textLabel
:
string
;
// perf
readonly
labelLow
:
string
;
readonly
sortTextLow
?:
string
;
...
...
@@ -47,9 +50,6 @@ export class CompletionItem {
idx
?:
number
;
word
?:
string
;
// all details resolved, we can show them all
readonly
isDetailsResolved
:
boolean
;
constructor
(
readonly
position
:
IPosition
,
readonly
completion
:
modes
.
CompletionItem
,
...
...
@@ -57,8 +57,13 @@ export class CompletionItem {
readonly
provider
:
modes
.
CompletionItemProvider
,
model
:
ITextModel
)
{
this
.
textLabel
=
typeof
completion
.
label
===
'
string
'
?
completion
.
label
:
completion
.
label
.
label
;
// ensure lower-variants (perf)
this
.
labelLow
=
completion
.
label
.
toLowerCase
();
this
.
labelLow
=
this
.
textLabel
.
toLowerCase
();
this
.
sortTextLow
=
completion
.
sortText
&&
completion
.
sortText
.
toLowerCase
();
this
.
filterTextLow
=
completion
.
filterText
&&
completion
.
filterText
.
toLowerCase
();
...
...
@@ -73,8 +78,6 @@ export class CompletionItem {
this
.
editReplaceEnd
=
new
Position
(
completion
.
range
.
replace
.
endLineNumber
,
completion
.
range
.
replace
.
endColumn
);
}
this
.
isDetailsResolved
=
container
.
isDetailsResolved
||
typeof
provider
.
resolveCompletionItem
===
'
undefined
'
;
// create the suggestion resolver
const
{
resolveCompletionItem
}
=
provider
;
if
(
typeof
resolveCompletionItem
!==
'
function
'
)
{
...
...
@@ -188,7 +191,7 @@ export function provideSuggestionItems(
}
// fill in default sortText when missing
if
(
!
suggestion
.
sortText
)
{
suggestion
.
sortText
=
suggestion
.
label
;
suggestion
.
sortText
=
typeof
suggestion
.
label
===
'
string
'
?
suggestion
.
label
:
suggestion
.
label
.
label
;
}
allSuggestions
.
push
(
new
CompletionItem
(
position
,
suggestion
,
container
,
provider
,
model
));
...
...
src/vs/editor/contrib/suggest/suggestController.ts
浏览文件 @
79a01a0f
...
...
@@ -343,8 +343,9 @@ export class SuggestController implements IEditorContribution {
}
private
_alertCompletionItem
({
completion
:
suggestion
}:
CompletionItem
):
void
{
const
textLabel
=
typeof
suggestion
.
label
===
'
string
'
?
suggestion
.
label
:
suggestion
.
label
.
label
;
if
(
isNonEmptyArray
(
suggestion
.
additionalTextEdits
))
{
let
msg
=
nls
.
localize
(
'
arai.alert.snippet
'
,
"
Accepting '{0}' made {1} additional edits
"
,
suggestion
.
l
abel
,
suggestion
.
additionalTextEdits
.
length
);
let
msg
=
nls
.
localize
(
'
arai.alert.snippet
'
,
"
Accepting '{0}' made {1} additional edits
"
,
textL
abel
,
suggestion
.
additionalTextEdits
.
length
);
alert
(
msg
);
}
}
...
...
src/vs/editor/contrib/suggest/suggestWidget.ts
浏览文件 @
79a01a0f
...
...
@@ -67,8 +67,12 @@ export const editorSuggestWidgetHighlightForeground = registerColor('editorSugge
const
colorRegExp
=
/^
(
#
([\d
a-f
]{3}){1,2}
|
(
rgb|hsl
)
a
\(\s
*
(\d{1,3}
%
?\s
*,
\s
*
){3}(
1|0
?\.\d
+
)\)
|
(
rgb|hsl
)\(\s
*
\d{1,3}
%
?(\s
*,
\s
*
\d{1,3}
%
?){2}\s
*
\))
$/i
;
function
extractColor
(
item
:
CompletionItem
,
out
:
string
[]):
boolean
{
if
(
item
.
completion
.
label
.
match
(
colorRegExp
))
{
out
[
0
]
=
item
.
completion
.
label
;
const
label
=
typeof
item
.
completion
.
label
===
'
string
'
?
item
.
completion
.
label
:
item
.
completion
.
label
.
label
;
if
(
label
.
match
(
colorRegExp
))
{
out
[
0
]
=
label
;
return
true
;
}
if
(
typeof
item
.
completion
.
documentation
===
'
string
'
&&
item
.
completion
.
documentation
.
match
(
colorRegExp
))
{
...
...
@@ -163,6 +167,7 @@ class Renderer implements IListRenderer<CompletionItem, ISuggestionTemplateData>
renderElement
(
element
:
CompletionItem
,
_index
:
number
,
templateData
:
ISuggestionTemplateData
):
void
{
const
data
=
<
ISuggestionTemplateData
>
templateData
;
const
suggestion
=
(
<
CompletionItem
>
element
).
completion
;
const
textLabel
=
typeof
suggestion
.
label
===
'
string
'
?
suggestion
.
label
:
suggestion
.
label
.
label
;
data
.
icon
.
className
=
'
icon
'
+
completionKindToCssClass
(
suggestion
.
kind
);
data
.
colorspan
.
style
.
backgroundColor
=
''
;
...
...
@@ -183,7 +188,7 @@ class Renderer implements IListRenderer<CompletionItem, ISuggestionTemplateData>
// special logic for 'file' completion items
data
.
icon
.
className
=
'
icon hide
'
;
data
.
iconContainer
.
className
=
'
icon hide
'
;
const
labelClasses
=
getIconClasses
(
this
.
_modelService
,
this
.
_modeService
,
URI
.
from
({
scheme
:
'
fake
'
,
path
:
suggestion
.
l
abel
}),
FileKind
.
FILE
);
const
labelClasses
=
getIconClasses
(
this
.
_modelService
,
this
.
_modeService
,
URI
.
from
({
scheme
:
'
fake
'
,
path
:
textL
abel
}),
FileKind
.
FILE
);
const
detailClasses
=
getIconClasses
(
this
.
_modelService
,
this
.
_modeService
,
URI
.
from
({
scheme
:
'
fake
'
,
path
:
suggestion
.
detail
}),
FileKind
.
FILE
);
labelOptions
.
extraClasses
=
labelClasses
.
length
>
detailClasses
.
length
?
labelClasses
:
detailClasses
;
...
...
@@ -192,7 +197,7 @@ class Renderer implements IListRenderer<CompletionItem, ISuggestionTemplateData>
data
.
icon
.
className
=
'
icon hide
'
;
data
.
iconContainer
.
className
=
'
icon hide
'
;
labelOptions
.
extraClasses
=
flatten
([
getIconClasses
(
this
.
_modelService
,
this
.
_modeService
,
URI
.
from
({
scheme
:
'
fake
'
,
path
:
suggestion
.
l
abel
}),
FileKind
.
FOLDER
),
getIconClasses
(
this
.
_modelService
,
this
.
_modeService
,
URI
.
from
({
scheme
:
'
fake
'
,
path
:
textL
abel
}),
FileKind
.
FOLDER
),
getIconClasses
(
this
.
_modelService
,
this
.
_modeService
,
URI
.
from
({
scheme
:
'
fake
'
,
path
:
suggestion
.
detail
}),
FileKind
.
FOLDER
)
]);
}
else
{
...
...
@@ -207,8 +212,12 @@ class Renderer implements IListRenderer<CompletionItem, ISuggestionTemplateData>
labelOptions
.
matches
=
[];
}
data
.
iconLabel
.
setLabel
(
suggestion
.
label
,
undefined
,
labelOptions
);
data
.
typeLabel
.
textContent
=
(
suggestion
.
detail
||
''
).
replace
(
/
\n
.*$/m
,
''
);
data
.
iconLabel
.
setLabel
(
textLabel
,
undefined
,
labelOptions
);
if
(
typeof
suggestion
.
label
===
'
string
'
)
{
data
.
typeLabel
.
textContent
=
(
suggestion
.
detail
||
''
).
replace
(
/
\n
.*$/m
,
''
);
}
else
{
data
.
typeLabel
.
textContent
=
(
suggestion
.
label
.
details
||
''
).
replace
(
/
\n
.*$/m
,
''
);
}
if
(
canExpandCompletionItem
(
element
))
{
show
(
data
.
readMore
);
...
...
@@ -621,10 +630,11 @@ export class SuggestWidget implements IContentWidget, IListVirtualDelegate<Compl
}
private
_getSuggestionAriaAlertLabel
(
item
:
CompletionItem
):
string
{
const
textLabel
=
typeof
item
.
completion
.
label
===
'
string
'
?
item
.
completion
.
label
:
item
.
completion
.
label
.
label
;
if
(
this
.
expandDocsSettingFromStorage
())
{
return
nls
.
localize
(
'
ariaCurrenttSuggestionReadDetails
'
,
"
Item {0}, docs: {1}
"
,
item
.
completion
.
l
abel
,
this
.
details
.
getAriaLabel
());
return
nls
.
localize
(
'
ariaCurrenttSuggestionReadDetails
'
,
"
Item {0}, docs: {1}
"
,
textL
abel
,
this
.
details
.
getAriaLabel
());
}
else
{
return
item
.
completion
.
l
abel
;
return
textL
abel
;
}
}
...
...
src/vs/editor/contrib/suggest/wordDistance.ts
浏览文件 @
79a01a0f
...
...
@@ -48,7 +48,10 @@ export abstract class WordDistance {
if
(
suggestion
.
kind
===
CompletionItemKind
.
Keyword
)
{
return
2
<<
20
;
}
let
word
=
suggestion
.
label
;
let
word
=
typeof
suggestion
.
label
===
'
string
'
?
suggestion
.
label
:
suggestion
.
label
.
label
;
let
wordLines
=
wordRanges
[
word
];
if
(
isFalsyOrEmpty
(
wordLines
))
{
return
2
<<
20
;
...
...
src/vs/monaco.d.ts
浏览文件 @
79a01a0f
...
...
@@ -4744,6 +4744,24 @@ declare namespace monaco.languages {
Snippet
=
25
}
export
interface
CompletionItemLabel
{
/**
* The label of this completion item. By default
* this is also the text that is inserted when selecting
* this completion.
*/
label
:
string
;
/**
* A description of the completion item which is rendered
* less prominent.
*/
/**
* Details of the completion item that is rendered less
* prominent to the right.
*/
details
?:
string
;
}
export
enum
CompletionItemTag
{
Deprecated
=
1
}
...
...
@@ -4770,7 +4788,7 @@ declare namespace monaco.languages {
* this is also the text that is inserted when selecting
* this completion.
*/
label
:
string
;
label
:
string
|
CompletionItemLabel
;
/**
* The kind of this completion item. Based on the kind
* an icon is chosen by the editor.
...
...
@@ -4853,7 +4871,6 @@ declare namespace monaco.languages {
export
interface
CompletionList
{
suggestions
:
CompletionItem
[];
incomplete
?:
boolean
;
isDetailsResolved
?:
boolean
;
dispose
?():
void
;
}
...
...
src/vs/vscode.d.ts
浏览文件 @
79a01a0f
...
...
@@ -3360,7 +3360,7 @@ declare module 'vscode' {
* this is also the text that is inserted when selecting
* this completion.
*/
label
:
string
;
label
:
string
|
CompletionItemLabel
;
/**
* The kind of this completion item. Based on the kind
...
...
src/vs/vscode.proposed.d.ts
浏览文件 @
79a01a0f
...
...
@@ -1509,8 +1509,26 @@ declare module 'vscode' {
//#region https://github.com/microsoft/vscode/issues/39441
export
interface
CompletionList
{
isDetailsResolved
?:
boolean
;
export
interface
CompletionItemLabel
{
/**
* The label of this completion item. By default
* this is also the text that is inserted when selecting
* this completion.
*/
label
:
string
;
/**
* A description of the completion item which is rendered
* less prominent.
*/
// description?: string;
/**
* Details of the completion item that is rendered less
* prominent to the right.
*/
details
?:
string
;
}
//#endregion
...
...
src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts
浏览文件 @
79a01a0f
...
...
@@ -334,6 +334,10 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha
// --- suggest
private
static
_inflateSuggestDto
(
defaultRange
:
IRange
|
{
insert
:
IRange
,
replace
:
IRange
},
data
:
ISuggestDataDto
):
modes
.
CompletionItem
{
const
label
=
data
[
ISuggestDataDtoField
.
label
];
const
labelText
=
typeof
label
===
'
string
'
?
label
:
label
.
label
;
return
{
label
:
data
[
ISuggestDataDtoField
.
label
],
...
...
@@ -344,7 +348,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha
sortText
:
data
[
ISuggestDataDtoField
.
sortText
],
filterText
:
data
[
ISuggestDataDtoField
.
filterText
],
preselect
:
data
[
ISuggestDataDtoField
.
preselect
],
insertText
:
typeof
data
.
h
===
'
undefined
'
?
data
[
ISuggestDataDtoField
.
label
]
:
data
.
h
,
insertText
:
typeof
data
.
h
===
'
undefined
'
?
labelText
:
data
.
h
,
range
:
data
[
ISuggestDataDtoField
.
range
]
||
defaultRange
,
insertTextRules
:
data
[
ISuggestDataDtoField
.
insertTextRules
],
commitCharacters
:
data
[
ISuggestDataDtoField
.
commitCharacters
],
...
...
@@ -367,7 +371,6 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha
return
{
suggestions
:
result
.
b
.
map
(
d
=>
MainThreadLanguageFeatures
.
_inflateSuggestDto
(
result
.
a
,
d
)),
incomplete
:
result
.
c
,
isDetailsResolved
:
result
.
d
,
dispose
:
()
=>
typeof
result
.
x
===
'
number
'
&&
this
.
_proxy
.
$releaseCompletionItems
(
handle
,
result
.
x
)
};
});
...
...
src/vs/workbench/api/common/extHost.protocol.ts
浏览文件 @
79a01a0f
...
...
@@ -989,7 +989,7 @@ export const enum ISuggestDataDtoField {
}
export
interface
ISuggestDataDto
{
[
ISuggestDataDtoField
.
label
]:
string
;
[
ISuggestDataDtoField
.
label
]:
string
|
modes
.
CompletionItemLabel
;
[
ISuggestDataDtoField
.
kind
]:
modes
.
CompletionItemKind
;
[
ISuggestDataDtoField
.
detail
]?:
string
;
[
ISuggestDataDtoField
.
documentation
]?:
string
|
IMarkdownString
;
...
...
@@ -1012,7 +1012,6 @@ export interface ISuggestResultDto {
a
:
{
insert
:
IRange
,
replace
:
IRange
;
};
b
:
ISuggestDataDto
[];
c
?:
boolean
;
d
?:
boolean
;
}
export
interface
ISignatureHelpDto
{
...
...
src/vs/workbench/api/common/extHostLanguageFeatures.ts
浏览文件 @
79a01a0f
...
...
@@ -787,8 +787,7 @@ class SuggestAdapter {
x
:
pid
,
b
:
[],
a
:
{
replace
:
typeConvert
.
Range
.
from
(
replaceRange
),
insert
:
typeConvert
.
Range
.
from
(
insertRange
)
},
c
:
list
.
isIncomplete
||
undefined
,
d
:
list
.
isDetailsResolved
||
undefined
c
:
list
.
isIncomplete
||
undefined
};
for
(
let
i
=
0
;
i
<
list
.
items
.
length
;
i
++
)
{
...
...
@@ -858,7 +857,11 @@ class SuggestAdapter {
}
private
_convertCompletionItem
(
item
:
vscode
.
CompletionItem
,
position
:
vscode
.
Position
,
id
:
extHostProtocol
.
ChainedCacheId
):
extHostProtocol
.
ISuggestDataDto
|
undefined
{
if
(
typeof
item
.
label
!==
'
string
'
||
item
.
label
.
length
===
0
)
{
const
label
=
typeof
item
.
label
===
'
string
'
?
item
.
label
:
item
.
label
.
label
;
if
(
typeof
label
!==
'
string
'
||
label
.
length
===
0
)
{
this
.
_logService
.
warn
(
'
INVALID text edit -> must have at least a label
'
);
return
undefined
;
}
...
...
src/vs/workbench/api/common/extHostTypes.ts
浏览文件 @
79a01a0f
...
...
@@ -1351,10 +1351,17 @@ export enum CompletionItemTag {
Deprecated
=
1
,
}
export
interface
CompletionItemLabel
{
label
:
string
;
// description?: string;
details
?:
string
;
}
@
es5ClassCompat
export
class
CompletionItem
implements
vscode
.
CompletionItem
{
label
:
string
;
label
:
string
|
CompletionItemLabel
;
kind
?:
CompletionItemKind
;
tags
?:
CompletionItemTag
[];
detail
?:
string
;
...
...
@@ -1371,7 +1378,7 @@ export class CompletionItem implements vscode.CompletionItem {
additionalTextEdits
?:
TextEdit
[];
command
?:
vscode
.
Command
;
constructor
(
label
:
string
,
kind
?:
CompletionItemKind
)
{
constructor
(
label
:
string
|
CompletionItemLabel
,
kind
?:
CompletionItemKind
)
{
this
.
label
=
label
;
this
.
kind
=
kind
;
}
...
...
@@ -1395,7 +1402,6 @@ export class CompletionItem implements vscode.CompletionItem {
export
class
CompletionList
{
isIncomplete
?:
boolean
;
isDetailsResolved
?:
boolean
;
items
:
vscode
.
CompletionItem
[];
constructor
(
items
:
vscode
.
CompletionItem
[]
=
[],
isIncomplete
:
boolean
=
false
)
{
...
...
src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.ts
浏览文件 @
79a01a0f
...
...
@@ -146,7 +146,7 @@ export class SnippetCompletionProvider implements CompletionItemProvider {
i
=
to
;
}
}
return
{
suggestions
,
isDetailsResolved
:
true
};
return
{
suggestions
};
});
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录