恢复IDEA中的Un-inject Language/Reference

 

 

问题描述
在学MyBatis时,在IDEA环境下,Mapper映射文件中有一个地方总是误报: 
 
使用Alt+Enter快捷修复时,出现了这个选项: 
 
按下它即做了快捷修复,此后确实不再误报了,但是带来了更严重的问题。首先这个文件里SQL的语法高亮不见了,其次SQL完全没有语法检查了(也就更没有关键字提示了),一片白的SQL非常容易写错,宁愿误报也不想出现这种状况。

但是因为是使用Alt+Enter快捷修复了,根本不知道到底修改了哪里的配置。找遍了百度,完全没有恢复这个配置的相关资料。

解决
根据这个选项的提示,能够定位设置的位置,一定是在Settings->Editor->Language Injection下面。经过两次重装IDEA配置,发现确实在这里少了一个injection。

使用了快捷修复后,重装配置前: 

重装配置后: 

可以看到下方,快捷修复使得少了一个injection,本来是117个变成了116了。然而非常痛苦的是,这一页面根本没有重置这一选项,我将快捷修复后的该页面截图下来,与正确的117个逐个比较,最终确定是少了这样一个配置: 

一旦做了前面的快捷修复,这个页面将删除该DTD配置(而不是取消勾选),所以如果要恢复,就要点击右上角绿色加号手动配置它: 
 
备份一下这个DTD的URL:

http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd|http://mybatis.org/dtd/mybatis-3-mapper.dtd


花了不少时间,重装了两次配置才搞清楚这个问题,IDEA中的Alt+Enter真的应该慎用。它虽然能快捷修改设置,但却让使用者搞不清楚到底修改了哪里,如果想改回来不知道从何入手,甚至不知道发生了什么改动。

来源https://blog.csdn.net/SHU15121856/article/details/81122006

你可能感兴趣的:(idea)