一. 狀況說明
使用的環境是 Rails + Vue.js
.
前端用的是 Slim + CoffeeScript + Sass
(確實比較小衆啊, 公司用的環境沒辦法).
IDE 用的 IntelliJ
的 RubyMine
偶爾會發生.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
後面的對號:
以上!