请教有什么包能支持imenu按类型过滤

consult-buffer 那种按类型过滤的方式非常好用,有时候在C++头文件里头,我希望快速的过滤出成员变量和成员函数,比如我打v,空格,就只出现成员变量,我打f,空格,就只出现函数. 其实这个如果代码写的规范,在成员变量前加个前缀也是可以快速过滤的,耐何你见到的所有代码不一定都会遵守。想问问目前有没什么包已经支持这一特性啦

consult-imenu 就可以,例子:

(add-to-list 'consult-imenu-config '(python-mode :types
                                                     ((?c "Class"    font-lock-type-face)
                                                      (?C "Constant"    font-lock-constant-face)
                                                      (?f "Function"  font-lock-function-name-face)
                                                      (?m "Method"  font-lock-function-name-face)
                                                      (?v "Variable"  font-lock-variable-name-face))))

注意,eglot 需要回退到旧版(<1.15),或把 eglot-imenu 改成旧版的实现。

3 个赞

好的,非常感谢。但我的consult-imenu不能支持,而且有时候c++头文件扫描出的结果就是一个class,没有详细的字段。还有就是为啥consult又会依赖eglot-imenu呢,我没装eglot一样能用consult的。也可能是我配置多了乱了,我自己再研究下

和 eglot 没关系,只是新版 eglot 的 eglot-imenu 不能用这种方式过滤