在Sublime Text 3中,如何在JSX中启用HTML的自动完成功能

时间:2016-05-20 13:30:31

标签: reactjs sublimetext3 jsx

在Sublime Text 3中,我有Babel包,用于在JSX中突出显示HTML代码。

但HTML代码没有自动完成功能,例如包含在render()块内的代码。我们如何为HTML代码启用自动完成功能?

2 个答案:

答案 0 :(得分:7)

您需要Emmet插件才能在JSX组件中自动完成。

使用包控制器安装Emmet。在其他Emmet功能中,在写完标签名称后,按Ctrl+E它将转换为开 - 关标签对。如果您想使用Tab按钮,则需要通过添加到包设置中来修改基本的Emmet配置 - > Emmet - >键绑定(用户)一个JSON doc,如:

[
    {"keys": ["tab"], "command": "expand_abbreviation_by_tab", "context":
  [
    { "operand": "source.js", "operator": "equal", "match_all": true, "key": "selector" },
    { "match_all": true, "key": "selection_empty" },
    { "operator": "equal", "operand": false, "match_all": true, "key": "has_next_field" },
    { "operand": false, "operator": "equal", "match_all": true, "key": "auto_complete_visible" },
    { "match_all": true, "key": "is_abbreviation" }
  ]
}
]

默认情况下不允许Tab自动完成以避免与内部Sublime Text功能冲突,但此脚本将使Emmet意识到这一点,并允许在JSX文件范围内自动重现

答案 1 :(得分:0)

这很难回答,因为它取决于很多Sublime Text插件。

如果你使用Babel作为JS的格式和像Emmet这样的HTML包,你应该没问题。在某些情况下,“tab”可能不起作用,但Emmet CTRL + e仍将扩展任何部分标记,即使使用正确的“className”而不是类。