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

Nyx*_*nyx 5 jsx sublimetext3 reactjs

在Sublime Text 3中,我有一个Babel用于在JSX中对HTML代码进行语法高亮显示的包.

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

Ale*_*lex 7

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

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

[
    {"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" }
  ]
}
]
Run Code Online (Sandbox Code Playgroud)

Tabautocompletition是默认不允许的,以避免与内崇高文本功能冲突,但这个脚本将使埃米特意识到这一点,将允许JSX文件的范围内autocompletition


Mar*_*tin 0

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

如果您使用 Babel 作为 JS 的格式和 HTML 包(例如 Emmet),那么应该没问题。在某些情况下,“选项卡”可能不起作用,但 Emmet CTRL+e 仍然会展开任何部分标签,即使正确使用“className”而不是类。