Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
徽霖
Vscode
提交
9f7632cc
V
Vscode
项目概览
徽霖
/
Vscode
通知
9
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,发现更多精彩内容 >>
提交
9f7632cc
编写于
1月 25, 2016
作者:
M
Martin Aeschlimann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Support isIncomplete form completion results
上级
e57f5f40
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
11 addition
and
8 deletion
+11
-8
extensions/json/server/src/jsonCompletion.ts
extensions/json/server/src/jsonCompletion.ts
+8
-5
extensions/json/server/src/server.ts
extensions/json/server/src/server.ts
+2
-2
extensions/json/server/src/test/completion.test.ts
extensions/json/server/src/test/completion.test.ts
+1
-1
未找到文件。
extensions/json/server/src/jsonCompletion.ts
浏览文件 @
9f7632cc
...
...
@@ -12,7 +12,7 @@ import JsonSchema = require('./json-toolbox/jsonSchema');
import
nls
=
require
(
'
./utils/nls
'
);
import
{
IJSONWorkerContribution
}
from
'
./jsonContributions
'
;
import
{
CompletionItem
,
CompletionItemKind
,
CompletionOptions
,
ITextDocument
,
TextDocumentIdentifier
,
TextDocumentPosition
,
Range
,
TextEdit
}
from
'
vscode-languageserver
'
;
import
{
CompletionItem
,
CompletionItemKind
,
Completion
List
,
Completion
Options
,
ITextDocument
,
TextDocumentIdentifier
,
TextDocumentPosition
,
Range
,
TextEdit
}
from
'
vscode-languageserver
'
;
export
interface
ISuggestionsCollector
{
add
(
suggestion
:
CompletionItem
):
void
;
...
...
@@ -30,13 +30,16 @@ export class JSONCompletion {
this
.
contributions
=
contributions
;
}
public
doSuggest
(
document
:
ITextDocument
,
textDocumentPosition
:
TextDocumentPosition
,
doc
:
Parser
.
JSONDocument
):
Thenable
<
Completion
Item
[]
>
{
public
doSuggest
(
document
:
ITextDocument
,
textDocumentPosition
:
TextDocumentPosition
,
doc
:
Parser
.
JSONDocument
):
Thenable
<
Completion
List
>
{
let
offset
=
document
.
offsetAt
(
textDocumentPosition
.
position
);
let
node
=
doc
.
getNodeFromOffsetEndInclusive
(
offset
);
let
overwriteRange
=
null
;
let
result
:
CompletionItem
[]
=
[];
let
result
:
CompletionList
=
{
items
:
[],
isIncomplete
:
false
}
if
(
node
&&
(
node
.
type
===
'
string
'
||
node
.
type
===
'
number
'
||
node
.
type
===
'
boolean
'
||
node
.
type
===
'
null
'
))
{
overwriteRange
=
Range
.
create
(
document
.
positionAt
(
node
.
start
),
document
.
positionAt
(
node
.
end
));
...
...
@@ -51,11 +54,11 @@ export class JSONCompletion {
suggestion
.
textEdit
=
TextEdit
.
replace
(
overwriteRange
,
suggestion
.
insertText
);
}
result
.
push
(
suggestion
);
result
.
items
.
push
(
suggestion
);
}
},
setAsIncomplete
:
()
=>
{
result
.
isIncomplete
=
true
;
},
error
:
(
message
:
string
)
=>
{
console
.
log
(
message
);
...
...
extensions/json/server/src/server.ts
浏览文件 @
9f7632cc
...
...
@@ -8,7 +8,7 @@ import {
IPCMessageReader
,
IPCMessageWriter
,
createConnection
,
IConnection
,
TextDocumentSyncKind
,
TextDocuments
,
ITextDocument
,
Diagnostic
,
DiagnosticSeverity
,
InitializeParams
,
InitializeResult
,
TextDocumentIdentifier
,
TextDocumentPosition
,
InitializeParams
,
InitializeResult
,
TextDocumentIdentifier
,
TextDocumentPosition
,
CompletionList
,
CompletionItem
,
CompletionItemKind
,
Files
,
Hover
,
SymbolInformation
,
TextEdit
,
DocumentFormattingParams
,
DocumentRangeFormattingParams
,
NotificationType
,
RequestType
}
from
'
vscode-languageserver
'
;
...
...
@@ -257,7 +257,7 @@ function getJSONDocument(document: ITextDocument): JSONDocument {
return
parseJSON
(
document
.
getText
());
}
connection
.
onCompletion
((
textDocumentPosition
:
TextDocumentPosition
):
Thenable
<
Completion
Item
[]
>
=>
{
connection
.
onCompletion
((
textDocumentPosition
:
TextDocumentPosition
):
Thenable
<
Completion
List
>
=>
{
let
document
=
documents
.
get
(
textDocumentPosition
.
uri
);
let
jsonDocument
=
getJSONDocument
(
document
);
return
jsonCompletion
.
doSuggest
(
document
,
textDocumentPosition
,
jsonDocument
);
...
...
extensions/json/server/src/test/completion.test.ts
浏览文件 @
9f7632cc
...
...
@@ -40,7 +40,7 @@ suite('JSON Completion', () => {
var
document
=
ITextDocument
.
create
(
uri
,
value
);
var
textDocumentLocation
=
TextDocumentPosition
.
create
(
uri
,
Position
.
create
(
0
,
idx
));
var
jsonDoc
=
Parser
.
parse
(
value
);
return
completionProvider
.
doSuggest
(
document
,
textDocumentLocation
,
jsonDoc
);
return
completionProvider
.
doSuggest
(
document
,
textDocumentLocation
,
jsonDoc
)
.
then
(
list
=>
list
.
items
)
;
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录