From 682f15117679920d2b4bd45ae4e6bb93c3170397 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 1 Sep 2024 16:47:21 -0400 Subject: [PATCH] feat(vc): integrate smerge-mode Activates smerge-mode if the file contains merge conflict markers. Also turns binds the localleader to `smerge-mode-map` when it's active. Also removes an unused leader binding (which will never be set because :ui hydra was removed in b08c2c7). Amend: b08c2c745fd2 Close: #5954 --- modules/config/default/+evil-bindings.el | 2 -- modules/emacs/vc/config.el | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index 3bd46abca..7613a0a2a 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -510,8 +510,6 @@ :desc "Copy link to remote" "y" #'+vc/browse-at-remote-kill :desc "Copy link to homepage" "Y" #'+vc/browse-at-remote-kill-homepage :desc "Git time machine" "t" #'git-timemachine-toggle - (:when (modulep! :ui hydra) - :desc "SMerge" "m" #'+vc/smerge-hydra/body) (:when (modulep! :ui vc-gutter) :desc "Revert hunk at point" "r" #'+vc-gutter/revert-hunk :desc "stage hunk at point" "s" #'+vc-gutter/stage-hunk diff --git a/modules/emacs/vc/config.el b/modules/emacs/vc/config.el index dd2f47c7c..e8adb46dd 100644 --- a/modules/emacs/vc/config.el +++ b/modules/emacs/vc/config.el @@ -45,6 +45,20 @@ (set-evil-initial-state! 'vc-dir-mode 'emacs)) +(use-package! smerge-mode + :defer t + :init + (add-hook! 'find-file-hook + (defun +vc-init-smerge-mode-h () + (unless (bound-and-true-p smerge-mode) + (save-excursion + (goto-char (point-min)) + (when (re-search-forward "^<<<<<<< " nil t) + (smerge-mode 1)))))) + :config + (define-key smerge-mode-map (kbd doom-localleader-key) smerge-basic-map)) + + (after! git-timemachine ;; Sometimes I forget `git-timemachine' is enabled in a buffer, so instead of ;; showing revision details in the minibuffer, show them in