43 lines
1.7 KiB
EmacsLisp
43 lines
1.7 KiB
EmacsLisp
;;; funcs.el --- Spacemacs Evil Layer functions File
|
|
;;
|
|
;; Copyright (c) 2012-2016 Sylvain Benner & Contributors
|
|
;;
|
|
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
|
|
;; URL: https://github.com/syl20bnr/spacemacs
|
|
;;
|
|
;; This file is not part of GNU Emacs.
|
|
;;
|
|
;;; License: GPLv3
|
|
|
|
(defvar spacemacs--evil-iedit-insert-states-default nil
|
|
"Default value of the list of additional states enabled in \
|
|
`evil-iedit-insert-state'.")
|
|
|
|
(defvar spacemacs--evil-iedit-insert-states-hybrid nil
|
|
"List of additional states enabled in `evil-iedit-insert-state' when
|
|
`hybrid-mode' is active.")
|
|
|
|
(defun spacemacs//enable-hs-minor-mode ()
|
|
"Enable hs-minor-mode for code folding."
|
|
(ignore-errors
|
|
(hs-minor-mode)
|
|
(spacemacs|hide-lighter hs-minor-mode)))
|
|
|
|
(defun spacemacs//iedit-insert-state-hybrid (style)
|
|
"If STYLE is hybrid, update `evil-iedit-insert-state' definition to enable
|
|
`evil-hybrid-state' instead of `evil-insert-state'.
|
|
Otherwise, revert to the default behavior (i.e. enable `evil-insert-state')."
|
|
;; Populate variables on the first invocation.
|
|
(unless spacemacs--evil-iedit-insert-states-default
|
|
(setq spacemacs--evil-iedit-insert-states-default
|
|
(evil-get-property evil-state-properties 'iedit-insert :enable))
|
|
(setq spacemacs--evil-iedit-insert-states-hybrid
|
|
(mapcar (lambda (item)
|
|
(if (eq item 'insert) 'hybrid item))
|
|
spacemacs--evil-iedit-insert-states-default)))
|
|
(let ((states (if (eq style 'hybrid)
|
|
spacemacs--evil-iedit-insert-states-hybrid
|
|
spacemacs--evil-iedit-insert-states-default)))
|
|
(evil-put-property 'evil-state-properties 'iedit-insert
|
|
:enable states)))
|