2

一部のJavaScriptスニペットでVisual Studioコード拡張を公開したいと思いますが、ユーザーに1つのオプションを選択させたいと思います。具体的には、私はこのVisual Studioコード:スニペット拡張のインストールフック

export default class C { } 

ような形式にエクスポートしてJavaScriptのモジュールを生産し、別のは、この

class C { 
} 

export default C; 

のようにフォーマットと私はロードしたいスニペットの二組が、1したいのですが1つ、または他のスニペットのセットをユーザの好みに基づいて選択することができる。

このような方法をサポートする方法はありますか。言い換えれば、市場で自分の内線番号を公開すると、ユーザーが好きな書式をユーザーに教えることができるようにすることができます。スニペットをロードできますか?

答えて

1

私は拡張子がJSONファイルを介して動的なスニペットを貢献できるとは思わないが、あなたの拡張機能は、動的にスニペットを返すカスタムCompletionItemProviderを使用することができ、おそらくこのような何か:

import * as vscode from 'vscode' 

class MySnippetProvider extends vscode.CompletionItemProvider { 
    public provideCompletionItems(
     _document: vscode.TextDocument, 
     _position: vscode.Position, 
     _token: vscode.CancellationToken 
    ): vscode.ProviderResult<vscode.CompletionItem[]> { 
     const item = new vscode.CompletionItem('export snippet', vscode.CompletionItemKind.Snippet) 

     const config = vscode.workspace.getConfiguration('myExtension') 
     if (config.get('option', false)) { 
      item.insertText = new vscode.SnippetString('export default class C { $0 }') 
     } else { 
      item.insertText = new vscode.SnippetString(
`class C { 
    $0 
} 

export default C;`) 
     } 


     return [item] 
    } 

    public resolveCompletionItem(
     item: vscode.CompletionItem, 
     _token: vscode.CancellationToken 
    ) { 
     return item 
    } 
} 
関連する問題