From bdee28609a9f33aa24a64ba5334e5249c20b29d7 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 27 May 2018 12:40:13 +0200 Subject: [PATCH] New emacs/ediff module Ediff config was moved out of core. Also includes evil compatibility (mvoed out of feature/evil) & wconf save/restore. --- core/core-editor.el | 5 ----- init.example.el | 1 + modules/emacs/ediff/config.el | 25 +++++++++++++++++++++++++ modules/emacs/ediff/packages.el | 5 +++++ modules/feature/evil/config.el | 4 ---- 5 files changed, 31 insertions(+), 9 deletions(-) create mode 100644 modules/emacs/ediff/config.el create mode 100644 modules/emacs/ediff/packages.el diff --git a/core/core-editor.el b/core/core-editor.el index cbbe3d437..48a84c842 100644 --- a/core/core-editor.el +++ b/core/core-editor.el @@ -45,11 +45,6 @@ successfully sets indent_style/indent_size.") truncate-lines t truncate-partial-width-windows 50) -;; ediff -(setq ediff-diff-options "-w" - ediff-split-window-function #'split-window-horizontally - ediff-window-setup-function #'ediff-setup-windows-plain) - (defun doom|check-large-file () "Check if the buffer's file is large (see `doom-large-file-size'). If so, ask for confirmation to open it literally (read-only, disabled undo and in diff --git a/init.example.el b/init.example.el index 638622f33..767ea199d 100644 --- a/init.example.el +++ b/init.example.el @@ -44,6 +44,7 @@ :emacs dired ; making dired pretty [functional] + ediff ; comparing files in Emacs electric-indent ; smarter, keyword-based electric-indent eshell ; a consistent, cross-platform shell (WIP) imenu ; an imenu sidebar and searchable code index diff --git a/modules/emacs/ediff/config.el b/modules/emacs/ediff/config.el new file mode 100644 index 000000000..9a9cea372 --- /dev/null +++ b/modules/emacs/ediff/config.el @@ -0,0 +1,25 @@ +;;; emacs/ediff/config.el -*- lexical-binding: t; -*- + +;; `ediff' +(setq ediff-diff-options "-w" ; turn off whitespace checking + ediff-split-window-function #'split-window-horizontally + ediff-window-setup-function #'ediff-setup-windows-plain) + +;; Restore window config after quitting ediff +(defvar +ediff--saved-wconf nil) + +(defun +ediff|save-wconf () + (setq +ediff--saved-wconf (current-window-configuration))) +(defun +ediff|restore-wconf () + (set-window-configuration +ediff--saved-wconf)) +(add-hook 'ediff-before-setup-hook #'+ediff|save-wconf) +(add-hook! '(ediff-quit-hook ediff-suspend-hook) #'+ediff|restore-wconf 'append) + + +;; +;; Plugins +;; + +(def-package! evil-ediff + :when (featurep! :feature evil) + :after ediff) diff --git a/modules/emacs/ediff/packages.el b/modules/emacs/ediff/packages.el new file mode 100644 index 000000000..6b06cb319 --- /dev/null +++ b/modules/emacs/ediff/packages.el @@ -0,0 +1,5 @@ +;; -*- no-byte-compile: t; -*- +;;; emacs/ediff/packages.el + +(when (featurep! :feature evil) + (package! evil-ediff)) diff --git a/modules/feature/evil/config.el b/modules/feature/evil/config.el index 3c56d402f..e8215ce34 100644 --- a/modules/feature/evil/config.el +++ b/modules/feature/evil/config.el @@ -155,10 +155,6 @@ :commands (evilem-create evilem-default-keybindings)) -(def-package! evil-ediff - :after ediff) - - (def-package! evil-embrace :after evil-surround :commands (embrace-add-pair embrace-add-pair-regexp)