Company-c-headers 怎么增加项目的头文件路径?

company-c-headers

setq company-c-headers-path-system '("[path]/include/" "[path]/"))

在init.el里面写上述代码能生效,但是这个是所有项目公用的配置。需要每个项目设置不一样的目录,不知道怎么做。

请问有什么方法实现不同项目设置不同的路径

Emacs 有种机制,可以根据目录执行代码或者设置: https://www.gnu.org/software/emacs/manual/html_node/emacs/Directory-Variables.html

((c++-mode . ((eval . (progn                                                          
                        (setq company-c-headers-path-system '("./include/" "./")))))))

写了.dir-locals.el,有一个问题,设置绝对路径生效,相对路径没有。有什么办法获取projiect根路径吗?

已解决,参考stackoverflow

((c++-mode                                                           
  (eval . (let ((root (projectile-project-root)))                 
            (setq-local company-c-headers-path-system                
                        (list root (concat "-I" root "include"))))))) 
1 个赞