Skip to content

Commit 6601427

Browse files
committed
fix: use ShouldReplace
1 parent db07b3c commit 6601427

File tree

1 file changed

+19
-22
lines changed

1 file changed

+19
-22
lines changed

lib/adapters/autocomplete-adapter.ts

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,10 @@ import { Suggestion, TextSuggestion, SnippetSuggestion } from "../types/autocomp
2525
* Defines the behavior of suggestion acceptance.
2626
* Assume you have "cons|ole" in the editor (`|` is the cursor position)
2727
* and the autocomplete suggestion is `const`.
28-
* - insert mode: const|ole
29-
* - replace mode: const|
28+
* - if `false` -> the edits are inserted : const|ole
29+
* - if `true`` -> the edits are replaced: const|
3030
*/
31-
enum InsertMode {
32-
insert = 'insert',
33-
replace = 'replace',
34-
}
31+
type ShouldReplace = boolean;
3532

3633
/**
3734
* Holds a list of suggestions generated from the CompletionItem[]
@@ -87,7 +84,7 @@ export default class AutocompleteAdapter {
8784
* @param onDidConvertCompletionItem An optional function that takes a {CompletionItem},
8885
* an {atom$AutocompleteSuggestion} and a {atom$AutocompleteRequest}
8986
* allowing you to adjust converted items.
90-
* @param insertMode The behavior of suggestion acceptance (see {InsertMode}).
87+
* @param shouldReplace The behavior of suggestion acceptance (see {ShouldReplace}).
9188
* @returns A {Promise} of an {Array} of {atom$AutocompleteSuggestion}s containing the
9289
* AutoComplete+ suggestions to display.
9390
*/
@@ -96,7 +93,7 @@ export default class AutocompleteAdapter {
9693
request: ac.SuggestionsRequestedEvent,
9794
onDidConvertCompletionItem?: CompletionItemAdjuster,
9895
minimumWordLength?: number,
99-
insertMode: InsertMode = InsertMode.insert
96+
shouldReplace: ShouldReplace = false,
10097
): Promise<ac.AnySuggestion[]> {
10198
const triggerChars =
10299
server.capabilities.completionProvider != null
@@ -117,7 +114,7 @@ export default class AutocompleteAdapter {
117114
request,
118115
triggerChar,
119116
triggerOnly,
120-
insertMode,
117+
shouldReplace,
121118
onDidConvertCompletionItem
122119
)
123120

@@ -157,7 +154,7 @@ export default class AutocompleteAdapter {
157154
request: ac.SuggestionsRequestedEvent,
158155
triggerChar: string,
159156
triggerOnly: boolean,
160-
insertMode: InsertMode,
157+
shouldReplace: ShouldReplace,
161158
onDidConvertCompletionItem?: CompletionItemAdjuster
162159
): Promise<Suggestion[]> {
163160
const cache = this._suggestionCache.get(server)
@@ -199,7 +196,7 @@ export default class AutocompleteAdapter {
199196
completions,
200197
request,
201198
triggerColumns,
202-
insertMode,
199+
shouldReplace,
203200
onDidConvertCompletionItem
204201
)
205202
this._suggestionCache.set(server, {
@@ -358,7 +355,7 @@ export default class AutocompleteAdapter {
358355
* @param completionItems An {Array} of {CompletionItem} objects or a {CompletionList} containing completion
359356
* items to be converted.
360357
* @param request The {atom$AutocompleteRequest} to satisfy.
361-
* @param insertMode The behavior of suggestion acceptance (see {InsertMode}).
358+
* @param shouldReplace The behavior of suggestion acceptance (see {ShouldReplace}).
362359
* @param onDidConvertCompletionItem A function that takes a {CompletionItem}, an {atom$AutocompleteSuggestion}
363360
* and a {atom$AutocompleteRequest} allowing you to adjust converted items.
364361
* @returns A {Map} of AutoComplete+ suggestions ordered by the CompletionItems sortText.
@@ -367,7 +364,7 @@ export default class AutocompleteAdapter {
367364
completionItems: CompletionItem[] | CompletionList | null,
368365
request: ac.SuggestionsRequestedEvent,
369366
triggerColumns: [number, number],
370-
insertMode: InsertMode,
367+
shouldReplace: ShouldReplace,
371368
onDidConvertCompletionItem?: CompletionItemAdjuster
372369
): Map<Suggestion, PossiblyResolvedCompletionItem> {
373370
const completionsArray = Array.isArray(completionItems)
@@ -382,7 +379,7 @@ export default class AutocompleteAdapter {
382379
{} as Suggestion,
383380
request,
384381
triggerColumns,
385-
insertMode,
382+
shouldReplace,
386383
onDidConvertCompletionItem
387384
),
388385
new PossiblyResolvedCompletionItem(s, false),
@@ -396,7 +393,7 @@ export default class AutocompleteAdapter {
396393
* @param item An {CompletionItem} containing a completion item to be converted.
397394
* @param suggestion A {atom$AutocompleteSuggestion} to have the conversion applied to.
398395
* @param request The {atom$AutocompleteRequest} to satisfy.
399-
* @param insertMode The behavior of suggestion acceptance (see {InsertMode}).
396+
* @param shouldReplace The behavior of suggestion acceptance (see {ShouldReplace}).
400397
* @param onDidConvertCompletionItem A function that takes a {CompletionItem}, an {atom$AutocompleteSuggestion}
401398
* and a {atom$AutocompleteRequest} allowing you to adjust converted items.
402399
* @returns The {atom$AutocompleteSuggestion} passed in as suggestion with the conversion applied.
@@ -406,7 +403,7 @@ export default class AutocompleteAdapter {
406403
suggestion: Suggestion,
407404
request: ac.SuggestionsRequestedEvent,
408405
triggerColumns: [number, number],
409-
insertMode: InsertMode,
406+
shouldReplace: ShouldReplace,
410407
onDidConvertCompletionItem?: CompletionItemAdjuster
411408
): Suggestion {
412409
AutocompleteAdapter.applyCompletionItemToSuggestion(item, suggestion as TextSuggestion)
@@ -416,7 +413,7 @@ export default class AutocompleteAdapter {
416413
triggerColumns,
417414
request.bufferPosition,
418415
suggestion as TextSuggestion,
419-
insertMode
416+
shouldReplace
420417
)
421418
AutocompleteAdapter.applySnippetToSuggestion(item, suggestion as SnippetSuggestion)
422419
if (onDidConvertCompletionItem != null) {
@@ -467,24 +464,24 @@ export default class AutocompleteAdapter {
467464
* @param textEdit A {TextEdit} from a CompletionItem to apply.
468465
* @param editor An Atom {TextEditor} used to obtain the necessary text replacement.
469466
* @param suggestion An {atom$AutocompleteSuggestion} to set the replacementPrefix and text properties of.
470-
* @param insertMode The behavior of suggestion acceptance (see {InsertMode}).
467+
* @param shouldReplace The behavior of suggestion acceptance (see {ShouldReplace}).
471468
*/
472469
public static applyTextEditToSuggestion(
473470
textEdit: TextEdit | InsertReplaceEdit | undefined,
474471
editor: TextEditor,
475472
triggerColumns: [number, number],
476473
originalBufferPosition: Point,
477474
suggestion: TextSuggestion,
478-
insertMode: InsertMode,
475+
shouldReplace: ShouldReplace,
479476
): void {
480477
if (!textEdit) { return; }
481478
let range: Range;
482479
if ('range' in textEdit) {
483480
range = textEdit.range;
484-
} else if (insertMode === InsertMode.insert) {
485-
range = textEdit.insert;
486-
} else {
481+
} else if (shouldReplace) {
487482
range = textEdit.replace;
483+
} else {
484+
range = textEdit.insert;
488485
}
489486

490487
if (range.start.character !== triggerColumns[0]) {

0 commit comments

Comments
 (0)