meowing
This commit is contained in:
parent
fdd1f91482
commit
709f48fca0
3 changed files with 402 additions and 149 deletions
|
|
@ -7,23 +7,32 @@
|
||||||
** Generic optimizations
|
** Generic optimizations
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(setq gc-cons-threshold most-positive-fixnum)
|
(setq gc-cons-threshold most-positive-fixnum)
|
||||||
(add-hook 'emacs-startup-hook
|
(add-hook
|
||||||
(lambda ()
|
'emacs-startup-hook
|
||||||
(setq gc-cons-threshold (* 50 1024 1024))))
|
(lambda () (setq gc-cons-threshold (* 50 1024 1024))))
|
||||||
|
|
||||||
(setq backup-directory-alist '(("." . "~/.config/emacs/backups")))
|
(setq backup-directory-alist '(("." . "~/.config/emacs/backups")))
|
||||||
(setq auto-save-file-name-transforms '((".*" "~/.config/emacs/auto-save-list/" t)))
|
(setq auto-save-file-name-transforms
|
||||||
(setq delete-old-versions t
|
'((".*" "~/.config/emacs/auto-save-list/" t)))
|
||||||
|
(setq
|
||||||
|
delete-old-versions t
|
||||||
kept-new-versions 6
|
kept-new-versions 6
|
||||||
kept-old-versions 2
|
kept-old-versions 2
|
||||||
version-control t)
|
version-control t)
|
||||||
|
|
||||||
|
(setq undo-limit (* 8 1024 1024))
|
||||||
|
(save-place-mode 1)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
: t
|
||||||
|
|
||||||
** Declutter user interface
|
** Declutter user interface
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(menu-bar-mode -1)
|
(menu-bar-mode -1)
|
||||||
(tool-bar-mode -1)
|
(tool-bar-mode -1)
|
||||||
(scroll-bar-mode -1)
|
(scroll-bar-mode -1)
|
||||||
|
(setq warning-minimum-level :error)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Tweak appearance
|
** Tweak appearance
|
||||||
|
|
@ -45,11 +54,13 @@
|
||||||
help-window-select t
|
help-window-select t
|
||||||
use-short-answers t)
|
use-short-answers t)
|
||||||
|
|
||||||
(dolist (mode '(term-mode-hook
|
(dolist (mode
|
||||||
|
'(term-mode-hook
|
||||||
shell-mode-hook
|
shell-mode-hook
|
||||||
treemacs-mode-hook
|
treemacs-mode-hook
|
||||||
eshell-mode-hook
|
eshell-mode-hook
|
||||||
help-mode-hook
|
help-mode-hook
|
||||||
|
neotree-mode-hook
|
||||||
vterm-mode-hook))
|
vterm-mode-hook))
|
||||||
(add-hook mode (lambda () (display-line-numbers-mode 0))))
|
(add-hook mode (lambda () (display-line-numbers-mode 0))))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
@ -104,19 +115,21 @@
|
||||||
* EDITING & MODAL INPUT
|
* EDITING & MODAL INPUT
|
||||||
** Meow modal editing
|
** Meow modal editing
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package meow
|
(use-package
|
||||||
|
meow
|
||||||
:ensure t
|
:ensure t
|
||||||
:preface
|
:preface
|
||||||
(defun meow-word ()
|
(defun meow-word ()
|
||||||
"Expand word/symbol under cursor."
|
"Expand word/symbol under cursor."
|
||||||
(interactive)
|
(interactive)
|
||||||
(if (and (use-region-p)
|
(if (and (use-region-p)
|
||||||
(equal (car (region-bounds))
|
(equal
|
||||||
(bounds-of-thing-at-point 'word)))
|
(car (region-bounds)) (bounds-of-thing-at-point 'word)))
|
||||||
(meow-mark-symbol 1)
|
(meow-mark-symbol 1)
|
||||||
(progn
|
(progn
|
||||||
(when (and (mark)
|
(when (and (mark)
|
||||||
(equal (car (region-bounds))
|
(equal
|
||||||
|
(car (region-bounds))
|
||||||
(bounds-of-thing-at-point 'symbol)))
|
(bounds-of-thing-at-point 'symbol)))
|
||||||
(meow-pop-selection))
|
(meow-pop-selection))
|
||||||
(meow-mark-word 1))))
|
(meow-mark-word 1))))
|
||||||
|
|
@ -131,8 +144,7 @@
|
||||||
"Kill till end of line and switch to INSERT state."
|
"Kill till end of line and switch to INSERT state."
|
||||||
(interactive)
|
(interactive)
|
||||||
(meow--cancel-selection)
|
(meow--cancel-selection)
|
||||||
(meow-end-of-thing
|
(meow-end-of-thing (car (rassoc 'line meow-char-thing-table)))
|
||||||
(car (rassoc 'line meow-char-thing-table)))
|
|
||||||
(meow-change))
|
(meow-change))
|
||||||
|
|
||||||
(defun meow-save-clipboard ()
|
(defun meow-save-clipboard ()
|
||||||
|
|
@ -200,11 +212,10 @@
|
||||||
(defun meow-ergo-setup ()
|
(defun meow-ergo-setup ()
|
||||||
(setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty)
|
(setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty)
|
||||||
(setq meow-normal-state-keymap (make-sparse-keymap))
|
(setq meow-normal-state-keymap (make-sparse-keymap))
|
||||||
(setf (alist-get 'normal meow-keymap-alist) meow-normal-state-keymap)
|
(setf (alist-get 'normal meow-keymap-alist)
|
||||||
|
meow-normal-state-keymap)
|
||||||
(meow-motion-define-key
|
(meow-motion-define-key
|
||||||
'("l" . meow-next)
|
'("l" . meow-next) '("j" . meow-prev) '("<escape>" . ignore))
|
||||||
'("j" . meow-prev)
|
|
||||||
'("<escape>" . ignore))
|
|
||||||
(meow-leader-define-key
|
(meow-leader-define-key
|
||||||
'("1" . meow-digit-argument)
|
'("1" . meow-digit-argument)
|
||||||
'("2" . meow-digit-argument)
|
'("2" . meow-digit-argument)
|
||||||
|
|
@ -219,9 +230,8 @@
|
||||||
'("/" . meow-keypad-describe-key)
|
'("/" . meow-keypad-describe-key)
|
||||||
'("?" . meow-cheatsheet))
|
'("?" . meow-cheatsheet))
|
||||||
|
|
||||||
(meow-thing-register 'angle
|
(meow-thing-register
|
||||||
'(pair ("<") (">"))
|
'angle '(pair ("<") (">")) '(pair ("<") (">")))
|
||||||
'(pair ("<") (">")))
|
|
||||||
|
|
||||||
(setq meow-char-thing-table
|
(setq meow-char-thing-table
|
||||||
'((?f . round)
|
'((?f . round)
|
||||||
|
|
@ -328,9 +338,7 @@
|
||||||
|
|
||||||
'("<escape>" . ignore)))
|
'("<escape>" . ignore)))
|
||||||
|
|
||||||
:config
|
:config (meow-ergo-setup) (meow-global-mode 1))
|
||||||
(meow-ergo-setup)
|
|
||||||
(meow-global-mode 1))
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Formatter
|
** Formatter
|
||||||
|
|
@ -342,6 +350,9 @@
|
||||||
"Auto-format whole buffer."
|
"Auto-format whole buffer."
|
||||||
(interactive)
|
(interactive)
|
||||||
(cond
|
(cond
|
||||||
|
((and (bound-and-true-p eglot--managed-mode)
|
||||||
|
(eglot-managed-p))
|
||||||
|
(eglot-format-buffer))
|
||||||
((derived-mode-p 'prolog-mode)
|
((derived-mode-p 'prolog-mode)
|
||||||
(prolog-indent-buffer))
|
(prolog-indent-buffer))
|
||||||
((derived-mode-p 'emacs-lisp-mode)
|
((derived-mode-p 'emacs-lisp-mode)
|
||||||
|
|
@ -355,6 +366,9 @@
|
||||||
(add-hook 'prog-mode-hook #'format-all-ensure-formatter))
|
(add-hook 'prog-mode-hook #'format-all-ensure-formatter))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
: [nil 26871 47188 711924 nil elpaca-process-queues nil nil 283000 nil]
|
||||||
|
|
||||||
* PROGRAMMING FEATURES
|
* PROGRAMMING FEATURES
|
||||||
** Syntax highlighting
|
** Syntax highlighting
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
|
@ -367,94 +381,239 @@
|
||||||
(global-treesit-auto-mode))
|
(global-treesit-auto-mode))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
: [nil 26870 64740 146030 nil elpaca-process-queues nil nil 133000 nil]
|
||||||
|
|
||||||
** LSP
|
** LSP
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package lsp-mode
|
;; (use-package
|
||||||
:ensure t
|
;; lsp-mode
|
||||||
:hook
|
;; :ensure t
|
||||||
(prog-mode . lsp-deferred)
|
;; :hook
|
||||||
(lsp-mode . lsp-enable-which-key-integration)
|
;; (prog-mode . lsp-deferred)
|
||||||
:commands (lsp lsp-deferred)
|
;; (lsp-mode . lsp-enable-which-key-integration)
|
||||||
:init
|
;; :commands (lsp lsp-deferred)
|
||||||
(setq lsp-keymap-prefix "C-c l")
|
;; :init (setq lsp-keymap-prefix "C-c l")
|
||||||
:custom
|
;; :custom
|
||||||
(lsp-idle-delay 0.500)
|
;; (lsp-completion-provider :none)
|
||||||
(lsp-log-io nil)
|
;; (lsp-headerline-breadcrumb-enable nil))
|
||||||
(lsp-completion-provider :none)
|
|
||||||
(lsp-headerline-breadcrumb-enable nil))
|
|
||||||
|
|
||||||
(use-package flycheck
|
(use-package eglot
|
||||||
:ensure t
|
:hook
|
||||||
|
(prog-mode . eglot-ensure)
|
||||||
|
:custom
|
||||||
|
(eglot-events-buffer-size 0)
|
||||||
|
(eglot-sync-connect t)
|
||||||
|
(eglot-autoshutdown t)
|
||||||
|
(eglot-report-progress t)
|
||||||
|
:bind (:map eglot-mode-map
|
||||||
|
("C-c l r" . eglot-rename)
|
||||||
|
("C-c l a" . eglot-code-actions)
|
||||||
|
("C-c l f" . eglot-format)
|
||||||
|
("C-c l F" . eglot-format-buffer)
|
||||||
|
("C-c l d" . xref-find-definitions)
|
||||||
|
("C-c l R" . xref-find-references)
|
||||||
|
("C-c l h" . eldoc))
|
||||||
:config
|
:config
|
||||||
(global-flycheck-mode +1))
|
(add-to-list 'eglot-server-programs
|
||||||
|
'((js-mode typescript-mode tsx-ts-mode typescript-ts-mode js-ts-mode)
|
||||||
|
. ("deno" "lsp" :initializationOptions
|
||||||
|
(:enable t
|
||||||
|
:lint t
|
||||||
|
:unstable t
|
||||||
|
:config nil)))))
|
||||||
|
|
||||||
|
(use-package
|
||||||
|
sideline
|
||||||
|
:ensure t
|
||||||
|
:hook (flymake-mode . sideline-mode)
|
||||||
|
:init (setq sideline-backends-right '(sideline-flymake)))
|
||||||
|
|
||||||
|
(use-package
|
||||||
|
sideline-flymake
|
||||||
|
:ensure t
|
||||||
|
:after sideline
|
||||||
|
:hook (flymake-mode . sideline-flymake-setup))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
: [nil 26873 7819 534617 nil elpaca-process-queues nil nil 890000 nil]
|
||||||
|
qq
|
||||||
|
: #[128 "\304\300\"\205 | ||||||