IntelliJ Idea Ultimate红色强调了Ruby简写哈希文字

Rob*_*ith 17 ruby hash intellij-idea literals

有人知道为什么IntelliJ Idea Ultimate不喜欢新语法中的Ruby哈希文字吗?请参阅下面的IDE中我的屏幕截图中的红色下划线.句法:

{key1: "value", key2: 123}
Run Code Online (Sandbox Code Playgroud)

真烦人,因为这意味着我的整个项目在目录树中都有一个红色下划线.

我已经在IDE首选项中设置了大于1.9 的Ruby SDK版本(这是我认为引入了新的哈希文字语法的时候),所以没有任何借口!

谢谢.

IntelliJ Ultimate的屏幕截图

Rya*_*yan 8

我如何在Intellij 14.1中解决这个问题:

  1. 文件 - >项目结构
  2. 删除默认为Java的现有模块(不删除实际文件)
  3. 使用绿色+按钮创建一个具有相同名称/位置的新模块,但这次与Ruby on Rails而不是Java(使用正确的SDK)相关联
  4. 文件 - >关闭项目
  5. 重新开放项目.

以前我尝试将项目SDK从默认的Java更改为Ruby,但这并没有解决问题.


Rob*_*ith -9

答案是使用正则表达式将可怕的新哈希语法的所有用法替换为旧哈希语法(尚不完美,但在大约 95% 的情况下有效)。

files=gfind . -iregex '.*\(rb\|haml\)' -printf '%p\n' for file in $files do gsed -i "s/([a-z_]+):{1}\s+(('\|"'"'")\?[-a-zA-Z0-9{}:@]+('\|"'"'")\?)/:\1 => \2/g" $file done