在我的vscode扩展名中,我想比较差异编辑器中的预期测试结果与实际测试结果。预期结果yaml文件包含动态替换的表达式,在并排编辑器中,我要控制突出显示哪些差异。
预期:
request:
url: '${baseUrl}/movies/${id}'
method: GET
#...
实际:
request:
url: 'http://localhost/api/movies/435b30ad' # (diff should be ignored)
method: GET
#...
我可以直接提供差异吗?
此刻,在打开差异编辑器后,我将像这样应用装饰:
async diffResults(expected: vscode.Uri, actual: vscode.Uri) {
await vscode.commands.executeCommand('vscode.diff', expected, actual);
const expectedEditor = await this.findEditor(expected);
if (expectedEditor) {
this.decorator.applyDecorations(expectedEditor);
}
const actualEditor = await this.findEditor(actual);
if (actualEditor) {
this.decorator.applyDecorations(actualEditor);
}
}
但是,我的装饰覆盖在默认的diff装饰之上,而不是取代它们。此外,我认为装饰器方法不是处理此问题的正确方法。如果可能的话,我想将自己的实际差异提供给编辑器,然后让vscode处理修饰。