Skip to content

Commit 2c64ed2

Browse files
Merge pull request #1494 from DustinCampbell/issue-1491
Add default completion commit characters
2 parents 99f5812 + 6123fc7 commit 2c64ed2

File tree

2 files changed

+10
-17
lines changed

2 files changed

+10
-17
lines changed

package.json

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -553,21 +553,6 @@
553553
"command": "o.showOutput",
554554
"key": "Ctrl+L L",
555555
"mac": "Cmd+L L"
556-
},
557-
{
558-
"key": "shift+0",
559-
"command": "^acceptSelectedSuggestion",
560-
"when": "editorTextFocus && suggestWidgetVisible && editorLangId == 'csharp' && suggestionSupportsAcceptOnKey"
561-
},
562-
{
563-
"key": "shift+9",
564-
"command": "^acceptSelectedSuggestion",
565-
"when": "editorTextFocus && suggestWidgetVisible && editorLangId == 'csharp' && suggestionSupportsAcceptOnKey"
566-
},
567-
{
568-
"key": ".",
569-
"command": "^acceptSelectedSuggestion",
570-
"when": "editorTextFocus && suggestWidgetVisible && editorLangId == 'csharp' && suggestionSupportsAcceptOnKey"
571556
}
572557
],
573558
"snippets": [

src/features/completionItemProvider.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ import {CompletionItemProvider, CompletionItem, CompletionItemKind, Cancellation
1414

1515
export default class OmniSharpCompletionItemProvider extends AbstractSupport implements CompletionItemProvider {
1616

17+
// copied from Roslyn here: https://github.com/dotnet/roslyn/blob/6e8f6d600b6c4bc0b92bc3d782a9e0b07e1c9f8e/src/Features/Core/Portable/Completion/CompletionRules.cs#L166-L169
18+
private static DefaultCommitCharacters = [
19+
' ', '{', '}', '[', ']', '(', ')', '.', ',', ':',
20+
';', '+', '-', '*', '/', '%', '&', '|', '^', '!',
21+
'~', '=', '<', '>', '?', '@', '#', '\'', '\"', '\\'];
22+
1723
public provideCompletionItems(document: TextDocument, position: Position, token: CancellationToken): Promise<CompletionItem[]> {
1824

1925
let wordToComplete = '';
@@ -40,7 +46,7 @@ export default class OmniSharpCompletionItemProvider extends AbstractSupport imp
4046
// transform AutoCompleteResponse to CompletionItem and
4147
// group by code snippet
4248
for (let response of responses) {
43-
let completion = new CompletionItem(response.DisplayText);
49+
let completion = new CompletionItem(response.CompletionText);
4450

4551
completion.detail = response.ReturnType
4652
? `${response.ReturnType} ${response.DisplayText}`
@@ -49,6 +55,7 @@ export default class OmniSharpCompletionItemProvider extends AbstractSupport imp
4955
completion.documentation = extractSummaryText(response.Description);
5056
completion.kind = _kinds[response.Kind] || CompletionItemKind.Property;
5157
completion.insertText = response.CompletionText.replace(/<>/g, '');
58+
completion.commitCharacters = OmniSharpCompletionItemProvider.DefaultCommitCharacters;
5259

5360
let array = completions[completion.label];
5461
if (!array) {
@@ -98,11 +105,12 @@ _kinds['Parameter'] = CompletionItemKind.Variable;
98105
_kinds['RangeVariable'] = CompletionItemKind.Variable;
99106

100107
// members
108+
_kinds['Const'] = CompletionItemKind.Constant;
101109
_kinds['EnumMember'] = CompletionItemKind.EnumMember;
102110
_kinds['Event'] = CompletionItemKind.Event;
103111
_kinds['Field'] = CompletionItemKind.Field;
104-
_kinds['Property'] = CompletionItemKind.Property;
105112
_kinds['Method'] = CompletionItemKind.Method;
113+
_kinds['Property'] = CompletionItemKind.Property;
106114

107115
// other stuff
108116
_kinds['Label'] = CompletionItemKind.Unit; // need a better option for this.

0 commit comments

Comments
 (0)