VSCode IntelliSense 提供智能代码补全、参数信息、快速信息和成员列表等功能,大幅提高编码效率。
IntelliSense 基础
触发 IntelliSense
- 手动触发: Ctrl+Space
- 自动触发: 输入时自动显示
- 上下文触发: 在特定上下文中自动显示
IntelliSense 类型
- 代码补全: 自动完成变量、函数、类等
- 参数信息: 显示函数参数
- 快速信息: 显示类型和文档信息
- 成员列表: 显示对象成员
代码补全
基本补全
javascript// 输入部分代码,IntelliSense 自动显示建议 console. // 显示 console 对象的所有方法 // 选择建议后按 Tab 或 Enter 接受 console.log('Hello World');
智能建议
- 基于上下文的建议
- 优先显示最相关的建议
- 支持模糊匹配
补全配置
json{ "editor.quickSuggestions": { "other": true, "comments": false, "strings": false }, "editor.suggestOnTriggerCharacters": true, "editor.acceptSuggestionOnEnter": "on", "editor.tabCompletion": "on" }
参数信息
查看参数信息
- 快捷键: Ctrl+Shift+Space
- 功能: 显示函数参数类型和文档
- 导航: 使用上/下箭头切换重载
参数信息示例
javascript// 输入函数名后按 Ctrl+Shift+Space Math.max( // 显示参数信息: number1: number, number2: number, ...values: number[]
快速信息
查看快速信息
- 快捷键: Ctrl+K, Ctrl+I
- 功能: 显示符号的类型和文档
- 悬停: 鼠标悬停在符号上
快速信息示例
javascript// 悬停在函数名上 function greet(name) { return `Hello, ${name}!`; } // 显示: function greet(name: string): string
成员列表
查看成员列表
- 触发: 输入对象名后输入
. - 功能: 显示对象的所有成员
- 过滤: 输入字符过滤列表
成员列表示例
javascriptconst obj = { name: 'John', age: 25, greet() { return `Hello, ${this.name}!`; } }; obj. // 显示 name, age, greet 等成员
IntelliSense 配置
基本配置
json{ "editor.quickSuggestions": { "other": true, "comments": false, "strings": false }, "editor.suggest.showStatusBar": true, "editor.suggest.maxVisibleSuggestions": 12, "editor.suggest.selectionMode": "always" }
高级配置
json{ "editor.suggest.localityBonus": true, "editor.suggest.shareSuggestSelections": true, "editor.suggest.snippetsPreventQuickSuggestions": false, "editor.wordBasedSuggestions": true }
语言特定配置
JavaScript/TypeScript
json{ "[javascript]": { "editor.quickSuggestions": { "other": true, "comments": false, "strings": true } }, "[typescript]": { "editor.quickSuggestions": { "other": true, "comments": false, "strings": true } } }
Python
json{ "[python]": { "editor.quickSuggestions": { "other": true, "comments": false, "strings": false } } }
IntelliSense 扩展
安装语言服务器
- TypeScript: 内置支持
- Python: Pylance 扩展
- Go: Go 扩展
- Rust: rust-analyzer 扩展
配置语言服务器
json{ "typescript.suggest.autoImports": true, "python.analysis.autoImportCompletions": true, "go.useLanguageServer": true }
注意事项
- IntelliSense 依赖语言服务器
- 大型项目可能影响性能
- 定期更新语言服务器
- 合理配置补全触发条件
- 使用代码片段提高效率