Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
3f6a98a5
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,发现更多精彩内容 >>
提交
3f6a98a5
编写于
12月 11, 2018
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
CompletionItem#range is not optional, #63454
上级
d7377cb7
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
34 addition
and
9 deletion
+34
-9
src/vs/editor/common/modes.ts
src/vs/editor/common/modes.ts
+1
-1
src/vs/editor/contrib/suggest/test/suggest.test.ts
src/vs/editor/contrib/suggest/test/suggest.test.ts
+8
-4
src/vs/editor/contrib/suggest/test/suggestModel.test.ts
src/vs/editor/contrib/suggest/test/suggestModel.test.ts
+25
-4
未找到文件。
src/vs/editor/common/modes.ts
浏览文件 @
3f6a98a5
...
...
@@ -433,7 +433,7 @@ export interface CompletionItem {
* *Note:* The range must be a [single line](#Range.isSingleLine) and it must
* [contain](#Range.contains) the position at which completion has been [requested](#CompletionItemProvider.provideCompletionItems).
*/
range
?
:
IRange
;
range
:
IRange
;
/**
* An optional set of characters that when pressed while this completion is active will accept it first and
* then type that character. *Note* that all commit characters should have `length=1` and that superfluous
...
...
src/vs/editor/contrib/suggest/test/suggest.test.ts
浏览文件 @
3f6a98a5
...
...
@@ -9,6 +9,7 @@ import { CompletionProviderRegistry, CompletionItemKind } from 'vs/editor/common
import
{
provideSuggestionItems
}
from
'
vs/editor/contrib/suggest/suggest
'
;
import
{
Position
}
from
'
vs/editor/common/core/position
'
;
import
{
TextModel
}
from
'
vs/editor/common/model/textModel
'
;
import
{
Range
}
from
'
vs/editor/common/core/range
'
;
suite
(
'
Suggest
'
,
function
()
{
...
...
@@ -20,21 +21,24 @@ suite('Suggest', function () {
model
=
TextModel
.
createFromString
(
'
FOO
\n
bar
\
BAR
\n
foo
'
,
undefined
,
undefined
,
URI
.
parse
(
'
foo:bar/path
'
));
registration
=
CompletionProviderRegistry
.
register
({
pattern
:
'
bar/path
'
,
scheme
:
'
foo
'
},
{
provideCompletionItems
()
{
provideCompletionItems
(
_doc
,
pos
)
{
return
{
incomplete
:
false
,
suggestions
:
[{
label
:
'
aaa
'
,
kind
:
CompletionItemKind
.
Snippet
,
insertText
:
'
aaa
'
insertText
:
'
aaa
'
,
range
:
Range
.
fromPositions
(
pos
)
},
{
label
:
'
zzz
'
,
kind
:
CompletionItemKind
.
Snippet
,
insertText
:
'
zzz
'
insertText
:
'
zzz
'
,
range
:
Range
.
fromPositions
(
pos
)
},
{
label
:
'
fff
'
,
kind
:
CompletionItemKind
.
Property
,
insertText
:
'
fff
'
insertText
:
'
fff
'
,
range
:
Range
.
fromPositions
(
pos
)
}]
};
}
...
...
src/vs/editor/contrib/suggest/test/suggestModel.test.ts
浏览文件 @
3f6a98a5
...
...
@@ -9,6 +9,7 @@ import { URI } from 'vs/base/common/uri';
import
{
CoreEditingCommands
}
from
'
vs/editor/browser/controller/coreCommands
'
;
import
{
EditOperation
}
from
'
vs/editor/common/core/editOperation
'
;
import
{
Range
}
from
'
vs/editor/common/core/range
'
;
import
{
Position
}
from
'
vs/editor/common/core/position
'
;
import
{
Selection
}
from
'
vs/editor/common/core/selection
'
;
import
{
TokenizationResult2
}
from
'
vs/editor/common/core/token
'
;
import
{
Handler
}
from
'
vs/editor/common/editorCommon
'
;
...
...
@@ -28,6 +29,7 @@ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import
{
NullTelemetryService
}
from
'
vs/platform/telemetry/common/telemetryUtils
'
;
import
{
IEditorWorkerService
}
from
'
vs/editor/common/services/editorWorkerService
'
;
import
{
ISuggestMemoryService
}
from
'
vs/editor/contrib/suggest/suggestMemory
'
;
import
{
ITextModel
}
from
'
vs/editor/common/model
'
;
export
interface
Ctor
<
T
>
{
new
():
T
;
...
...
@@ -149,6 +151,11 @@ suite('SuggestModel - Context', function () {
suite
(
'
SuggestModel - TriggerAndCancelOracle
'
,
function
()
{
function
getDefaultSuggestRange
(
model
:
ITextModel
,
position
:
Position
)
{
const
wordUntil
=
model
.
getWordUntilPosition
(
position
);
return
new
Range
(
position
.
lineNumber
,
wordUntil
.
startColumn
,
position
.
lineNumber
,
wordUntil
.
endColumn
);
}
const
alwaysEmptySupport
:
CompletionItemProvider
=
{
provideCompletionItems
(
doc
,
pos
):
CompletionList
{
return
{
...
...
@@ -165,7 +172,8 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
suggestions
:
[{
label
:
doc
.
getWordUntilPosition
(
pos
).
word
,
kind
:
CompletionItemKind
.
Property
,
insertText
:
'
foofoo
'
insertText
:
'
foofoo
'
,
range
:
getDefaultSuggestRange
(
doc
,
pos
)
}]
};
}
...
...
@@ -301,7 +309,8 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
suggestions
:
[{
label
:
'
My Table
'
,
kind
:
CompletionItemKind
.
Property
,
insertText
:
'
My Table
'
insertText
:
'
My Table
'
,
range
:
getDefaultSuggestRange
(
doc
,
pos
)
}]
};
}
...
...
@@ -718,7 +727,13 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
provideCompletionItems
(
doc
,
pos
)
{
return
{
incomplete
:
true
,
suggestions
:
[{
kind
:
CompletionItemKind
.
Folder
,
label
:
'
CompleteNot
'
,
insertText
:
'
Incomplete
'
,
sortText
:
'
a
'
,
overwriteBefore
:
pos
.
column
-
1
}],
suggestions
:
[{
kind
:
CompletionItemKind
.
Folder
,
label
:
'
CompleteNot
'
,
insertText
:
'
Incomplete
'
,
sortText
:
'
a
'
,
range
:
getDefaultSuggestRange
(
doc
,
pos
)
}],
dispose
()
{
disposeA
+=
1
;
}
};
}
...
...
@@ -727,7 +742,13 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
provideCompletionItems
(
doc
,
pos
)
{
return
{
incomplete
:
false
,
suggestions
:
[{
kind
:
CompletionItemKind
.
Folder
,
label
:
'
Complete
'
,
insertText
:
'
Complete
'
,
sortText
:
'
z
'
,
overwriteBefore
:
pos
.
column
-
1
}],
suggestions
:
[{
kind
:
CompletionItemKind
.
Folder
,
label
:
'
Complete
'
,
insertText
:
'
Complete
'
,
sortText
:
'
z
'
,
range
:
getDefaultSuggestRange
(
doc
,
pos
)
}],
dispose
()
{
disposeB
+=
1
;
}
};
},
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录