【问题标题】:Visual Studio Code: Installation hook for snippets extensionVisual Studio Code:片段扩展的安装挂钩
【发布时间】:2017-03-15 14:19:06
【问题描述】:

我想发布一个带有一些 JavaScript sn-ps 的 Visual Studio Code 扩展,但是,我想让用户选择一个选项,而不是另一个选项。具体来说,我想要两组 sn-ps,一组生成 JavaScript 模块,其导出格式如下

export default class C { }

还有一个这样的格式

class C { 
}

export default C;

我想根据用户的偏好加载一个或其他一组 sn-ps。

有没有办法支持这样的事情?换句话说,当我在市场上发布我的扩展时,是否有任何我可以公开的钩子让用户告诉我他们喜欢哪种格式,所以我可以加载 那些 sn-ps ?

【问题讨论】:

    标签: javascript visual-studio-code vscode-extensions vscode-settings


    【解决方案1】:

    我不认为扩展可以通过 json 文件提供动态 sn-ps,但您的扩展可以使用自定义 CompletionItemProvider 动态返回 sn-ps,可能是这样的:

    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
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-01
      • 1970-01-01
      • 2019-03-20
      • 2012-04-11
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      相关资源
      最近更新 更多