【已解决】*.inc文件无法按照SourceInsight中的PHP语法进行高亮
【问题背景】
用SourceInsight,装了PHP语法高亮插件之后,在Document Type中设置文件为*.php后,对应的php文件,都可以进行语法高亮了,但是,突然发现,Drupal中的很多*.inc文件,也是Php文件,所以去Document Type所对应的File Filter中,加上inc,变为*.php;*.inc,但是设置好之后,*.inc的文件,还是无法像PHP文件一样实现对应的语法高亮,如下:
正常Php语法高亮的效果:
*.inc文件显示出来的效果:
【解决过程】
自己无论如何折腾,最后都还是没搞定。
后来无意间在Options -> Preferences -> Syntax Formatting -> Doc Types -> Document Type中,选择到了 x86 Asm Source File,其所对应的文件类型File Filter是*.asm;*.inc,其中包含了*.inc文件了,而自己新加的PHP文件类型是在x86 Asm Source File之后的,所以,对于PHP文件类型*.php;*.inc中设置的*.inc,就被忽略了,所以显示出来的效果,其实就只是x86 Asm Source File语法高亮的效果。
知道原因,解决办法就很简单了,就是删除掉之前的那个后缀。
即,去把x86 Asm Source File中的*.inc删除掉,即可保证*.inc是PHP类型的文件,就可以正确实现PHP的语法高亮了。
*inc类型文件正确被PHP语法高亮的显示的效果如下:
【总结】
关于不同类型文件中,包含同样的文件后缀,SourceInsight对此没有任何提示,对此点,应该也算是一个bug了。
因此才造成语法高亮显示不正常,但是却也找不到原因。幸好是无意间发现,否则永远也不知道原因。
遇到此类冲突,最好的做法是,应该给予用户提示,问其是否需要修改,否则后续添加的文件类型中,后缀名和之前有重复,那么此类文件还是会使用之前的语法高亮的。