一. 状况说明
使用的环境是 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
后面的对号:
以上!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。