假设我在coffeescript文件中有这个功能
test = (arr, fn) ->
console.log item for item in arr
fn()
以下是我的称呼方式
test [1, 2, 3, 4, 5], ->
console.log "start"
# function body
console.log "finish"
一切正常,直到阵列变得太长,我想把它分成几行。喜欢这个
test ["first element here",
"second element here",
"third element here",
"fourth element here",
"fifth element here"], ->
console.log "start"
# function body
console.log "finish"
这是有效的,因为coffeescript编译器完全按照我的预期编译它,但IDEA表示在console.log "start"
行有意外缩进。我按 Ctrl + Alt + L ,IDEA给我这个
test ["first element here",
"second element here",
"third element here",
"fourth element here",
"fifth element here"], ->
console.log "start"
# function body
console.log "finish"
这是错误的,因为在那种情况下,空函数作为参数传递。这是一个错误还是我自己可以修复它?
答案 0 :(得分:1)
JetBrains的支持告诉我这是一个错误,所以我打开了issue here。
答案 1 :(得分:0)
也许你必须更多地缩进函数体才能使它工作:
test ["first element here",
"second element here",
"third element here",
"fourth element here",
"fifth element here"], ->
console.log "start"
# function body
console.log "finish"
# ^ This column is indented two from the start of the array
# ^ Array starts here
至少在IntelliJ中对我有用。
答案 2 :(得分:0)
可能是CoffeeScript IDEA插件上的一个错误,如用户1737909 mentioned。
但是如果你现在要解决这个问题,我建议你只使用一个变量来继续运行:
arr = [
"first element here"
"second element here"
"third element here"
"fourth element here"
"fifth element here"
]
test arr, ->
console.log "start"
# function body
console.log "finish"