Visual Studio Code 中的 JSX 或 HTML 自动完成

IT技术 reactjs autocomplete visual-studio-code jsx emmet
2021-04-18 15:41:02

有没有办法在 Visual Studio Code 中使用组件或 HTML 完成?因为当我们有 Bootstrap 等类时,手动输入每个字母并不是一个好主意。例如 Emmet 中的补全:ul>li*2>a

var React = require('react');

var Header = React.createClass({
    render: function () {
        return (

            <nav className="navbar navbar-defaullt">
                <div className="container-fluid">
                    <a href="/" className="navbar-brand">
                        <img width="50" height="50" src="images/logo.png" alt="logo" />
                    </a>
                    <ul className="nav navbar-nav">
                        <li><a href="/">Home</a></li>
                        <li><a href="/#about">About</a></li>
                    </ul>
                </div>
            </nav>

                );
                }
                });
module.exports  = Header;
6个回答

2019 年:React 直截了当的答案

在 React 项目中获得 JSX/HTML 自动完成的最直接方法是将其添加到您的用户设置或工作区设置 ( <project-path>/.vscode/settings.json):

      "emmet.includeLanguages": {
        "javascript": "javascriptreact"
      },
      "emmet.triggerExpansionOnTab": true

您可能需要重新启动 VS Code 才能使更改生效。

PS 如果你没有为 React.js 项目做这个映射,那么 KehkashanFazal 的答案可能对你有用。

这有效!然而!如果您打开了建议,点击选项卡将从该列表中获取最高建议...解决此问题的方法是使用Editor: Quick Suggestions Delay. 将其设置为诸如 600 之类的值,您将能够输入元素 -> 点击选项卡 -> 瞧。
2021-05-26 15:41:02
"javascript": ["javascript", "javascriptreact"] - 为 .js 和 .jsx 文件设置它。
2021-06-09 15:41:02
谢谢你的回答!它就像一个魅力!
2021-06-12 15:41:02

Visual Studio 代码检测 .jsx 扩展名并默认添加 emmet 支持(我使用的是 VS 代码 1.8.1)

但是,如果您更喜欢对所有 React 文件使用 .js 扩展名 - 您可以将 JavaScript React 模式与 VS Code 窗口右下角的 .js 文件相关联。

如何逐步执行此操作 (gif)

在此处输入图片说明

2021 年更新

对于那些只想复制粘贴代码的人:

"emmet.syntaxProfiles": {
  "javascript": "jsx"
}

如果上述解决方案不起作用,请尝试以下操作:

"emmet.triggerExpansionOnTab": true,
"emmet.includeLanguages": {
  "javascript": "javascriptreact"
}

使用 VS Code v1.56.2 测试。

"emmet.triggerExpansionOnTab": true, "emmet.includeLanguages": { "javascript": "javascriptreact" } 为我做的
2021-05-25 15:41:02
从 gif 中不明显的是,他ESC在按下TAB以获取自动完成之前按下手动退出智能感知窗口
2021-05-27 15:41:02
第二个对我很有效,谢谢!
2021-05-29 15:41:02
你能解释一下最后一部分吗?我需要使用 js 作为我所有 react 文件的扩展名。
2021-06-03 15:41:02
如果您更喜欢纯文本,请添加"emmet.syntaxProfiles": { "javascript": "jsx" }到您的用户设置...
2021-06-06 15:41:02

如果有人还在为这个问题苦苦挣扎:

我发现只需设置

"emmet.syntaxProfiles": {
     "javascript": "jsx" 
 },

不启用 HTML 完成。但是,使用:

"emmet.includeLanguages": {
    "javascript": "html"
}

做。

根据emmet 文档

"emmet.includeLanguages": {}

在默认情况下不支持的语言中启用 emmet 缩写。在此处添加语言和 emmet 支持的语言之间的映射。
例如:{"vue-html": "html", "javascript": "javascriptreact"}

这对我有用。使用 ` "emmet.includeLanguages": { "javascript":"javascriptreact", } ` 或 ` "emmet.includeLanguages": { "javascript":"jsx", } ` 对我不起作用
2021-06-16 15:41:02

只需在屏幕右下角选择适当的语言模式:将其设置为JavaScript React。

是的,我敢肯定,每次重新打开 VS 代码时,您都会希望对大型项目中的每个文件都执行此操作...
2021-05-24 15:41:02
是的,有趣 =) 更新后默认支持 jsx + emmet。
2021-05-28 15:41:02
默认支持什么?
2021-06-09 15:41:02
完美的!感谢您的回答
2021-06-11 15:41:02

2018年

我正在使用 VSCode (ver 1.27.2)

根据我的经验,即使我正在使用React. 我的检测到的语言VSCode仍然是香草JavaScript并且 emmet 不起作用。

  • 使其再次工作的方法之一是将VSCode检测到的语言更改JavaScript React. 这仅适用于单个JS文件。

vscode 选项

  • 要完全更改一次,您需要关联它。

二

点击 Configure File Association for .js...

三

并选择JSX,在我的情况下,我已经这样做了。

四

  • 对于工作场所设置,如果它们都不适合您,则最后一次。转到 Preference of just ctrl + , (comma)to 打开它。

键入并搜索emmetEmmet然后复制要覆盖的设置。就我而言:

{
    "emmet.triggerExpansionOnTab": true,
    "emmet.includeLanguages": {
        "javascript": "javascriptreact"
    },
}

注意:我没有尝试jsx使用javascriptreact.

设置

我实施了第二步和第三步。而我现在可以做到Emmet