RubyMine ( IntelliJ 通用 ) 編輯 Slim + Vue.js 遇到文件無法打開的坑

一. 狀況說明

使用的環境是 Rails + Vue.js.
前端用的是 Slim + CoffeeScript + Sass
(確實比較小衆啊, 公司用的環境沒辦法).
IDE 用的 IntelliJRubyMine
偶爾會發生.slim文件寫着寫着就崩潰, 現象是**文件無法錄入任何字符,
有時文件內部不對鍵盤做出任何反應, 上下移動光標都不可以.
在重啓RubyMine後, 出問題的文件無論如何也打不開.**

二. 找原因

第一次發生這種現象的時候不知道怎麼折騰着就又好了, 所以就沒深究, 但第三次就有點惱人了.
在重啓/清內存/清緩存 不好使之後開始針對各種plugin 進行排查,
總算找到鬧事的傢伙:
Ruby Slim Support Integration

問題的來源是找到了, 但是原因呢?

Ruby Slim Support Integration這個插件是用來分析Slim的語法的.
可能是代碼中哪個Slim語法它分析不出來, 導致運行時錯誤.
抱着這個可能性, 用逐行刪除代碼的方式排查了一上午, 終於被我找到一句:

#'[]' 用來包裹多個屬性, 用於在元素屬性過多的時候折行, 提高代碼可讀性
img.feed_img.feed_thumb [:id="feed.id" 
    :
    :large="feed.nodes[0][2]" 
    v-lazy="feed.thumbs[4]" 
    v-if="feed.error == 0"]

代碼裏[]用來包裹多個屬性.
問題出在, 在[ 開始後的第一個新行裏由冒號:開始時, 插件會無法分析語義.
這裏我是準備輸入Vue的 bind語法途中程序崩潰的.

三.解決方法 / 總結

解決方法就是小心不要在[下一行用:起頭兒.
或者儘量不使用屬性包裹[]
當然也不排除插件還有其他語義分析問題, 如果擔心這種情況再次發生, 也可以索性吧插件關掉.
Preference => Plugin裏關掉 Ruby Slim Support Integration 後面的對號:

clipboard.png

以上!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章