Skip to content

Commit 1068911

Browse files
authored
Merge pull request #1021 from julia-vscode/sp/fix-import-completions
Fix import completions
2 parents 3b13cc5 + a5c4653 commit 1068911

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

src/requests/completions.jl

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -181,13 +181,15 @@ function collect_completions(m::SymbolServer.ModuleStore, spartial, state::Compl
181181
if state.server.completion_mode === :import
182182
# These are non-exported names and require the insertion of a :using statement.
183183
# We need to insert this statement at the start of the current top-level scope (e.g. Main or a module) and tag it onto existing :using statements if possible.
184-
cmd = Command("Apply text edit", "language-julia.applytextedit", [
185-
WorkspaceEdit(missing, [textedit_to_insert_using_stmt(m, n, state)])
186-
])
187-
ci = CompletionItem(n, _completion_kind(v), missing, "This is an unexported symbol and will be explicitly imported.", MarkupContent(sanitize_docstring(v.doc)), missing, missing, missing, missing, missing, InsertTextFormats.PlainText, texteditfor(state, spartial, n), missing, missing, cmd, "import")
184+
ci = CompletionItem(n, _completion_kind(v), missing, "This is an unexported symbol and will be explicitly imported.",
185+
MarkupContent(sanitize_docstring(v.doc)), missing, missing, missing, missing, missing, InsertTextFormats.PlainText,
186+
texteditfor(state, spartial, n), textedit_to_insert_using_stmt(m, n, state), missing, missing, "import")
188187
add_completion_item(state, ci)
189188
elseif state.server.completion_mode === :qualify
190-
add_completion_item(state, CompletionItem(string(m.name, ".", n), _completion_kind(v), missing, "This is an unexported symbol and will be explicitly imported.", MarkupContent(sanitize_docstring(v.doc)), missing, missing, string(n), missing, missing, InsertTextFormats.PlainText, texteditfor(state, spartial, string(m.name, ".", n)), missing, missing, missing, missing))
189+
add_completion_item(state, CompletionItem(string(m.name, ".", n), _completion_kind(v), missing,
190+
missing, MarkupContent(sanitize_docstring(v.doc)), missing,
191+
missing, string(n), missing, missing, InsertTextFormats.PlainText, texteditfor(state, spartial, string(m.name, ".", n)),
192+
missing, missing, missing, missing))
191193
end
192194
end
193195
end
@@ -507,29 +509,25 @@ function textedit_to_insert_using_stmt(m::SymbolServer.ModuleStore, n::String, s
507509
(using_stmt, (using_doc, using_offset)) = state.using_stmts[String(m.name.name)]
508510

509511
l, c = get_position_at(using_doc, using_offset + using_stmt.span)
510-
TextDocumentEdit(VersionedTextDocumentIdentifier(using_doc._uri, using_doc._version),
511-
[TextEdit(Range(l, c, l, c), ", $n")])
512+
return [TextEdit(Range(l, c, l, c), ", $n")]
512513
elseif tls !== nothing
513514
if tls.expr.head === :file
514515
# Insert at the head of the file
515516
tlsdoc, offset1 = get_file_loc(tls.expr)
516-
TextDocumentEdit(VersionedTextDocumentIdentifier(tlsdoc._uri, tlsdoc._version),
517-
[TextEdit(Range(0, 0, 0, 0), "using $(m.name): $(n)\n")])
517+
return [TextEdit(Range(0, 0, 0, 0), "using $(m.name): $(n)\n")]
518518
elseif tls.expr.head === :module
519519
# Insert at start of module
520520
tlsdoc, offset1 = get_file_loc(tls.expr)
521521
offset2 = tls.expr.trivia[1].fullspan + tls.expr.args[2].fullspan
522522
l, c = get_position_at(tlsdoc, offset1 + offset2)
523523

524-
TextDocumentEdit(VersionedTextDocumentIdentifier(tlsdoc._uri, tlsdoc._version),
525-
[TextEdit(Range(l, c, l, c), "using $(m.name): $(n)\n")])
524+
return [TextEdit(Range(l, c, l, c), "using $(m.name): $(n)\n")]
526525
else
527526
error()
528527
end
529528
else
530529
# Fallback, add it to the start of the current file.
531-
TextDocumentEdit(VersionedTextDocumentIdentifier(state.doc._uri, state.doc._version),
532-
[TextEdit(Range(0, 0, 0, 0), "using $(m.name): $(n)\n")])
530+
return [TextEdit(Range(0, 0, 0, 0), "using $(m.name): $(n)\n")]
533531
end
534532
end
535533

0 commit comments

Comments
 (0)