【问题标题】:Sublime doesn't syntax highlight React functions?Sublime 没有语法高亮 React 函数吗?
【发布时间】:2019-03-01 10:13:51
【问题描述】:

我正在尝试使用这种语法内联绑定我的函数:

onChange = () => {

}

但是,我的 sublime 编辑器没有正确突出显示它:

我正在使用Babel package for sublime 进行语法高亮显示。

有谁知道如何让它识别这种风格?

【问题讨论】:

    标签: reactjs sublimetext3 sublimetext


    【解决方案1】:

    检查一下

    查看 -> 语法 -> 以当前扩展名打开所有... -> Babel -> Javascript(Babel)。

    Ctrl - Shift - P,输入“Babel”并选择Set Syntax: Javascript (巴别塔)

    Source

    【讨论】:

    • 完美华丽的说明。谢谢。
    【解决方案2】:

    ST3 依赖于语言定义来提供诸如代码折叠、语法高亮等语言特性。然而,使用 JavaScript,您可以拥有许多不同风格的语言 - 如 ES5、ES6、JSX 等。要正确理解和解析每一个考虑到 ST3 的设计(使用主要是正则表达式匹配的语言定义文件),其中的一些并不容易。

    因此,根据您要查找的内容,您可能需要安装 Java​Script​Next - ES6 Syntax,这有助于 ST3 更好地理解该语言及其语法。如果我没记错的话,市场上很少有这样的产品。

    然后是语法高亮的概念——同样,如果核心编辑器本身不了解什么是 JS 以及什么是 JS-like,这些插件取决于语言定义有一个或多个缺点。您可以尝试以下几种选择,看看哪种最适合:

    • naomi - Sublime Text 3 的增强语法定义。支持 stage-0 功能

    • babel-sublime - 带有 React JSX 扩展的 ES6 JavaScript 语法定义。但是箭头函数有一些问题,见#301

    • sublime-react - 它实际上已被 babel-sublime 弃用,但您可能想检查一下。

    无论您选择什么,都需要进行一些尽职调查。检查他们的问题列表,看看是否有什么对你来说很突出。依赖转译器只能走这么远。

    作为 ST3 的老用户,我经常发现一个或多个问题。根据你是在使用纯 JS 还是 React,你可能不得不不断地切换或接受一些妥协。

    最终,我切换到 VSCode(也尝试过 Atom),它理解语言及其原生风格,并提供了作者可以构建的扩展 API。因此,语法理解和突出显示功能远远超过您从 ST3 + 扩展中获得的功能。

    【讨论】:

    • 我已经读到 babel-sublime 就足够了,在其他答案中,但到目前为止,naomi 是我唯一能正确突出常规 Javascript 和嵌入式 JSX 语法的东西。谢谢。
    【解决方案3】:

    想到的唯一解决方案是为 Sublime 创建一个自定义 sn-p,以“识别”箭头函数或通常简化的语法来声明函数。

    这里有两个可能有用的链接:

    https://medium.freecodecamp.org/a-guide-to-preserving-your-wrists-with-sublime-text-snippets-7541662a53f2

    https://gist.github.com/LeZuse/2324352 要么 https://gist.github.com/ZYinMD/860926a178ccd6d107ffe2c6727b5845

    【讨论】:

      猜你喜欢
      • 2014-05-17
      • 1970-01-01
      • 2016-11-04
      • 2016-09-29
      • 2014-12-05
      • 2015-06-11
      • 2013-07-14
      • 1970-01-01
      • 2014-04-11
      相关资源
      最近更新 更多