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 中的点字符 .)在任何编辑器窗口中触发 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代码中打开
  • 在VS Code Insiders中开放
设置为启用它。这些数值存在:

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

地区奖励

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

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

按地区分类

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

建议选择

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

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

可用的

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

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

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

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

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

建议片段

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

editor.snippet建议
  • 在VS代码中打开
  • 在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代码中打开
  • 在VS Code Insiders中开放
搜索.排除
  • 在VS代码中打开
  • 在VS Code Insiders中开放
设定。

提示

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

某些语言扩展可能不支持所有VS Code IntelliSense功能。查看扩展的README,了解支持什么内容。如果你觉得语言扩展有问题,通常可以通过VS Code市场找到扩展的issue仓库。进入扩展的详情页面,选择支持链接。

下一步

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

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

常见问题

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

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

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

IntelliSense 图像显示无实用建议

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

一定要安装对应你用的库的npm或yarn包。想了解更多关于IntelliSense的信息,请参阅“JavaScript协作”一文。如需其他语言,请参阅扩展文档。