rio*_*oV8 3 visual-studio-code vscode-extensions
您WorkspaceConfiguration.update(...)可以指定需要将设置写入ConfigurationTarget.Workspace. .code-workspace如果是多根,这会更新工作区文件;.vscode/settings.json如果打开单个文件夹,这会更新工作区文件夹。
.code-workspace现在我想从工作区(或)获取当前设置.vscode/settings.json。
ConfigurationScope我需要在通话中设置什么workspace.getConfiguration?
我需要使用的 URI 是什么?和总是会给我TextDocument带来WorkspaceFolder价值.vscode/settings.json
我找到了方法WorkspaceConfiguration.inspect。它显示了设置中未合并的部分。
在我的扩展中,我设置了一个configuration设置"scope": "resource"
"configuration": {
"title": "Test Config",
"properties": {
"extension.someconfig": {
"type": "string",
"scope": "resource",
"description": "some test configuration setting",
"default": "default-value"
}
}
}
Run Code Online (Sandbox Code Playgroud)
定义全局/用户级别的值:"extension.someconfig": "user-value"
设置一个命令来根据当前文件记录一些内容。我不记录 的语言部分,inspect因为我不使用它们(以及您在哪里定义它们)。
let uri = vscode.window.activeTextEditor.document.uri;
let config = vscode.workspace.getConfiguration('extension', uri);
console.log('---------');
console.log('someconfig:', config.get('someconfig'));
let inspect = config.inspect('someconfig');
console.log('inspect.key:', inspect.key);
console.log('inspect.defaultValue:', inspect.defaultValue);
console.log('inspect.globalValue:', inspect.globalValue);
console.log('inspect.workspaceValue:', inspect.workspaceValue);
console.log('inspect.workspaceFolderValue:', inspect.workspaceFolderValue);
Run Code Online (Sandbox Code Playgroud)
我设置了一个测试 MR 工作区:
testconfig
+ project1
| + .vscode
| | + settings.json // "extension.someconfig": "project1-value"
| + main.py
+ project2
| + .vscode
| | + settings.json // "extension.someconfig": "project2-value"
| + main.py
+ project3
| + .vscode
| | + settings.json // "extension.someconfig": "project3-value"
| + main.py
+ testconfig.code-workspace // "extension.someconfig": "workspace-value"
Run Code Online (Sandbox Code Playgroud)
当我记录非作用域 的设置时getConfiguration:
let config = vscode.workspace.getConfiguration('extension');
Run Code Online (Sandbox Code Playgroud)
let config = vscode.workspace.getConfiguration('extension');
Run Code Online (Sandbox Code Playgroud)
使用作用域 getConfiguration时:
let config = vscode.workspace.getConfiguration('extension', uri);
Run Code Online (Sandbox Code Playgroud)
All 3 main.py files give:
someconfig: workspace-value
inspect.key: extension.someconfig
inspect.defaultValue: default-value
inspect.globalValue: user-value
inspect.workspaceValue: workspace-value
inspect.workspaceFolderValue: undefined
Run Code Online (Sandbox Code Playgroud)
当范围限定为 WorkspaceFolder 时
let config = vscode.workspace.getConfiguration('extension', uri);
Run Code Online (Sandbox Code Playgroud)
结果与文件作用域的结果相同。
当确定合并设置后,该设置workspaceFolderValue将undefined用于非作用域getConfiguration调用。
该调用使用与返回的调用inspect相同的范围getConfigurationWorkspaceConfiguration
| 归档时间: |
|
| 查看次数: |
4255 次 |
| 最近记录: |