关于属性更改事件处理程序

att*_*ona 0 visual-studio-code vscode-extensions

在VSCode 扩展中,我正在寻找一种方法,当用户修改package.json的contributes.configuration部分中定义的扩展属性时。

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

att*_*ona 6

重新阅读vscode文档后,我找到了答案:

workspace.onDidChangeConfiguration修改config属性时,回调会收到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();
        }
    })

    ...
Run Code Online (Sandbox Code Playgroud)