@@ -90,13 +90,14 @@ export class ObjectScriptCompletionItemProvider implements vscode.CompletionItem
9090 public macrolist (
9191 document : vscode . TextDocument ,
9292 position : vscode . Position ,
93- token : vscode . CancellationToken ,
94- context : vscode . CompletionContext
93+ _token : vscode . CancellationToken ,
94+ _context : vscode . CompletionContext
9595 ) : 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 ) ;
9798 const text = range ? document . getText ( range ) : "" ;
9899 if ( range ) {
99- const macro = text . toLowerCase ( ) . slice ( 3 ) ;
100+ const [ , prefix , macro = "" ] = text . toLowerCase ( ) . match ( pattern ) ;
100101 const file = currentFile ( ) ;
101102 const api = new AtelierAPI ( ) ;
102103 return api
@@ -107,9 +108,9 @@ export class ObjectScriptCompletionItemProvider implements vscode.CompletionItem
107108 . then ( ( list ) =>
108109 list . map ( ( el ) => ( {
109110 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+ ) ,
113114 } ) )
114115 ) ;
115116 }
0 commit comments