貌似spacemacs theme高亮无法和gtags这种数据库数据联动

spacemacs

#1

如题; 简单来说就是c/c++函数无法被高亮,如图:

只有一些关键字,或者函数定义,变量定义的时候可以高亮;但是函数体内调用的别的函数,都可以正常跳转,但只能现实白色;有大神有办法吗?很迷惑啊。。


#2

一般都是这样的啊,要不然就全是颜色了。

想要这个功能可以看看hilight symbol相关的包,论坛里有讨论这个的帖子。


#3

gnu有个cflow,功能是显示函数的调用关系

结合cflow倒是可以考虑

gtags的数据有点大,让elisp处理会很耗时的

好像还有专门实现语法高亮的软件,只是不知道精细到哪种粒度


#4

哈哈,有时候代码逻辑就大片又没有高亮


#5

如果gtags是global的话,有一个sqlite的选项,可以生成sqlite的数据库

这样就能更灵活的控制变量或是函数的显示颜色了,你只需要通关附加表的方式记录颜色信息就可以了。


#6

@zhouchongzxc 你好,请问“通过附加表的方式 ”是什么意思,具体怎么操作有指南吗? 感谢!


#7

感觉老兄你总喜欢把简单的问题复杂化。。。


#8

在global的sqlite选项的时候生成的数据库里面新增一个表记录颜色

在emacs里读取记录的颜色值,然后再把颜色显示出来

你需要知道点elisp和sqlite

有个叫二八的原则,知道百分之二十就行了

操作指南嘛? 你的想象力就是了!


#9

show me your code

如果你以为这个问题简单的话


#10

SO?现在还不知道是spacemacs的问题还是gtags的问题呢。你推荐sql了算是负责任的行为?我不能理解

不是我认为这个问题简单,如果只是spacemacs的显示配置出错了呢。那人家折腾的sql算个啥?


在我看来,不如把Gtags的数据用font-lock加上颜色。

Where are yours?


#11

好 等我有时间

我也算有这样的需求

不过我觉得他有点难

但按照我的想法能实现

以后我会贴图上来

好了 该你表态了

你可以放弃的,毕竟你连个想法也没有


#12

如果是写c++的话

这个应该对你有帮助

PS: 另外现在emacs上写c / c++ 最好的体验个人推荐ccls,里面就有提供semantic highlight的功能:

(setq ccls-sem-highlight-method 'font-lock)
;; alternatively, (setq ccls-sem-highlight-method 'overlay)

可以试下


#13

过多的高亮,等于没有高亮。


#14

@twlz0ne 也不是这样说,在公司用惯了source insight还是明显的感觉到有高亮更好


#15

基于cflow和symbol-overlay的

还没有用到gtags中的sqlite功能