Citre: 先进的 Ctags 前端

我没有碰到这两个问题。按照我给的设置,选完语言就会直接更新,然后 message 告诉你完成了。

我后面在 develop 分支 force push 了几次,可不可以试下最新的版本?如果还是不行的话,请给一个能复现的 recipe。

Edit 我注意到 Citre 在工程下创建了一个 %TAGSFILE 文件,我修一下这个问题

关于补全的一个问题。补全触发的时候,光标会跳来跳去的,然后才弹出补全列表。

下面这个gif压缩了,但是还是能看出来会跳到407行,而且不止一次。大概看了下代码,像是在citre-get-symbol得到当前symbol的时候触发的这个行为。

citre_small

用最新的 develop 分支没有卡顿的问题,但是会在工程目录下创建一个 %TAGSFILE

那个是写入 ptag 的时候漏了一个百分号 :rofl: 已经修复了,麻烦再试一下

你推送补丁了吗? 为啥我又回到卡的状态了?

:rofl: 推了呀

你这个是 c-mode 吗?用 $ emacs -Q 能复现吗?

邪门了,重新 clone 就好了。

最新版本应该就是我要的效果,感谢添加选项!

麻烦合并到 master 吧,我尝试给你写一个自动更新的功能。

2 个赞

能用就好 :wink: 有时候也可能是 byte-compile 了旧版本之类的问题。

Thanks! 其实我在考虑在 wiki 里写一个,但有一个问题是怎么检测一个 tags 文件正在被 Ctags 写入

gif里是c-mode。我在编辑go文件的时候也出现了。

我用emacs -Q尝试一下,有结果了再回复你。

创建一个 Hash table, 开始写入的时候创建一个值,创建完移除,每次创建的时候都看一下这个 Hash table 有没有对应的值,工程文件的路径作为Key

这样的Hash table做好了,就可以做自动更新功能了:

  1. idle 一段时间就看当前的工程是否已经存在 tags, 存在就更新,不存在就不骚扰用户
  2. 存在 tags 的前提下,看一下 Hash table 是否存在一个正在 update tags 的值
  3. 如果 Hash table 不存在就自动更新一下

这样做基本上用户只用创建一次就可以了,剩下的就可以自动更新 (idle 一段时间基本上用户要不就离开要不就在思考,这段时间足够了),我们只需要用 hash table 保证不要创建很多重复的 update tags 后台进程就可以了。

PS: 我感觉我在论坛专业写伪代码的

1 个赞

对 Citre 的话应该用 tags 文件的路径。

其实用变量来维护锁还是想到了的,只是还是不太想把这个写到 Citre 里面 :rofl: 如果能不用大改的话可以放到 wiki 里

不要挣扎了,自动更新 Tags 肯定是一个好的 feature :grinning:

2 个赞

合并一下 master 分支吧,我更新一下我自己的配置

合了,紫薯布丁

在注释里联合后端不工作的情况解决了,可以来抄一下 wiki

我也把 @yyjjl 写的 company 后端贴上去了(Thanks!)

1 个赞

最新版有错误 Error running timer: (end-of-file "/usr/share/emacs/lazycat/extensions/citre/citre-basic-tools.el")

没有见过。怎样复现?

启动的时候就有了

:rofl: 能不能从 $ emacs -Q 开始复现?我确实没见过这个错误