如何在IDEA中使用多行数组作为参数传递?

时间:2013-05-11 09:43:08

标签: intellij-idea coffeescript

假设我在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"

这是错误的,因为在那种情况下,空函数作为参数传递。这是一个错误还是我自己可以修复它?

3 个答案:

答案 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"