目录
- 背景
- [0. Trae 环境准备](#0. Trae 环境准备)
- [1. 从VSCode市场获取插件安装包](#1. 从VSCode市场获取插件安装包)
- [2. 直接安装插件至Trae会失败](#2. 直接安装插件至Trae会失败)
- [3. 解压 vsix 文件](#3. 解压 vsix 文件)
- [4. 直接移动安装](#4. 直接移动安装)
- 参考文献:
背景
基于 VSCode 改版但使用 Open VSX 的编辑器(如 trae、Cursor)会遇到以下限制[1](#1):
微软官方插件(Pylance/Remote SSH/C#工具链等)仅在 Microsoft Marketplace 分发,这些闭源插件不会同步到 Open VSX 仓库。Pylance 的智能补全、类型检查等高级功能将缺失。
官方建议的用 pyright
来代替[2](#2) [3](#3),但是 pyright
远不如 pylance,缺失后非常不方便。观察到官方文档[4](#4)有如下图:
可以推测,其实 trae 可以装上 Pylance插件。经过实验,发现确实trae可以使用 pylance 的老版本。
免责声明:根据微软官方的声明,pylance 仅被授权于使用于 VS Code 中,其他使用均未被授权,本文的方法不得被用于任何侵犯微软版权的活动中。
0. Trae 环境准备
主要思路是仿照在基于VS code 的开源软件 VSCodium 里安装 Pylance 插件[5](#5):
- 找到 trae 安装目录,如
F:\Programs\Trae\resources\app\
- 修改
product.json
(可以先进行备份):
将其中的
bash
"extensionsGallery": {
"serviceUrl": "https://open-vsx.org/vscode/gallery",
"controlUrl": "https://lf3-static.bytednsdoc.com/obj/eden-cn/lkpkbvsj/ljhwZthlaukjlkulzlp/marketplace/controlUrl.json",
"searchUrl": "https://open-vsx.org/vscode/gallery/extensionquery"
},
改为:
bash
"extensionsGallery": {
"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
"itemUrl": "https://marketplace.visualstudio.com/items"
},
这里的作用是将插件更新的连接全部指向 VS Code官方的插件市场。
1. 从VSCode市场获取插件安装包
这里需要从VSCode市场手动获取安装包[6](#6):
- 访问VSCode插件市场,搜索目标插件(Pylance);
- 进入插件详情页,点击Version History查看历史版本;
- 从
https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance
中提取关键参数:- itemName字段拆分为:
fieldA=ms-python
,fieldB=vscode-pylance
- 选择兼容版本号 (如
2023.9.10
)
- itemName字段拆分为:
笔者得到的下载链接为:
bash
https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-python/vsextensions/vscode-pylance/2023.9.10/vspackage
2. 直接安装插件至Trae会失败
浏览器打开上述链接,会自动下载.vsix文件,得到 ms-python.vscode-pylance-2023.9.10.vsix
文件。
但是此时如果打开Trae,进入插件市场,然后拖拽下载的.vsix文件至插件面板安装,会报错:
即:
Installation failed
Currently, ms-python.vscode-pylance is not supported for installation
因此不能直接这样安装。注意,如果这种安装方式出现另一个错误:
End of central directory record signature not found. Either not a zip file, or file is truncated.
则说明文件没有下载完整,请重新下载。
3. 解压 vsix 文件
-
保持 Trae 打开,并在项目中任意打开一个python文件,左边栏停留在插件市场的界面。
-
将
ms-python.vscode-pylance-2023.9.10.vsix
文件 解压 提取到ms-python.vscode-pylance-2023.9.10
文件夹:
-
然后将
extension
文件夹里的所有文件复制到本目录下:
-
修改
package.json
,将"displayName": "Pylance"
改为"displayName": "Pylance-trae"
(避免Trae识别到pylance)。 -
进入此时
dist
文件夹下,复制一个extension.bundle.js
作为部分,然后新建一个空白的extension.bundle.js
[7](#7):
4. 直接移动安装
- 还是保持 Trae 打开,并在项目中任意打开一个python文件,左边栏停留在插件市场的界面。
- 将
ms-python.vscode-pylance-2023.9.10
文件夹 移动至 trae 的插件目录C:\Users\你的用户名\.trae\extensions
:
- 此时会发现,已安装的插件里会自动更新出现 Pylance-trae 插件:
- trae 的插件目录
C:\Users\你的用户名\.trae\extensions
下的extensions.json
里面会自动多一项:
,{"identifier":{"id":"ms-python.vscode-pylance"},"version":"2023.9.10","location":{"$mid":1,"fsPath":"c:\Users\xxx\.trae\extensions\ms-python.vscode-pylance-2023.9.10","_sep":1,"external":"file:///c%3A/Users/xxx/.trae/extensions/ms-python.vscode-pylance-2023.9.10","path":"/c:/Users/xxx/.trae/extensions/ms-python.vscode-pylance-2023.9.10","scheme":"file"},"relativeLocation":"ms-python.vscode-pylance-2023.9.10"}
注意,这里在移动文件夹之后笔者的 trae 是自动更新到了插件。没有出现说明失败了。
- 最后重启 trae,即可享受
pylance
插件的丝滑。
