终于有人(topisani)终于给cquery加树了 https://github.com/cquery-project/emacs-cquery/blob/master/cquery-member-hierarchy.el (elisp不好就只能等别人实现主要功能后自己做些修修补补了T_T)
- caller/callee hierarchy
- member hierarchy
- inheritance hierarchy (base/derived)
member hierarchy还不准确,很多模板展开不了。
关注 Make lsp-ui-imenu hierarchical · Issue #73 · emacs-lsp/lsp-ui · GitHub 吧
我的配置:
(dolist (mode c-c++-modes)
(spacemacs/set-leader-keys-for-major-mode mode
"lb" #'cquery/base
"lc" #'cquery/callers
"ld" #'cquery/derived
"lR" #'cquery-freshen-index
"lv" #'cquery/vars
"l SPC" #'cquery/random
"a" #'cquery/references-address
"r" #'cquery/references-read
"w" #'cquery/references-write
"m" #'cquery-member-hierarchy
;; bases
"i" #'cquery-inheritance-hierarchy
;; derived
"I" (lambda () (interactive) (cquery-inheritance-hierarchy t))
;; callers
"c" #'cquery-call-hierarchy
;; callees
"C" (lambda () (interactive) (cquery-call-hierarchy t))
))
2 个赞
我在windows上使用这个tree功能时,折叠符号显示乱码,想请教如何解决,多谢
我看lisp插件里也是乱码的,是用utf-8-dos打开的
刚刚扩展了 $cquery/memberHierarchyInitial
,可用于函数列出参数和局部变量 Make cquery-member-hierarchy expand 1 level for functions · Issue #20 · cquery-project/emacs-cquery · GitHub
还是最希望有人能把这个捡起来扔到 lsp-ui 里去,然后号召其他语言也实现类似的hierarchy (我向haskell-ide-engine布道多次了。。然而他们现在 references 也没有),等Microsoft lsp会很慢。
今天还是昨天reddit r/emacs有人称赞 sebastiencs GitHub - sebastiencs/sidebar.el: A customizable file explorer with git integration for emacs 了……(最希望他能把这个弄起来,但他用的 rls + lsp-rust 没有 T_T)
感谢您的建议,我装了一个powerline字体,并且在emacs里修改了默认字体后, 还是乱码,求助
@MaskRay 卧槽,你这用的什么鬼字符?我在 macOS 上也显示不出来。如果用了 all-the-icons 至少要在 README 上标出来,不是人人都用这个的。最好给个自定义。
再试试这里的几个字体吧……应该是 GitHub Octicons 吧。
这不是我写的……我只是做些修补让这个东西适应cquery server接口
刚刚模仿了 ivy.el 添加了cquery-tree--calling
cquery-tree-mode
里每个节点对应一个文件和位置
在cquery-tree-mode
窗口里移动时,希望上下移动时自动在other-window里跳转到相应位置
想实现成ivy-call
的效果:
-
cquery-tree-next-line
cquery-tree-prev-line
时在other-window跳转,但不要记录到evil-jumps
-
q后恢复原始位置
- 如果按RET则仿
ivy-occur-press-and-switch
,切换window,并记录evil-jumps
RET时还要用上两个hack:
-
(when (featurep 'evil-jumps) (lsp-ui-peek--with-evil-jumps (evil-set-jump)))
设置cross reference的jump list,用于lsp-ui-peek-jump-{forward,backward}
- 跳转到项目外的文件需要:
(unless lsp--cur-workspace
(setq lsp--cur-workspace current-workspace))
(unless lsp-mode
(lsp-mode 1)
(lsp-on-open))
怎么做呢?emacs-cquery/cquery-tree.el at master · cquery-project/emacs-cquery · GitHub