请教一下各位关于 company 忽略大小写以及符号识别的问题


#1

想在 ahk-mode 中忽略大小写自动补全,查了下貌似是用 completion-ignore-case 来设置,但是我又查了下 ahk-mode.el ,里面已经写了 (completion-ignore-case t) ,而且我在 ahk-mode 下查询这个变量也确实是 t,所以我是找错了变量吗?应该用哪个变量修改?

另外就是符号的问题,ahk语言中经常会在变量两边加上 %,但 company 中并没有把 % 识别成特殊符号。比如有一个变量是 foo,如果我输入 %fo 的话,是不会显示自动补全的。


#2

关于第一个大小写的问题

在弹出补全的时候,你应该看看是哪一个backend在补全(看modeline即可)

在我的电脑上是company-capf ,修改 completion-ignore-case是有效的


#3

@ zhouchongzxc 我看了下,在 AHK 中是 company-<dabbrev-code>, init.el 中是 capf,但是然后应该怎么修改啊 :cry:


#4

保证capf在dabbrev-code前面,比如我的company-backends

(company-capf company-files company-css
              (company-dabbrev-code company-gtags company-etags company-keywords)
              company-dabbrev)

前面的组有任何结果则不会用后面的一个/一组。company-css company-clang之类可以放心地加,在应用时会判断当前major-mode。


company补全是以word为单位(而非symbol),这个由当前buffer的major-mode的syntax-table决定,所以:(modify-syntax-entry ?% "w" ahk-mode-syntax-table)