mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-27 03:54:24 +01:00
Merge pull request #1191 from Microsoft/aeschli/suggest-move-overwrite-fields
Move overwriteBefore/overwriteAfter to ISuggestion
This commit is contained in:
@@ -256,7 +256,7 @@ export class ExtHostApiCommands {
|
||||
for (let group of value) {
|
||||
for (let suggestions of group) {
|
||||
for (let suggestion of suggestions.suggestions) {
|
||||
const item = typeConverters.Suggest.to(suggestion);
|
||||
const item = typeConverters.Suggest.to(suggestions, position, suggestion);
|
||||
items.push(item);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -502,12 +502,12 @@ class SuggestAdapter implements modes.ISuggestSupport {
|
||||
// insert the text of the edit and create a dedicated
|
||||
// suggestion-container with overwrite[Before|After]
|
||||
suggestion.codeSnippet = item.textEdit.newText;
|
||||
suggestion.overwriteBefore = pos.character - editRange.start.character,
|
||||
suggestion.overwriteAfter = editRange.end.character - pos.character
|
||||
|
||||
allSuggestions.push({
|
||||
currentWord: doc.getText(<any>editRange),
|
||||
suggestions: [suggestion],
|
||||
overwriteBefore: pos.character - editRange.start.character,
|
||||
overwriteAfter: editRange.end.character - pos.character
|
||||
suggestions: [suggestion]
|
||||
});
|
||||
|
||||
} else {
|
||||
|
||||
@@ -326,7 +326,6 @@ export const Suggest = {
|
||||
codeSnippet: item.insertText || item.label,
|
||||
type: types.CompletionItemKind[item.kind || types.CompletionItemKind.Text].toString().toLowerCase(),
|
||||
typeLabel: item.detail,
|
||||
textEdit: item.textEdit && TextEdit.from(item.textEdit),
|
||||
documentationLabel: item.documentation,
|
||||
sortText: item.sortText,
|
||||
filterText: item.filterText
|
||||
@@ -334,7 +333,7 @@ export const Suggest = {
|
||||
return suggestion;
|
||||
},
|
||||
|
||||
to(suggestion: modes.ISuggestion): types.CompletionItem {
|
||||
to(container: modes.ISuggestResult, position: types.Position, suggestion: modes.ISuggestion): types.CompletionItem {
|
||||
const result = new types.CompletionItem(suggestion.label);
|
||||
result.insertText = suggestion.codeSnippet;
|
||||
result.kind = types.CompletionItemKind[suggestion.type.charAt(0).toUpperCase() + suggestion.type.substr(1)];
|
||||
@@ -342,7 +341,15 @@ export const Suggest = {
|
||||
result.documentation = suggestion.documentationLabel;
|
||||
result.sortText = suggestion.sortText;
|
||||
result.filterText = suggestion.filterText;
|
||||
result.textEdit = suggestion.textEdit && <any> TextEdit.to(suggestion.textEdit);
|
||||
|
||||
let overwriteBefore = (typeof suggestion.overwriteBefore === 'number') ? suggestion.overwriteBefore : container.currentWord.length;
|
||||
let startPosition = new types.Position(position.line, Math.max(0, position.character - overwriteBefore));
|
||||
let endPosition = position;
|
||||
if (typeof suggestion.overwriteAfter === 'number') {
|
||||
endPosition = new types.Position(position.line, position.character + suggestion.overwriteAfter);
|
||||
}
|
||||
|
||||
result.textEdit = types.TextEdit.replace(new types.Range(startPosition, endPosition), suggestion.codeSnippet);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user