我不认为一个分机可以通过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
}
}