本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

IntelliSense

IntelliSense 是一个涵盖各种代码编辑功能的通用术语,包括:代码补全、参数信息、快速信息和成员列表。IntelliSense 功能有时也被称为“代码完成”、“内容辅助”和“代码提示”等名称。

IntelliSense 用于你的编程语言

Visual Studio Code IntelliSense 开箱即用,支持 JavaScript、TypeScript、JSON、HTML、CSS、SCSS 等。VS Code 支持任何编程语言的基于单词的补全,但也可以通过安装语言扩展配置以获得更丰富的 IntelliSense。

以下是Visual Studio市场中最受欢迎的语言扩展。请选择下方的扩展瓷砖,阅读描述和评价,决定最适合您的扩展方案。

IntelliSense 功能

VS Code IntelliSense 的功能由语言服务驱动。语言服务基于语言语义和源代码分析,提供智能的代码补全。如果语言服务知道可能的完成性,IntelliSense 建议会在你输入时弹出。如果你继续输入字符,成员列表(变量、方法等)会被筛选,只包含包含你类型化字符的成员。按下Tab键或回车键即可插入所选成员。

你可以通过输入 ⌃Space(Windows,Linux 的 Ctrl+Space)或输入触发字符(例如 JavaScript 中的点字符 .)在任何编辑器Windows中触发 IntelliSense。

提示

建议控件支持 CamelCase 过滤,这意味着你可以在方法名中输入大写字母来限制建议。例如,“cra”会引出“createApplication”。

如果你愿意,打字时也可以关闭IntelliSense。请参阅“定制IntelliSense”,了解如何禁用或自定义VS Code的IntelliSense功能。

根据语言服务提供的,你可以按⌃空格(Windows,Linux Ctrl+Space)或选择图标,快速查看每种方法的信息。该方法的配套文档则在旁边展开。扩展后的文档依然可用,并会随着你浏览列表而更新。你可以通过再次按⌃空格(Windows,Linux Ctrl+Space)或选择关闭图标来关闭它。>

选择方法后,你会获得参数信息。

参数信息

在适用的情况下,语言服务会在快速信息和方法签名中显示底层类型。在上一张截图中,你可以看到几个任何类型。因为JavaScript是动态的,不需要或强制类型,任何表明变量可以是任意类型的。

完备类型

以下截图中的JavaScript代码展示了IntelliSense补全。IntelliSense既给出推断提案,也提供了项目的全局标识符。推断出的符号首先呈现,然后是全局标识符(由ABC单词图标)。

Intellisense 图标

VS Code IntelliSense 提供多种类型的补全功能,包括语言服务器建议、摘要和基于单词的简单文本补全。

图标 名称 符号类型
方法与功能 方法,功能,构造者
变量 变量
场 场地
类型参数 typeParameter
常数 常数
课程 级别
接口 界面
Architecture struct
活动 活动
运营方 算符
模 模块
属性与属性 财产
枚举 枚举
列举成员 会员
参考文献 参考文献
关键词 关键词
文件 文件
文件夹 文件夹
颜色 颜色
单位 单位
片段前缀 摘录
词汇 文本

定制IntelliSense

你可以在设置和快捷键中自定义IntelliSense体验。

背景设定

下面显示的设置是默认设置。你可以在设置编辑器中更改这些设置(⌘,(Windows,Linux Ctrl+,))。

{
    // Controls if quick suggestions should show up while typing
    "editor.quickSuggestions": {
        "other": true,
        "comments": false,
        "strings": false
    },

     // Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.
    "editor.acceptSuggestionOnCommitCharacter": true,

    // Controls if suggestions should be accepted on 'Enter' - in addition to 'Tab'. Helps to avoid ambiguity between inserting new lines or accepting suggestions. The value 'smart' means only accept a suggestion with Enter when it makes a textual change
    "editor.acceptSuggestionOnEnter": "on",

    // Controls the delay in ms after which quick suggestions will show up.
    "editor.quickSuggestionsDelay": 10,

    // Controls if suggestions should automatically show up when typing trigger characters
    "editor.suggestOnTriggerCharacters": true,

    // Controls if pressing tab inserts the best suggestion and if tab cycles through other suggestions
    "editor.tabCompletion": "off",

    // Controls whether sorting favours words that appear close to the cursor
    "editor.suggest.localityBonus": true,

    // Controls how suggestions are pre-selected when showing the suggest list
    "editor.suggestSelection": "first",

    // Enable word based suggestions
    "editor.wordBasedSuggestions": "matchingDocuments",

    // Enable parameter hints
    "editor.parameterHints.enabled": true,
}

制表补全

编辑器支持制表表补全,按 Tab 键时插入最匹配的补全。无论建议控制是否显示,这个方法都有效。另外,插入建议后按Tab键会插入下一个最佳建议。

默认情况下,标签完成功能是被禁用的。使用该

editor.tabCompletion
  • 在VS Code中打开
  • 在VS Code Insiders中开放
设置为启用它。这些数值存在:

  • 不对劲- (默认)Tab 补全功能被禁用。
  • 关于- 所有建议都启用制表表补全,重复调用插入下一个最佳建议。
  • 仅摘录- 制表表补全仅插入与当前行前缀匹配的静态片段。

地区奖励

