Skip to content

Commit ae0be6f

Browse files
Merge pull request #1776 from rchande/triggerCharacterAPI
Consume the completion trigger character API
2 parents de33215 + 611092b commit ae0be6f

File tree

4 files changed

+9
-4
lines changed

4 files changed

+9
-4
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2156,4 +2156,4 @@
21562156
}
21572157
]
21582158
}
2159-
}
2159+
}

src/features/completionItemProvider.ts

Lines changed: 6 additions & 2 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, CompletionList} from 'vscode';
13+
import {CompletionItemProvider, CompletionItem, CompletionItemKind, CompletionContext, CompletionTriggerKind, 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<CompletionList> {
28+
public provideCompletionItems(document: TextDocument, position: Position, token: CancellationToken, context: CompletionContext): Promise<CompletionList> {
2929

3030
let wordToComplete = '';
3131
let range = document.getWordRangeAtPosition(position);
@@ -38,6 +38,10 @@ export default class OmniSharpCompletionItemProvider extends AbstractSupport imp
3838
req.WantDocumentationForEveryCompletionResult = true;
3939
req.WantKind = true;
4040
req.WantReturnType = true;
41+
if (context.triggerKind == CompletionTriggerKind.TriggerCharacter)
42+
{
43+
req.TriggerCharacter = context.triggerCharacter;
44+
}
4145

4246
return serverUtils.autoComplete(this._server, req).then(responses => {
4347

src/omnisharp/extension.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export function activate(context: vscode.ExtensionContext, reporter: TelemetryRe
6666
localDisposables.push(vscode.languages.registerDocumentRangeFormattingEditProvider(documentSelector, new FormatProvider(server, reporter)));
6767
localDisposables.push(vscode.languages.registerOnTypeFormattingEditProvider(documentSelector, new FormatProvider(server, reporter), '}', ';'));
6868
}
69-
localDisposables.push(vscode.languages.registerCompletionItemProvider(documentSelector, new CompletionItemProvider(server, reporter), '.'));
69+
localDisposables.push(vscode.languages.registerCompletionItemProvider(documentSelector, new CompletionItemProvider(server, reporter), '.', ' '));
7070
localDisposables.push(vscode.languages.registerWorkspaceSymbolProvider(new WorkspaceSymbolProvider(server, reporter)));
7171
localDisposables.push(vscode.languages.registerSignatureHelpProvider(documentSelector, new SignatureHelpProvider(server, reporter), '(', ','));
7272
const codeActionProvider = new CodeActionProvider(server, reporter);

src/omnisharp/protocol.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,7 @@ export interface AutoCompleteRequest extends Request {
256256
WantSnippet?: boolean;
257257
WantReturnType?: boolean;
258258
WantKind?: boolean;
259+
TriggerCharacter?: string;
259260
}
260261

261262
export interface AutoCompleteResponse {

0 commit comments

Comments
 (0)