VS Code 扩展可以通过配置 API 读取 http.proxy:

import * as vscode from 'vscode';

const resource = vscode.window.activeTextEditor?.document.uri;
const http = vscode.workspace.getConfiguration('http', resource);
const proxyUrl = http.get<string>('proxy', '');

该节是 http,其中的属性是 proxy。当特定于资源的值很重要时,传入 resource 可提供配置上下文。

get 会为该上下文解析设置。当报告需要这些值的来源时,inspect('proxy') 可以显示在不同受支持的配置作用域中存在的值。

空字符串并不能证明 VS Code 直接连接。编辑器可能使用系统配置,包括自动代理选择。此设置并不是每个目标所选 PAC 结果的完整列表。

读取 proxyUrl 也不会配置扩展启动的任意库。请通过该 HTTP 客户端受支持的接口应用所需的值,并考虑其环境或代理行为。

当扩展需要察觉更改时,使用 onDidChangeConfiguration 和 affectsConfiguration('http.proxy', resource)。应在客户端的生命周期内重新配置,而不是把激活时读取一次的字符串视为永久有效。

相关文章