owa*_*786 56 autocomplete jsx emmet reactjs visual-studio-code
有没有办法在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;
Run Code Online (Sandbox Code Playgroud)
Jul*_*oro 119
2018年:React的直截了当的答案
在React项目中获得JSX/HTML自动完成的最直接方法是将其添加到您的用户设置或工作区设置(<project-path>/.vscode/settings.json
):
"emmet.includeLanguages": {
"javascript": "javascriptreact"
},
"emmet.triggerExpansionOnTab": true
Run Code Online (Sandbox Code Playgroud)
您可能必须重新启动VS Code才能使更改生效.
PS如果你没有为React.js项目做这个映射,那么KehkashanFazal的答案可能适合你.
小智 57
Visual Studio代码检测.jsx扩展并默认添加emmet支持(我使用的是VS代码1.8.1)
但是如果您更喜欢对所有反应文件使用.js扩展名 - 您可以将JavaScript React模式与VS Code窗口右下角的.js文件相关联.
小智 37
如果有人仍在努力解决这个问题:
我发现只是设置
"emmet.syntaxProfiles": {
"javascript": "jsx"
},
Run Code Online (Sandbox Code Playgroud)
不启用HTML完成.但是,使用:
"emmet.includeLanguages": {
"javascript": "html"
}
Run Code Online (Sandbox Code Playgroud)
确实.
根据emmet文档:
"emmet.includeLanguages": {}
以默认不支持的语言启用emmet缩写.在语言和emmet支持的语言之间添加映射.
例如:{"vue-html": "html", "javascript": "javascriptreact"}
Kam*_*ara 10
2022-2023:为 ReactJs 启用 JSX 自动建议的简单而现代的方法如下面的 GIF 所示。
对于 Windows => 文件 > 首选项 > 设置
对于 MacO => 代码 > 首选项 > 设置
然后转到扩展 > emmet > 包含语言并添加javascript
为项目和javascriptreact
值
作为视觉参考,请按照 GIF 中所示的步骤操作。
这些解决方案都不起作用......但Auto Close Tag扩展功能确实有效! https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-close-tag
2018年
我正在使用 VSCode
(ver 1.27.2)
基于我的经验,即使我正在与React
。我VSCode
身上检测到的语言仍然是香草JavaScript
。和emmet没用。
VSCode
检测到的语言更改为JavaScript React
。这仅适用于单个JS
文件。请点击 Configure File Association for .js...
然后选择JSX
,对于我来说,我已经做到了。
ctrl + , (comma)
其打开。输入并搜索emmet
或Emmet
。然后复制您要覆盖的设置。就我而言:
{
"emmet.triggerExpansionOnTab": true,
"emmet.includeLanguages": {
"javascript": "javascriptreact"
},
}
Run Code Online (Sandbox Code Playgroud)
注意:我并没有尝试jsx
仅使用javascriptreact
。
我执行了第二步和第三步。我现在可以做Emmet
。
自动关闭.html,.js和.jsx中的标签
开箱即用。也就是说,在开始标记中键入结束括号后,结束标记将自动插入。
Emmet具有.jsx文件中的基本HTML
开箱即用。
Emmet具有.js文件中的基本HTML:
添加以下设置,这是Emmet缩写建议所必需的,并且选项卡扩展必须能够一致地工作。
"emmet.includeLanguages": {
"javascript": "javascriptreact"
},
Run Code Online (Sandbox Code Playgroud)
Emmet在.js和.jsx文件中均具有自定义标签(例如React Components)
添加以下设置:
"emmet.triggerExpansionOnTab": true,
Run Code Online (Sandbox Code Playgroud)
请注意,使用此设置,Emmet会将所有单词扩展为自定义标签(而不仅仅是React组件名称)
还要注意,当使用Emmet扩展React组件作为自定义标签时,您实际上必须从建议列表中选择组件名称并首先完成该名称(或手动输入全名,然后使用转义键关闭建议菜单)。单词扩展后,您必须再次按Tab键以使Emmet扩展自定义标签。
有一个活动功能请求可能会删除此额外步骤(选择建议时自动展开,以使其与扩展标准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"
],
Run Code Online (Sandbox Code Playgroud)
小智 6
我扔掉了所有答案,这个配置对我有用。必须包含语言并添加语法配置文件。如果没有触发器扩展,什么都不起作用,但现在我只需按 Tab 按钮即可获得结果。
"emmet.includeLanguages": {
"javascript": "javascriptreact"
},
"emmet.syntaxProfiles": {
"javascript": "jsx"
},
"emmet.triggerExpansionOnTab": true
Run Code Online (Sandbox Code Playgroud)
小智 6
我只需按照以下步骤解决问题:
将这些行添加到文件中:
"emmet.triggerExpansionOnTab": true,
"emmet.includeLanguages": {
"javascript": "javascriptreact"
}
Run Code Online (Sandbox Code Playgroud)如果您想了解更多详细信息,可以检查此链接。
归档时间: |
|
查看次数: |
37044 次 |
最近记录: |