建议的排序取决于扩展信息以及它们与你当前输入单词的匹配度。此外,你还可以请求编辑器提升那些看起来更接近光标位置的建议,使用以下工具

editor.suggest.localityBonus
  • 在VS Code中打开
  • 在VS Code Insiders中开放
环境。

按地区分类

在之前的截图中,你可以看到伯爵,背景, 和共址根据它们出现的作用域(循环、函数、文件)排序。

建议选择

默认情况下,VS Code 会预先选择建议列表中的第一个建议。例如,如果你希望有不同的行为,比如总是在建议列表中选择最近使用过的项目,你可以使用

编辑。建议 选择
  • 在VS Code中打开
  • 在VS Code Insiders中开放
环境。

可用的

编辑。建议 选择
  • 在VS Code中打开
  • 在VS Code Insiders中开放
数值如下:

  • 首先- (默认)始终选择最顶的列表项目。
  • 最近使用- 选择之前使用的项目,除非前缀(选择类型)选择了其他项目。
  • 最近UsedByPrefix- 根据之前完成这些建议的前缀选择项目。

选择最近使用的物品非常有用,因为你可以快速多次插入同一个补全。

“输入选择”意味着当前前缀(大致是光标左侧的文本)用于过滤和排序建议。当发生这种情况,且其结果与最近使用,将优先处理。

使用最后一种方式时,最近UsedByPrefix,VS Code 会记住特定前缀(部分文本)中选中的项目。比如,如果你输入科罗拉多然后被选中控制台, 下次你打字时科罗拉多,建议控制台会被预选。这让你能快速将各种前缀映射到不同的建议,比如科罗拉多 -> 控制台以及缺点 -> 续航.

建议片段

默认情况下,VS Code 会在一个控制点中显示摘要和完成提案。你可以用

editor.snippet建议
  • 在VS Code中打开
  • 在VS Code Insiders中开放
环境。要从建议控件中移除片段,请将值设置为“没有”. 如果你想看片段,可以指定相对于建议的顺序;顶部 (“顶”),在底部(“底层”),或按字母顺序排列的内联顺序(“内线”). 默认为“内线”.

键盘快捷键

这里显示的快捷键是默认快捷键。要分配不同的快捷键,可以使用键盘快捷指令编辑器(⌘K ⌘S(Windows,Linux Ctrl+K Ctrl+S))。

指挥 按键绑定
editor.action.triggerSuggest ⌃Space(Windows,Linux Ctrl+Space)
toggleSuggestionDetails(切换建议详情) ⌃Space(Windows,Linux Ctrl+Space)
toggleSuggestionFocus(切换建议焦点) ⌃⌥Space(Windows,Linux Ctrl+Alt+Space)
提示

还有许多与IntelliSense相关的快捷键。打开默认快捷键(文件>偏好设置>快捷键),搜索“建议”。

用AI提升完成

GitHub Copilot 在你输入编辑器时会提供编码建议。你还可以问与 Copilot 相关的编码问题,比如如何最好地编写代码、如何修复漏洞,或者别人的代码是如何工作的。

开始:

  1. 安装GitHub Copilot扩展。

  2. 通过我们的Copilot快速入门,发现关键功能。

提示

如果你还没有Copilot订阅,可以通过注册Copilot免费计划免费使用Copilot,并获得每月的在线建议和聊天互动限制。

故障排除

如果你发现 IntelliSense 停止工作,说明语言服务可能没有运行。试着重启 VS Code,这样应该能解决问题。如果安装语言扩展后仍然缺少 IntelliSense 功能,可以在该语言扩展的仓库里打开一个问题。

注释

在非常大的工作区中,IntelliSense 功能可能会部分被禁用,原因是性能问题。如果发生这种情况,请尝试排除大型文件夹(例如node_modules或构建输出目录)通过

files.exclude
  • 在VS Code中打开
  • 在VS Code Insiders中开放
或
搜索.排除
  • 在VS Code中打开
  • 在VS Code Insiders中开放
设定。

提示

有关配置和排查JavaScript IntelliSense,请参见JavaScript文档。

某个特定语言扩展可能不支持所有VS Code IntelliSense功能。请查看扩展的README,了解支持哪些内容。如果你认为某个语言扩展存在问题,通常可以通过VS Code市场找到该扩展的问题仓库。进入扩展的详情页面,选择支持链接。

下一步

IntelliSense 只是 VS Code 强大的功能之一。继续阅读以了解更多信息:

  • 调试——学习如何为你的应用程序设置调试。
  • 创建语言扩展——学习如何为新编程语言添加IntelliSense扩展。
  • GitHub Copilot 在 VS Code 中——学习如何利用 GitHub Copilot 的 AI 来提升你的编码能力。

常见问题

为什么我没有得到任何建议?

这可能由多种原因引起。首先,尝试重启 VS Code。如果问题依旧,请查阅语言扩展的文档。关于 JavaScript 相关的故障排除,请参见 JavaScript 语言主题。

为什么我没有看到方法和变量的建议?

IntelliSense 图像显示无实用建议

这个问题是由于 JavaScript 中缺少类型声明(类型)文件引起的。大多数常见的 JavaScript 库都附带声明文件,或者有类型声明文件可用。

确保安装对应的 npm 或 yarn 包,适用于你所使用的库。在 Works with JavaScript 文章中了解更多关于 IntelliSense 的信息。其他语言请查阅扩展的文档。