【问题标题】:Atom-Editor: Failed to load init.coffee - ERROR: reserved word 'function'Atom-Editor:无法加载 init.coffee - 错误:保留字“功能”
【发布时间】:2020-09-03 15:55:26
【问题描述】:

更新:我找到了该问题的解决方案/解决方法。我将 init.coffee 重命名为 init.js,因为 Atom 也支持 JavaScript。我仍然想知道问题的原因。下面的脚本是无效的 CoffeeScript 还是我缺少一些依赖?我从 Arch 官方仓库安装了 Atom。

由于某种原因,我的 init.coffee 无法加载。以下代码来自 Atom 的"Composed" Commands 文档:

atom.commands.add('atom-text-editor', 'custom:cut-line', function () {
  const editor = this.getModel();
  editor.selectLinesContainingCursors();
  editor.cutSelectedText();
});

Atom 启动时抛出错误:

Failed to load /home/myname/.atom/init.coffee
reserved word 'function'

我不确定这是错误、我的错还是文档过期的结果。错误消息不是很有帮助,因为我已经认为“函数”是一个保留字,即使我不太了解 Coffee/JavaScript。

我用() -> {...}替换了function,这导致了同样的错误,除了这次是保留字const

最后,我尝试定义一个命名函数,并将其作为参数传递给atom.commands.add(),但得到了同样的错误。

我在 Linux 上。 atom --version 返回:

Atom    : 1.46.0
Electron: 4.2.12
Chrome  : 69.0.3497.128
Node    : 10.11.0

【问题讨论】:

  • 欢迎来到 SO。请从您的问题中删除解决方案摘要。 SO 不是留言板或论坛,它就像一本参考书,有一个问题,然后是解决方案/答案。解决方案属于如果您解决了问题的答案。请参阅“How to Ask”及其所有链接页面以及“tour”。此外,在编辑时,不要使用“编辑”或“更新”类型的标签。如果我们需要知道,SO 可以准确地向我们展示发生了什么变化。相反,只需将更改的信息合并到原始文本中,就好像它一直都在那里一样。

标签: coffeescript atom-editor


【解决方案1】:

您的解决方案是正确的方向 - 代码是 JavaScript,而不是 CoffeeScript。

看起来您引用的“"Composed" Commands”文档在其示例中同时使用了 JavaScript 和 CoffeeScript。

从 JavaScript 转换:

atom.commands.add('atom-text-editor', 'custom:cut-line', function () {
  const editor = this.getModel();
  editor.selectLinesContainingCursors();
  editor.cutSelectedText();
});

到 CoffeeScript:

atom.commands.add 'atom-text-editor', 'custom:cut-line',  () ->
  editor = @getModel()
  editor.selectLinesContainingCursors()
  editor.cutSelectedText()
  • 调用带参数的函数时,可以省略括号()
  • function 在 CoffeeScript 中被删除,只需使用括号和单个 -> 或双箭头 =>,其中双箭头与 .bind(this) 相同,因此此处不正确。
  • 没有const/let/var关键字。只是定义了没有它们的变量。
  • this. 可以替换为 @
  • 大括号 ({}) 包装函数定义是可选的。
  • 没有分号。

如果您想学习 CoffeeScript 并帮助社区,您可以通过对 repository 进行分叉、编辑和拉取请求来自己修复文档。

或者,您应该在其存储库中的文档中将此错误报告为issue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-08
    • 2014-01-10
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多