我正在处理请求请求,以解决与集成终端环境变量有关的问题。可以通过this link #4568找到功能链接。问题行为描述可在this link #4434中找到。在此链接中,我提出了一种解决方法。但是我仍然想解决这个问题。
通过我自己的观察,我发现根本原因可能是:经过一些步骤,在创建终端过程中的某个地方,实际的环境变量值(特定于PATH)已被重新排序/更改。也许正在处理删除重复项。
我下载了vscode代码库(1.33),并进行调试,直到源文件createProcess
中的方法src/vs/workbench/contrib/terminal/electron-browser/terminalProcessManager.ts
。我发现的是:即使在创建终端实例之后,主进程中的env.PATH
也已否被更改。对于ptyProcess,构造函数将options(包含env)作为输入,但是在创建的ptyProcess中找不到任何与env相关的属性。并且在创建终端实例之后,调试结束,集成的终端出现在工作台中。创建终端实例后我迷路了,核心团队的成员或习惯于集成终端模块工作的人可以在代码库中将我指示到正确的位置,以便我可以尝试解决此问题吗? Internet上没有足够的文档,或者源代码中的注释无法帮助我查找/定位在创建终端实例期间/之后发生变化的环境。