【发布时间】:2019-03-01 10:13:51
【问题描述】:
我正在尝试使用这种语法内联绑定我的函数:
onChange = () => {
}
但是,我的 sublime 编辑器没有正确突出显示它:
我正在使用Babel package for sublime 进行语法高亮显示。
有谁知道如何让它识别这种风格?
【问题讨论】:
标签: reactjs sublimetext3 sublimetext
我正在尝试使用这种语法内联绑定我的函数:
onChange = () => {
}
但是,我的 sublime 编辑器没有正确突出显示它:
我正在使用Babel package for sublime 进行语法高亮显示。
有谁知道如何让它识别这种风格?
【问题讨论】:
标签: reactjs sublimetext3 sublimetext
检查一下
查看 -> 语法 -> 以当前扩展名打开所有... -> Babel -> Javascript(Babel)。
或
Ctrl - Shift - P,输入“Babel”并选择Set Syntax: Javascript (巴别塔)
【讨论】:
ST3 依赖于语言定义来提供诸如代码折叠、语法高亮等语言特性。然而,使用 JavaScript,您可以拥有许多不同风格的语言 - 如 ES5、ES6、JSX 等。要正确理解和解析每一个考虑到 ST3 的设计(使用主要是正则表达式匹配的语言定义文件),其中的一些并不容易。
因此,根据您要查找的内容,您可能需要安装 JavaScriptNext - 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 + 扩展中获得的功能。
【讨论】:
想到的唯一解决方案是为 Sublime 创建一个自定义 sn-p,以“识别”箭头函数或通常简化的语法来声明函数。
这里有两个可能有用的链接:
和
https://gist.github.com/LeZuse/2324352 要么 https://gist.github.com/ZYinMD/860926a178ccd6d107ffe2c6727b5845
【讨论】: