From 8a80e2e6645c261d69480beb0c1695164f64cdfb Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Thu, 11 Jun 2020 20:27:25 +0200 Subject: Implement custom related file jumping logic in Emacs Neither projectile nor ff-find-other-file's offering do what I want in a straight forward manner. The former is still added as it is useful for project management (currently mostly regenerating ctags files). --- gui/conf/init.el | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'gui/conf/init.el') diff --git a/gui/conf/init.el b/gui/conf/init.el index c9d2da4..1359f52 100644 --- a/gui/conf/init.el +++ b/gui/conf/init.el @@ -247,3 +247,27 @@ (add-hook 'c-mode-common-hook 'hs-minor-mode t) (add-hook 'c-mode-common-hook 'hs-hide-initial-comment-block t) + +(use-package projectile + :ensure t + :config + (setq projectile-completion-system 'ivy)) + +(defun get-related-files () + (let ((common-basename-files (seq-filter (lambda (file) (string= (file-name-sans-extension file) (file-name-base))) + (directory-files ".")))) + (sort (seq-remove (lambda (file) (string= file (buffer-name))) + common-basename-files) + #'string-greaterp))) + +(defun jump-to-related () + (interactive) + (find-file (ivy-read "related:" (get-related-files)))) + +(defun jump-to-first-related () + (interactive) + (find-file (car (get-related-files)))) + +(evil-define-key 'normal prog-mode-map + (kbd "") 'jump-to-first-related + (kbd "M-r") 'jump-to-related) -- cgit v1.2.3