在属性更改事件处理程序

时间:2018-01-11 12:47:28

标签: visual-studio-code vscode-extensions

在VSCode extension中,我正在寻找一种方法来在用户修改package.json的contribs.configuration部分中定义的扩展属性时作出反应。

它是否存在像onPropertyChange之类的事件或其他一些注册事件处理程序的方式?

1 个答案:

答案 0 :(得分:3)

重新阅读vscode文档后,我发现自己是一个答案:

修改配置属性时,

workspace.onDidChangeConfiguration回调会收到ConfigurationChangeEvent

使用方法affectsConfiguration然后可以对特定的属性更改做出反应,例如:

export function activate(context: vscode.ExtensionContext) {

    vscode.workspace.onDidChangeConfiguration(event => {
        let affected = event.affectsConfiguration("riot.compiler");
        if (affected) {
            // rebuild cpp project settings
            setup();
        }
    })

    ...