dev: adding chezmoi module from pr6633
This commit is contained in:
parent
4cf23e4327
commit
a94da3866f
4 changed files with 124 additions and 0 deletions
46
modules/tools/chezmoi/config.el
Normal file
46
modules/tools/chezmoi/config.el
Normal file
|
@ -0,0 +1,46 @@
|
|||
;;; tools/chezmoi/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(use-package! chezmoi
|
||||
:commands (chezmoi-write
|
||||
chezmoi-magit-status
|
||||
chezmoi-diff
|
||||
chezmoi-ediff
|
||||
chezmoi-find
|
||||
chezmoi-write-files
|
||||
chezmoi-open-other
|
||||
chezmoi-template-buffer-display
|
||||
chezmoi-mode)
|
||||
:config
|
||||
;; Company integration
|
||||
(when (featurep! :completion company)
|
||||
(defun +chezmoi--company-backend-h ()
|
||||
(require 'chezmoi-company)
|
||||
(if chezmoi-mode
|
||||
(add-to-list 'company-backends 'chezmoi-company-backend)
|
||||
(delete 'chezmoi-company-backend 'company-backends)))
|
||||
|
||||
(add-hook 'chezmoi-mode-hook #'+chezmoi--company-backend-h))
|
||||
|
||||
;; Integrate with evil mode by toggling template display when entering insert mode.
|
||||
(when (featurep! :editor evil)
|
||||
(defun +chezmoi--evil-insert-state-enter-h ()
|
||||
"Run after evil-insert-state-entry."
|
||||
(chezmoi-template-buffer-display nil (point))
|
||||
(remove-hook 'after-change-functions #'chezmoi-template--after-change 1))
|
||||
|
||||
(defun +chezmoi--evil-insert-state-exit-h ()
|
||||
"Run after evil-insert-state-exit."
|
||||
(chezmoi-template-buffer-display nil)
|
||||
(chezmoi-template-buffer-display t)
|
||||
(add-hook 'after-change-functions #'chezmoi-template--after-change nil 1))
|
||||
|
||||
(defun +chezmoi--evil-h ()
|
||||
(if chezmoi-mode
|
||||
(progn
|
||||
(add-hook 'evil-insert-state-entry-hook #'+chezmoi--evil-insert-state-enter-h nil 1)
|
||||
(add-hook 'evil-insert-state-exit-hook #'+chezmoi--evil-insert-state-exit-h nil 1))
|
||||
(progn
|
||||
(remove-hook 'evil-insert-state-entry-hook #'+chezmoi--evil-insert-state-enter-h 1)
|
||||
(remove-hook 'evil-insert-state-exit-hook #'+chezmoi--evil-insert-state-exit-h 1))))
|
||||
|
||||
(add-hook 'chezmoi-mode-hook #'+chezmoi--evil-h)))
|
Loading…
Add table
Add a link
Reference in a new issue