@@ -90,13 +90,14 @@ export class ObjectScriptCompletionItemProvider implements vscode.CompletionItem
90
90
public macrolist (
91
91
document : vscode . TextDocument ,
92
92
position : vscode . Position ,
93
- token : vscode . CancellationToken ,
94
- context : vscode . CompletionContext
93
+ _token : vscode . CancellationToken ,
94
+ _context : vscode . CompletionContext
95
95
) : vscode . ProviderResult < vscode . CompletionItem [ ] | vscode . CompletionList > {
96
- const range = document . getWordRangeAtPosition ( position , / \$ { 3 } ( \b \w [ \w \d ] * \b ) ? / ) ;
96
+ const pattern = / ( \$ { 3 } | \s ) ( \b \w [ \w \d ] * \b ) ? / ;
97
+ const range = document . getWordRangeAtPosition ( position , pattern ) ;
97
98
const text = range ? document . getText ( range ) : "" ;
98
99
if ( range ) {
99
- const macro = text . toLowerCase ( ) . slice ( 3 ) ;
100
+ const [ , prefix , macro = "" ] = text . toLowerCase ( ) . match ( pattern ) ;
100
101
const file = currentFile ( ) ;
101
102
const api = new AtelierAPI ( ) ;
102
103
return api
@@ -107,9 +108,9 @@ export class ObjectScriptCompletionItemProvider implements vscode.CompletionItem
107
108
. then ( ( list ) =>
108
109
list . map ( ( el ) => ( {
109
110
label : el ,
110
- // kind: vscode.CompletionItemKind.Constant,
111
- // insertText: el,
112
- range ,
111
+ range : range . with (
112
+ new vscode . Position ( range . start . line , range . start . character + prefix . replace ( / \$ / g , "" ) . length )
113
+ ) ,
113
114
} ) )
114
115
) ;
115
116
}
0 commit comments