88 lines
3.5 KiB
EmacsLisp
88 lines
3.5 KiB
EmacsLisp
;; -*- coding: utf-8; lexical-binding: t; -*-
|
|
|
|
(require 'lazy-load)
|
|
|
|
;;; symbol-overlay-map
|
|
;; "i" -> symbol-overlay-put
|
|
;; "n" -> symbol-overlay-jump-next
|
|
;; "p" -> symbol-overlay-jump-prev
|
|
;; "w" -> symbol-overlay-save-symbol
|
|
;; "t" -> symbol-overlay-toggle-in-scope
|
|
;; "e" -> symbol-overlay-echo-mark
|
|
;; "d" -> symbol-overlay-jump-to-definition
|
|
;; "s" -> symbol-overlay-isearch-literally
|
|
;; "q" -> symbol-overlay-query-replace
|
|
;; "r" -> symbol-overlay-rename
|
|
(lazy-load-global-keys
|
|
'(("s-i" . symbol-overlay-put)
|
|
("M-p" . symbol-overlay-jump-prev)
|
|
("M-n" . symbol-overlay-jump-next))
|
|
"symbol-overlay")
|
|
|
|
|
|
(setq backward-delete-char-untabify-method 'hungry)
|
|
|
|
|
|
(with-eval-after-load 'awesome-pair
|
|
;; (define-key awesome-pair-mode-map (kbd "(") 'awesome-pair-open-round)
|
|
;; (define-key awesome-pair-mode-map (kbd "[") 'awesome-pair-open-bracket)
|
|
;; (define-key awesome-pair-mode-map (kbd "{") 'awesome-pair-open-curly)
|
|
(define-key awesome-pair-mode-map (kbd ")") 'awesome-pair-close-round)
|
|
(define-key awesome-pair-mode-map (kbd "]") 'awesome-pair-close-bracket)
|
|
(define-key awesome-pair-mode-map (kbd "}") 'awesome-pair-close-curly)
|
|
;; (define-key awesome-pair-mode-map (kbd "=") 'awesome-pair-equal)
|
|
|
|
(define-key awesome-pair-mode-map (kbd "%") 'awesome-pair-match-paren)
|
|
;; (define-key awesome-pair-mode-map (kbd "\"") 'awesome-pair-double-quote)
|
|
(define-key awesome-pair-mode-map (kbd "SPC") 'awesome-pair-space)
|
|
(define-key awesome-pair-mode-map (kbd "M-o") 'awesome-pair-backward-delete)
|
|
(define-key awesome-pair-mode-map (kbd "C-d") 'awesome-pair-forward-delete)
|
|
(define-key awesome-pair-mode-map (kbd "C-k") 'creature/awesome-pair-kill)
|
|
|
|
(define-key awesome-pair-mode-map (kbd "M-\"") 'awesome-pair-wrap-double-quote)
|
|
(define-key awesome-pair-mode-map (kbd "M-[") 'awesome-pair-wrap-bracket)
|
|
(define-key awesome-pair-mode-map (kbd "M-{") 'awesome-pair-wrap-curly)
|
|
(define-key awesome-pair-mode-map (kbd "M-(") 'awesome-pair-wrap-round)
|
|
(define-key awesome-pair-mode-map (kbd "M-)") 'awesome-pair-unwrap)
|
|
|
|
(define-key awesome-pair-mode-map (kbd "M-N") 'awesome-pair-jump-right)
|
|
(define-key awesome-pair-mode-map (kbd "M-P") 'awesome-pair-jump-left)
|
|
(define-key awesome-pair-mode-map (kbd "M-RET") 'awesome-pair-jump-out-pair-and-newline))
|
|
|
|
(defun creature/awesome-pair-in-template-string-p ()
|
|
(and (awesome-pair-in-string-p)
|
|
(consp (awesome-pair-string-start+end-points))
|
|
|
|
(let* ((pos_cons (awesome-pair-string-start+end-points))
|
|
(start (car pos_cons))
|
|
(end (cdr pos_cons)))
|
|
(and (char-equal ?` (char-after start))
|
|
(char-equal ?` (char-after end))))))
|
|
|
|
(defun creature/awesome-pair-kill-template-string-curly-content ()
|
|
(interactive)
|
|
(save-excursion
|
|
(kill-region (point) (progn (search-forward "}") (1- (point))))))
|
|
|
|
(defun creature/awesome-pair-kill ()
|
|
(interactive)
|
|
(cond ((and (derived-mode-p 'js-mode 'typescript-mode 'web-mode)
|
|
(creature/awesome-pair-in-template-string-p)
|
|
(awesome-pair-in-curly-p))
|
|
(creature/awesome-pair-kill-template-string-curly-content))
|
|
(t
|
|
(funcall-interactively #'awesome-pair-kill))))
|
|
|
|
(defun creature/awesome-pair-setup ()
|
|
(require 'awesome-pair)
|
|
(add-hook 'prog-mode-hook #'awesome-pair-mode)
|
|
(add-hook 'conf-unix-mode-hook #'awesome-pair-mode)
|
|
(add-hook 'conf-windows-mode-hook #'awesome-pair-mode)
|
|
(add-hook 'yaml-mode-hook #'awesome-pair-mode)
|
|
nil)
|
|
|
|
(creature/awesome-pair-setup)
|
|
|
|
|
|
(provide 'init-edit)
|