RubyMineでSlim+Vue.jsを利用していると開けなくなるファイルの条件が判明した
環境
今の会社になってからRubyMineも会社で購入してくれるのでバリバリ使っているのですが、ジョインした時からいくつかのslimファイルがRubyMineで開けない状態だった。(VSCodeなどでは開ける)
前からいる人もなんでそのファイルたちだけが開けないのか不明で、しかも検索の対象にもならないのでそのあたりの画面を触る時にとても困っていた。
VSCodeに乗り換えるか?という話も出てきだしたが、一度RubyMineの便利さ(特にコードジャンプ)を知るとなかなか他では代替できないと自分は思っている。(VSCodeでslimファイル内でrubyのコードなどにコードジャンプできるようにする方法を知っている人がいたら是非教えて欲しい)
そんな折、ひょんな事から自分がそのRubyMineで開けないファイルを生み出してしまったので、色々試してみるとどうやらSlim内でVue.jsのv-bindの省略記法を書いているものがあると開けなることが分かった。
my-component [ v-for = "item in list" track-by = "uuid" :item = "item" ]
このような書き方がSlim内に含まれると、RubyMineで開けなくなる(ファイルのタブは出るがずっとloading…のままになる)
なので、v-bindを省略記法ではなくちゃんと書けば大丈夫。
my-component [ v-for = "item in list" track-by = "uuid" v-bind:item = "item" ]
今回みたいに属性が3つくらいだと[]をあまり使わないかもしれないが、属性が多くなってくるとこっちの方が見やすくなる。(ちなみにこの書き方は最近まで知らなかった。。。)
省略記法を書けないと不便に感じるかもしれないが、自分は省略記法はRails + Vue.jsでは混乱させると思っているので会社のプロジェクトでは使わないように提言しているのだが、より強く言っていこうと思った。 (:item = itemと書かれたら一瞬RubyのHash?って思いません?あと@clickとか)