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
|
||||
#+begin_src emacs-lisp
|
||||
(setq gc-cons-threshold most-positive-fixnum)
|
||||
(add-hook 'emacs-startup-hook
|
||||
(lambda ()
|
||||
(setq gc-cons-threshold (* 50 1024 1024))))
|
||||
(add-hook
|
||||
'emacs-startup-hook
|
||||
(lambda () (setq gc-cons-threshold (* 50 1024 1024))))
|
||||
|
||||
(setq backup-directory-alist '(("." . "~/.config/emacs/backups")))
|
||||
(setq auto-save-file-name-transforms '((".*" "~/.config/emacs/auto-save-list/" t)))
|
||||
(setq delete-old-versions t
|
||||
(setq auto-save-file-name-transforms
|
||||
'((".*" "~/.config/emacs/auto-save-list/" t)))
|
||||
(setq
|
||||
delete-old-versions t
|
||||
kept-new-versions 6
|
||||
kept-old-versions 2
|
||||
version-control t)
|
||||
|
||||
(setq undo-limit (* 8 1024 1024))
|
||||
(save-place-mode 1)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: t
|
||||
|
||||
** Declutter user interface
|
||||
#+begin_src emacs-lisp
|
||||
(menu-bar-mode -1)
|
||||
(tool-bar-mode -1)
|
||||
(scroll-bar-mode -1)
|
||||
(setq warning-minimum-level :error)
|
||||
#+end_src
|
||||
|
||||
** Tweak appearance
|
||||
|
|
@ -45,11 +54,13 @@
|
|||
help-window-select t
|
||||
use-short-answers t)
|
||||
|
||||
(dolist (mode '(term-mode-hook
|
||||
(dolist (mode
|
||||
'(term-mode-hook
|
||||
shell-mode-hook
|
||||
treemacs-mode-hook
|
||||
eshell-mode-hook
|
||||
help-mode-hook
|
||||
neotree-mode-hook
|
||||
vterm-mode-hook))
|
||||
(add-hook mode (lambda () (display-line-numbers-mode 0))))
|
||||
#+end_src
|
||||
|
|
@ -104,19 +115,21 @@
|
|||
* EDITING & MODAL INPUT
|
||||
** Meow modal editing
|
||||
#+begin_src emacs-lisp
|
||||
(use-package meow
|
||||
(use-package
|
||||
meow
|
||||
:ensure t
|
||||
:preface
|
||||
(defun meow-word ()
|
||||
"Expand word/symbol under cursor."
|
||||
(interactive)
|
||||
(if (and (use-region-p)
|
||||
(equal (car (region-bounds))
|
||||
(bounds-of-thing-at-point 'word)))
|
||||
(equal
|
||||
(car (region-bounds)) (bounds-of-thing-at-point 'word)))
|
||||
(meow-mark-symbol 1)
|
||||
(progn
|
||||
(when (and (mark)
|
||||
(equal (car (region-bounds))
|
||||
(equal
|
||||
(car (region-bounds))
|
||||
(bounds-of-thing-at-point 'symbol)))
|
||||
(meow-pop-selection))
|
||||
(meow-mark-word 1))))
|
||||
|
|
@ -131,8 +144,7 @@
|
|||
"Kill till end of line and switch to INSERT state."
|
||||
(interactive)
|
||||
(meow--cancel-selection)
|
||||
(meow-end-of-thing
|
||||
(car (rassoc 'line meow-char-thing-table)))
|
||||
(meow-end-of-thing (car (rassoc 'line meow-char-thing-table)))
|
||||
(meow-change))
|
||||
|
||||
(defun meow-save-clipboard ()
|
||||
|
|
@ -200,11 +212,10 @@
|
|||
(defun meow-ergo-setup ()
|
||||
(setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty)
|
||||
(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
|
||||
'("l" . meow-next)
|
||||
'("j" . meow-prev)
|
||||
'("<escape>" . ignore))
|
||||
'("l" . meow-next) '("j" . meow-prev) '("<escape>" . ignore))
|
||||
(meow-leader-define-key
|
||||
'("1" . meow-digit-argument)
|
||||
'("2" . meow-digit-argument)
|
||||
|
|
@ -219,9 +230,8 @@
|
|||
'("/" . meow-keypad-describe-key)
|
||||
'("?" . meow-cheatsheet))
|
||||
|
||||
(meow-thing-register 'angle
|
||||
'(pair ("<") (">"))
|
||||
'(pair ("<") (">")))
|
||||
(meow-thing-register
|
||||
'angle '(pair ("<") (">")) '(pair ("<") (">")))
|
||||
|
||||
(setq meow-char-thing-table
|
||||
'((?f . round)
|
||||
|
|
@ -328,9 +338,7 @@
|
|||
|
||||
'("<escape>" . ignore)))
|
||||
|
||||
:config
|
||||
(meow-ergo-setup)
|
||||
(meow-global-mode 1))
|
||||
:config (meow-ergo-setup) (meow-global-mode 1))
|
||||
#+end_src
|
||||
|
||||
** Formatter
|
||||
|
|
@ -342,6 +350,9 @@
|
|||
"Auto-format whole buffer."
|
||||
(interactive)
|
||||
(cond
|
||||
((and (bound-and-true-p eglot--managed-mode)
|
||||
(eglot-managed-p))
|
||||
(eglot-format-buffer))
|
||||
((derived-mode-p 'prolog-mode)
|
||||
(prolog-indent-buffer))
|
||||
((derived-mode-p 'emacs-lisp-mode)
|
||||
|
|
@ -355,6 +366,9 @@
|
|||
(add-hook 'prog-mode-hook #'format-all-ensure-formatter))
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: [nil 26871 47188 711924 nil elpaca-process-queues nil nil 283000 nil]
|
||||
|
||||
* PROGRAMMING FEATURES
|
||||
** Syntax highlighting
|
||||
#+begin_src emacs-lisp
|
||||
|
|
@ -367,94 +381,239 @@
|
|||
(global-treesit-auto-mode))
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: [nil 26870 64740 146030 nil elpaca-process-queues nil nil 133000 nil]
|
||||
|
||||
** LSP
|
||||
#+begin_src emacs-lisp
|
||||
(use-package lsp-mode
|
||||
:ensure t
|
||||
:hook
|
||||
(prog-mode . lsp-deferred)
|
||||
(lsp-mode . lsp-enable-which-key-integration)
|
||||
:commands (lsp lsp-deferred)
|
||||
:init
|
||||
(setq lsp-keymap-prefix "C-c l")
|
||||
:custom
|
||||
(lsp-idle-delay 0.500)
|
||||
(lsp-log-io nil)
|
||||
(lsp-completion-provider :none)
|
||||
(lsp-headerline-breadcrumb-enable nil))
|
||||
;; (use-package
|
||||
;; lsp-mode
|
||||
;; :ensure t
|
||||
;; :hook
|
||||
;; (prog-mode . lsp-deferred)
|
||||
;; (lsp-mode . lsp-enable-which-key-integration)
|
||||
;; :commands (lsp lsp-deferred)
|
||||
;; :init (setq lsp-keymap-prefix "C-c l")
|
||||
;; :custom
|
||||
;; (lsp-completion-provider :none)
|
||||
;; (lsp-headerline-breadcrumb-enable nil))
|
||||
|
||||
(use-package flycheck
|
||||
:ensure t
|
||||
(use-package eglot
|
||||
: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
|
||||
(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
|
||||
|
||||
#+RESULTS:
|
||||
: [nil 26873 7819 534617 nil elpaca-process-queues nil nil 890000 nil]
|
||||
qq
|
||||
: #[128 "\304\300\"\205 | ||||