Visual Studio代码中的JSX或HTML自动完成

pgky5nke  于 2022-09-21  发布在  React
关注(0)|答案(22)|浏览(278)

有什么方法可以在Visual Studio代码中使用组件或HTML完成功能吗?因为当我们有像Bootstrap之类的类时,手动输入每个字母都不是好主意。

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;
lsmd5eda

lsmd5eda16#

2019更新

.html、.js、.jsx中的自动结束标签

开箱即用。也就是说,在开始标记中输入结束括号后,结束标记将自动插入。

在.jsx文件中使用基本的超文本标记语言

开箱即用。

在.js文件中使用基本的Html:

添加以下设置,这是Emmet缩写建议所必需的,也是制表符展开一致工作所必需的。

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

在.js和.jsx文件中使用自定义标记(例如,Reaction组件)进行Emmet

添加以下设置:

"emmet.triggerExpansionOnTab": true,

请注意,使用此设置,Emmet会将所有单词扩展为定制标记(而不仅仅是Reaction组件名称)

还请注意,当使用Emmet将Reaction组件展开为自定义标记时,您必须从建议列表中实际选择组件名称并首先完成(或者手动输入全名,然后使用退出键关闭建议菜单)。在单词展开后,您必须再次按Tab键才能让Emmet展开定制标记。

有一个active feature request可以潜在地删除这个额外的步骤(当选择建议时自动展开,以便它的工作方式与展开标准的html标记相同)。

故障排除

确保您拥有最新版本的VSCode。

确保您没有更改以下默认设置:

"html.autoClosingTags": true,
"javascript.autoClosingTags": true,
"typescript.autoClosingTags": true,

// read the GitHub issue listed above if you're curious why this is required).
"editor.wordBasedSuggestions": true,

// you obviously don't want javascript, javascriptreact included in here if you want Emmet to be available in those files
"emmet.excludeLanguages": [
    "markdown"
],
vsmadaxz

vsmadaxz17#

这些解决方案都没有奏效。但自动关闭标记扩展做到了!https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-close-tag

vlju58qv

vlju58qv18#

2020年简单答案

首先,选择窗口右下角的[文件关联]。

第二步,从窗口中央上方的下拉菜单中选择[为.js配置文件关联]。将其更改为JavaScript Reaction。

olmpazwi

olmpazwi19#

2018

我正在使用VSCode``(ver 1.27.2)

基于我的经验,尽管我使用的是React。在我的VSCode上检测到的语言仍然是普通的JavaScript。而 emmet 并没有奏效。

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

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

点击Configure File Association for .js...

并选择JSX,在我的例子中,我已经这样做了。

  • 用于工作场所设置,如果它们都不适用于您,则为最后一项。只需转到首选项ctrl + , (comma)即可打开它。

键入并搜索emmetEmmet。然后复制要覆盖的设置。在我的案例中:

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

:我没有尝试使用jsx,只使用javascriptreact

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

xtfmy6hx

xtfmy6hx20#

只需在屏幕右下角选择合适的语言模式,设置为JavaScript Reaction。

fnvucqvd

fnvucqvd21#

如果有人仍然在这个问题上苦苦挣扎:

我发现,简单地设置

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

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

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

的确如此。

根据emmet docs
"emmet.includeLanguages": {}

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

3j86kqsm

3j86kqsm22#

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

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

How to do this step by step (gif)

更新2021

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

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

如果上面的解决方案不起作用,试试这个:

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

使用VS Code v1.56.2进行了测试。

相关问题