vscode没有editor.suggest.priority配置项,补全排序由语言服务器、内置策略和showxxx开关协同决定;需启用editor.suggest.showmethods等开关并确保lsp(如pylance)正常工作。

为什么 editor.suggest.priority 不起作用
VSCode 没有 editor.suggest.priority 这个配置项——这是常见误解。自动补全的“权重”不是靠一个开关控制,而是由三类机制协同决定:语言服务器返回的建议顺序、编辑器内置的 suggestion 排序策略、以及用户对不同建议类型的显式开关。直接搜“权重”容易踩进文档误导的坑。
editor.suggest.showXXX 控制哪些补全项可见
即使语言服务器(如 Pylance、TypeScript Server)返回了函数、类、关键字等全部建议,VSCode 默认可能只显示其中一部分。必须手动打开对应开关:
-
editor.suggest.showMethods:控制是否显示方法名(如response.json()中的json) -
editor.suggest.showFunctions:影响函数声明补全(如自定义函数名) -
editor.suggest.showVariables:决定局部/全局变量是否出现在建议列表 -
editor.suggest.showKeywords:是否显示if、for等语法关键词 -
editor.suggest.showWords:启用基于当前文件单词的模糊匹配(非语义)
这些布尔值默认不全为 true,尤其在 Python 或 TypeScript 中,showMethods 和 showFunctions 常被关掉,导致你敲 obj. 后看不到成员。
语言服务器才是真正的“权重源头”
VSCode 本身不决定“哪个函数该排第一”,它只是渲染语言服务器返回的建议列表。真正影响排序的是:
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
- Pylance 对 Python 的类型推断精度(比如能否识别
pd.DataFrame的方法) - TypeScript Server 对泛型和重载的解析能力
- 插件是否启用语义高亮(
editor.semanticHighlighting: true),这会反向增强 LSP 的符号识别质量 - 项目中是否存在
pyrightconfig.json或tsconfig.json配置错误,导致 LSP 提前退出或降级为语法模式
如果你发现补全项顺序混乱、关键方法总排在末尾,先检查右下角语言状态栏是否显示 Pylance 或 TypeScript Server,而不是 Jedi 或 None。
不要碰 editor.suggest.sortOrder —— 它不解决实际问题
这个配置项确实存在,取值可为 none、dynamic、alphabetical,但它的作用非常有限:
-
dynamic(默认):依赖语言服务器提供的 score 字段,但多数 LSP 实现并不稳定输出该字段 -
alphabetical:纯字母序,破坏语义相关性,比如map可能排在filter前面,但你刚写了arr.时更想要map -
none:按服务器原始顺序,而这个顺序本身受代码上下文、导入路径、类型注解完整性影响极大
与其调这个,不如确保 python.defaultInterpreterPath 指向装好依赖的虚拟环境,或确认 jsconfig.json 已正确配置 compilerOptions.types —— 这些才是影响补全“相关性”的真实杠杆。










