@@ -14,6 +14,12 @@ import {CompletionItemProvider, CompletionItem, CompletionItemKind, Cancellation
1414
1515export 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