mirror of
https://github.com/Microsoft/vscode
synced 2024-09-19 10:40:41 +00:00
Auto import dependencies when accepting a global suggestion
Fixes #2635
This commit is contained in:
parent
5943b174aa
commit
a8fdcc4a6d
|
@ -11,7 +11,7 @@ import TypingsStatus from '../utils/typingsStatus';
|
|||
import * as PConst from '../protocol.const';
|
||||
import { CompletionEntry, CompletionsRequestArgs, CompletionDetailsRequestArgs, CompletionEntryDetails } from '../protocol';
|
||||
import * as Previewer from './previewer';
|
||||
import { tsTextSpanToVsRange, vsPositionToTsFileLocation } from '../utils/convert';
|
||||
import { tsTextSpanToVsRange, vsPositionToTsFileLocation, tsLocationToVsPosition } from '../utils/convert';
|
||||
|
||||
import * as nls from 'vscode-nls';
|
||||
let localize = nls.loadMessageBundle();
|
||||
|
@ -46,6 +46,10 @@ class MyCompletionItem extends CompletionItem {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (entry.hasAction) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private static convertKind(kind: string): CompletionItemKind {
|
||||
|
@ -277,9 +281,25 @@ export default class TypeScriptCompletionItemProvider implements CompletionItemP
|
|||
}
|
||||
const detail = details[0];
|
||||
item.detail = Previewer.plain(detail.displayParts);
|
||||
|
||||
item.documentation = Previewer.markdownDocumentation(detail.documentation, detail.tags);
|
||||
|
||||
if (detail.codeActions && detail.codeActions.length) {
|
||||
const additionalEdits: TextEdit[] = [];
|
||||
for (const action of detail.codeActions) {
|
||||
for (const change of action.changes) {
|
||||
if (change.fileName !== filepath) {
|
||||
continue;
|
||||
}
|
||||
for (const edit of change.textChanges) {
|
||||
additionalEdits.push(new TextEdit(
|
||||
new Range(tsLocationToVsPosition(edit.start), tsLocationToVsPosition(edit.end)),
|
||||
edit.newText));
|
||||
}
|
||||
}
|
||||
}
|
||||
item.additionalTextEdits = additionalEdits;
|
||||
}
|
||||
|
||||
if (detail && this.config.useCodeSnippetsOnMethodSuggest && (item.kind === CompletionItemKind.Function || item.kind === CompletionItemKind.Method)) {
|
||||
return this.isValidFunctionCompletionContext(filepath, item.position).then(shouldCompleteFunction => {
|
||||
if (shouldCompleteFunction) {
|
||||
|
|
Loading…
Reference in a new issue