Skip to content

Commit de33215

Browse files
Merge pull request #1813 from filipw/feature/incomplete-completions
for single character completions, treat the completion list as incomplete
2 parents 5f655e9 + 8b904d9 commit de33215

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/features/completionItemProvider.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import AbstractSupport from './abstractProvider';
1010
import * as protocol from '../omnisharp/protocol';
1111
import * as serverUtils from '../omnisharp/utils';
1212
import {createRequest} from '../omnisharp/typeConvertion';
13-
import {CompletionItemProvider, CompletionItem, CompletionItemKind, CancellationToken, TextDocument, Range, Position} from 'vscode';
13+
import {CompletionItemProvider, CompletionItem, CompletionItemKind, CancellationToken, TextDocument, Range, Position, CompletionList} from 'vscode';
1414

1515
export default class OmniSharpCompletionItemProvider extends AbstractSupport implements CompletionItemProvider {
1616

@@ -25,7 +25,7 @@ export default class OmniSharpCompletionItemProvider extends AbstractSupport imp
2525
';', '+', '-', '*', '/', '%', '&', '|', '^', '!',
2626
'~', '=', '<', '>', '?', '@', '#', '\'', '\"', '\\'];
2727

28-
public provideCompletionItems(document: TextDocument, position: Position, token: CancellationToken): Promise<CompletionItem[]> {
28+
public provideCompletionItems(document: TextDocument, position: Position, token: CancellationToken): Promise<CompletionList> {
2929

3030
let wordToComplete = '';
3131
let range = document.getWordRangeAtPosition(position);
@@ -93,7 +93,9 @@ export default class OmniSharpCompletionItemProvider extends AbstractSupport imp
9393
result.push(suggestion);
9494
}
9595

96-
return result;
96+
// for short completions (up to 1 character), treat the list as incomplete
97+
// because the server has likely witheld some matches due to performance constraints
98+
return new CompletionList(result, wordToComplete.length > 1 ? false : true);
9799
});
98100
}
99101
}

0 commit comments

Comments
 (0)