@@ -22,16 +22,26 @@ export class SnippetCompletionProvider implements CompletionItemProvider {
2222 const snippetItems : CompletionItem [ ] = [ ] ;
2323 for ( const label of Object . keys ( this . snippets ) ) {
2424 const snippetContent = this . snippets [ label ] ;
25- const snippetItem : CompletionItem = new CompletionItem ( snippetContent . prefix ) ;
26- snippetItem . kind = CompletionItemKind . Snippet ;
27- snippetItem . detail = snippetContent . description ;
28- const insertText : string = ( snippetContent . body as String [ ] ) . join ( '\n' ) ;
29- snippetItem . insertText = new SnippetString ( insertText ) ;
30- snippetItem . documentation = beautifyDocument ( insertText ) ;
31- snippetItems . push ( snippetItem ) ;
25+ if ( Array . isArray ( snippetContent . prefix ) ) {
26+ for ( const prefix of snippetContent . prefix ) {
27+ snippetItems . push ( this . getCompletionItem ( prefix , snippetContent ) ) ;
28+ }
29+ } else {
30+ snippetItems . push ( this . getCompletionItem ( snippetContent . prefix , snippetContent ) ) ;
31+ }
3232 }
3333 return snippetItems ;
3434 }
35+
36+ private getCompletionItem ( prefix : string , snippetContent : any ) {
37+ const snippetItem : CompletionItem = new CompletionItem ( prefix ) ;
38+ snippetItem . kind = CompletionItemKind . Snippet ;
39+ snippetItem . detail = snippetContent . description ;
40+ const insertText : string = ( snippetContent . body as String [ ] ) . join ( '\n' ) ;
41+ snippetItem . insertText = new SnippetString ( insertText ) ;
42+ snippetItem . documentation = beautifyDocument ( insertText ) ;
43+ return snippetItem ;
44+ }
3545}
3646
3747export function beautifyDocument ( raw : string ) : MarkdownString {
0 commit comments