Skip to content

Commit

Permalink
Merge pull request #1494 from DustinCampbell/issue-1491
Browse files Browse the repository at this point in the history
Add default completion commit characters
  • Loading branch information
DustinCampbell authored May 19, 2017
2 parents 99f5812 + 6123fc7 commit 2c64ed2
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 17 deletions.
15 changes: 0 additions & 15 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -553,21 +553,6 @@
"command": "o.showOutput",
"key": "Ctrl+L L",
"mac": "Cmd+L L"
},
{
"key": "shift+0",
"command": "^acceptSelectedSuggestion",
"when": "editorTextFocus && suggestWidgetVisible && editorLangId == 'csharp' && suggestionSupportsAcceptOnKey"
},
{
"key": "shift+9",
"command": "^acceptSelectedSuggestion",
"when": "editorTextFocus && suggestWidgetVisible && editorLangId == 'csharp' && suggestionSupportsAcceptOnKey"
},
{
"key": ".",
"command": "^acceptSelectedSuggestion",
"when": "editorTextFocus && suggestWidgetVisible && editorLangId == 'csharp' && suggestionSupportsAcceptOnKey"
}
],
"snippets": [
Expand Down
12 changes: 10 additions & 2 deletions src/features/completionItemProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ import {CompletionItemProvider, CompletionItem, CompletionItemKind, Cancellation

export default class OmniSharpCompletionItemProvider extends AbstractSupport implements CompletionItemProvider {

// copied from Roslyn here: https://github.com/dotnet/roslyn/blob/6e8f6d600b6c4bc0b92bc3d782a9e0b07e1c9f8e/src/Features/Core/Portable/Completion/CompletionRules.cs#L166-L169
private static DefaultCommitCharacters = [
' ', '{', '}', '[', ']', '(', ')', '.', ',', ':',
';', '+', '-', '*', '/', '%', '&', '|', '^', '!',
'~', '=', '<', '>', '?', '@', '#', '\'', '\"', '\\'];

public provideCompletionItems(document: TextDocument, position: Position, token: CancellationToken): Promise<CompletionItem[]> {

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

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

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

// members
_kinds['Const'] = CompletionItemKind.Constant;
_kinds['EnumMember'] = CompletionItemKind.EnumMember;
_kinds['Event'] = CompletionItemKind.Event;
_kinds['Field'] = CompletionItemKind.Field;
_kinds['Property'] = CompletionItemKind.Property;
_kinds['Method'] = CompletionItemKind.Method;
_kinds['Property'] = CompletionItemKind.Property;

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

0 comments on commit 2c64ed2

Please sign in to comment.