Atom-Editor: Failed to load init.coffee - ERROR: reserved word 'function'
Atom-Editor: Failed to load init.coffee - ERROR: reserved word 'function'
更新:我找到了 solution/workaround 的问题。我将 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'
我不确定这是错误、我的错还是过时文档的结果。错误消息不是很有帮助,因为我已经知道 "function" 是一个保留字,即使我不太了解 Coffee/JavaScript.
我用 () -> {...}
替换了 function
,这导致了同样的错误,除了这次是保留字 const
。
最后,我尝试定义一个命名函数,我将其作为参数传递给 atom.commands.add()
并得到了同样的错误。
我在 Linux。 atom --version
returns:
Atom : 1.46.0
Electron: 4.2.12
Chrome : 69.0.3497.128
Node : 10.11.0
您的解决方案方向正确 - 代码是 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。
更新:我找到了 solution/workaround 的问题。我将 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'
我不确定这是错误、我的错还是过时文档的结果。错误消息不是很有帮助,因为我已经知道 "function" 是一个保留字,即使我不太了解 Coffee/JavaScript.
我用 () -> {...}
替换了 function
,这导致了同样的错误,除了这次是保留字 const
。
最后,我尝试定义一个命名函数,我将其作为参数传递给 atom.commands.add()
并得到了同样的错误。
我在 Linux。 atom --version
returns:
Atom : 1.46.0
Electron: 4.2.12
Chrome : 69.0.3497.128
Node : 10.11.0
您的解决方案方向正确 - 代码是 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。