From 3fbaf487183e7b7e3785628ab8ed6290ddd94fd7 Mon Sep 17 00:00:00 2001 From: David Morgan Date: Sat, 3 Jul 2021 21:02:12 +0100 Subject: Update emacs prelude config --- emacs-prelude/personal/custom.el | 14 +++++-- emacs-prelude/personal/lisp/init-clojure.el | 18 ++++++--- emacs-prelude/personal/lisp/init-completion.el | 43 +++------------------ emacs-prelude/personal/lisp/init-dashboard.el | 2 +- emacs-prelude/personal/lisp/init-git.el | 15 ++++++++ emacs-prelude/personal/lisp/init-ivy.el | 53 ++++++++++++++++++++++++++ emacs-prelude/personal/lisp/init-lsp.el | 4 +- emacs-prelude/personal/lisp/init-mac.el | 7 ++++ emacs-prelude/personal/lisp/init-misc.el | 14 +++++++ emacs-prelude/personal/lisp/init-modeline.el | 28 +++++++++----- emacs-prelude/personal/lisp/init-prelude.el | 16 +++++++- emacs-prelude/personal/lisp/init-ui.el | 20 +++++++++- emacs-prelude/personal/personal.el | 7 +++- 13 files changed, 178 insertions(+), 63 deletions(-) create mode 100644 emacs-prelude/personal/lisp/init-git.el create mode 100644 emacs-prelude/personal/lisp/init-ivy.el create mode 100644 emacs-prelude/personal/lisp/init-mac.el create mode 100644 emacs-prelude/personal/lisp/init-misc.el diff --git a/emacs-prelude/personal/custom.el b/emacs-prelude/personal/custom.el index 5a298bd..772749a 100644 --- a/emacs-prelude/personal/custom.el +++ b/emacs-prelude/personal/custom.el @@ -3,12 +3,20 @@ ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. - '(org-agenda-files '("~/foo.org")) + '(cider-xref-actions + '(("find-def" . cider--find-var) + ("display-doc" . cider-doc-lookup) + ("lookup-on-clojuredocs" . cider-clojuredocs-lookup))) + '(company-quickhelp-color-background "#4F4F4F") + '(company-quickhelp-color-foreground "#DCDCCC") + '(org-agenda-files nil) '(package-selected-packages - '(hydra helm-projectile counsel-projectile ivy-hydra easy-kill-extras paredit-functions eval-expr lsp clj-refactor flycheck-clj-kondo yasnippet paredit dashboard doom-modeline minions all-the-icons helm emacs-dashboard company-quickhelp company-box company-prescient ivy-prescient yaml-mode web-mode lsp-ui lsp-mode json-mode js2-mode rainbow-mode elisp-slime-nav cider clojure-mode rainbow-delimiters company counsel swiper ivy exec-path-from-shell zop-to-char zenburn-theme which-key volatile-highlights undo-tree super-save smartrep smartparens operate-on-number nlinum move-text magit projectile imenu-anywhere hl-todo guru-mode gitignore-mode gitconfig-mode git-timemachine gist flycheck expand-region epl editorconfig easy-kill diminish diff-hl discover-my-major crux browse-kill-ring anzu ag ace-window))) + '(solarized-theme flycheck-indicator simple-modeline miniedit smart-mode-line ivy-rich prelude subword-mode smartparens-mode projectile-mode prelude-mode rg f equake forge vterm dash magit-section markdown-mode popup s transient envrc hydra counsel-projectile ivy-hydra easy-kill-extras paredit-functions eval-expr lsp clj-refactor flycheck-clj-kondo yasnippet paredit dashboard emacs-dashboard company-quickhelp company-box company-prescient ivy-prescient yaml-mode web-mode lsp-ui lsp-mode json-mode js2-mode rainbow-mode elisp-slime-nav cider clojure-mode rainbow-delimiters company counsel swiper ivy exec-path-from-shell zop-to-char zenburn-theme which-key volatile-highlights undo-tree super-save smartrep smartparens operate-on-number nlinum move-text magit projectile imenu-anywhere hl-todo guru-mode gitignore-mode gitconfig-mode git-timemachine gist flycheck expand-region epl editorconfig easy-kill diminish diff-hl discover-my-major crux browse-kill-ring anzu ag ace-window)) + '(pdf-view-midnight-colors '("#DCDCCC" . "#383838"))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. - '(aw-leading-char-face ((t (:foreground "white" :background "red" :weight bold :height 2.5 :box (:line-width 10 :color "red")))))) + '(aw-leading-char-face ((t (:foreground "white" :background "red" :weight bold :height 2.5 :box (:line-width 10 :color "red"))))) + '(hi-yellow ((t (:background "yellow"))))) diff --git a/emacs-prelude/personal/lisp/init-clojure.el b/emacs-prelude/personal/lisp/init-clojure.el index 174dffd..191eae2 100644 --- a/emacs-prelude/personal/lisp/init-clojure.el +++ b/emacs-prelude/personal/lisp/init-clojure.el @@ -2,7 +2,7 @@ (prelude-require-package 'yasnippet) (use-package yasnippet - :diminish yas) + :diminish yas-minor-mode) (prelude-require-package 'flycheck-clj-kondo) (use-package clojure-mode @@ -12,6 +12,7 @@ (prelude-require-package 'clj-refactor) (use-package clj-refactor :diminish + :after yasnippet :bind ("C-c '" . hydra-cljr-help-menu/body) :config (cljr-add-keybindings-with-prefix "C-c C-m") @@ -23,13 +24,18 @@ (yas-minor-mode 1)))) (use-package cider + :diminish + :after key-chord :config (setq cider-repl-pop-to-buffer-on-connect 'display-only - cider-repl-display-help-banner nil - cider-repl-history-highlight-current-entry t - cider-repl-history-highlight-inserted-item t - cider-repl-use-clojure-font-lock t - cider-repl-use-pretty-printing t)) + cider-repl-display-help-banner nil + cider-repl-history-highlight-current-entry t + cider-repl-history-highlight-inserted-item t + cider-repl-use-clojure-font-lock t + cider-repl-use-pretty-printing t + clojure-toplevel-inside-comment-form t) + (key-chord-define-global "??" 'cider-xref-fn-refs-select) + (key-chord-define-global "qq" 'cider-xref-fn-refs)) (provide 'init-clojure) diff --git a/emacs-prelude/personal/lisp/init-completion.el b/emacs-prelude/personal/lisp/init-completion.el index c34ea45..213a91a 100644 --- a/emacs-prelude/personal/lisp/init-completion.el +++ b/emacs-prelude/personal/lisp/init-completion.el @@ -5,7 +5,7 @@ :hook (after-init . company-tng-mode) :config (global-company-mode) - (setq company-idle-delay 0.3 + (setq ;company-idle-delay 0.3 company-selection-wrap-around t company-show-numbers t company-tooltip-align-annotations t @@ -22,48 +22,15 @@ :hook (company-mode . company-box-mode) :config (setq company-box-backends-colors nil ;; TODO why? - company-box-doc-delay 0.3)) - -(prelude-require-package 'ivy-prescient) -(use-package ivy-prescient - :diminish - :config - (ivy-prescient-mode 1)) + ;company-box-doc-delay 0.3 + )) (prelude-require-package 'company-prescient) (use-package company-prescient :diminish :config - (company-prescient-mode 1)) - -(use-package counsel - :diminish ivy-mode counsel-mode - :config - (setq counsel-grep-base-command "rg -i -M 120 --no-heading --line-number --color never '%s' %s" - counsel-rg-base-command "rg -i -M 120 --no-heading --line-number --color never '%s' %s") - :bind (("C-c h" . counsel-command-history) - ;("C-c i" . counsel-git) - ;("C-c j" . counsel-git-grep) - ("C-c c g" . counsel-grep) - ("C-c c r" . counsel-rg) - ("C-c c o" . counsel-outline) - ("C-c z" . counsel-fzf) - ("C-c c z" . counsel-fzf) - ("C-c c a" . counsel-apropos) - ("C-c c f" . counsel-recentf) - ("C-c C-f" . counsel-recentf) - :map counsel-mode-map - ([remap swiper] . counsel-grep-or-swiper) - ([remap swiper-backward] . counsel-grep-or-swiper-backward) - ;([remap recentf-open-files] . counsel-recentf) - ([remap dired] . counsel-dired)) - :hook ((after-init . ivy-mode) - (ivy-mode . counsel-mode))) - -(prelude-require-package 'counsel-projectile) -(use-package counsel-projectile - :config - (counsel-projectile-mode)) + (company-prescient-mode 1) + (prescient-persist-mode +1)) (provide 'init-completion) diff --git a/emacs-prelude/personal/lisp/init-dashboard.el b/emacs-prelude/personal/lisp/init-dashboard.el index 7256c37..2c44ac6 100644 --- a/emacs-prelude/personal/lisp/init-dashboard.el +++ b/emacs-prelude/personal/lisp/init-dashboard.el @@ -3,7 +3,7 @@ :init (setq dashboard-center-content t dashboard-set-footer nil - dashboard-items '((recents . 5) + dashboard-items '((recents . 15) (bookmarks . 5) (projects . 5) (agenda . 5) diff --git a/emacs-prelude/personal/lisp/init-git.el b/emacs-prelude/personal/lisp/init-git.el new file mode 100644 index 0000000..5cb0b78 --- /dev/null +++ b/emacs-prelude/personal/lisp/init-git.el @@ -0,0 +1,15 @@ +(defun magit-set-upstream () + (interactive) + (magit-shell-command-topdir "git upstream")) + +(use-package magit + :after key-chord + :config + (key-chord-define-global "UU" 'magit-set-upstream)) +; :bind (("C-c g y" . magit-upstream))) ;; TODO + +(use-package forge + :after magit) + +(provide 'init-git) + diff --git a/emacs-prelude/personal/lisp/init-ivy.el b/emacs-prelude/personal/lisp/init-ivy.el new file mode 100644 index 0000000..44f53ac --- /dev/null +++ b/emacs-prelude/personal/lisp/init-ivy.el @@ -0,0 +1,53 @@ +(prelude-require-package 'ivy-prescient) +(use-package ivy-prescient + :diminish + :config + (ivy-prescient-mode 1)) + +(prelude-require-package 'ivy-rich) +(use-package ivy-rich + :config + (setcdr (assq t ivy-format-functions-alist) #'ivy-format-function-line) + (ivy-rich-mode 1)) + +(use-package counsel + :diminish ivy-mode counsel-mode + :config + (setq ;counsel-grep-base-command "rg -i -M 120 --no-heading --line-number --color never '%s' %s" + counsel-rg-base-command "rg -S -M 120 --no-heading --line-number --color never %s .") + :bind (("C-c h" . counsel-command-history) + ;("C-c i" . counsel-git) + ;("C-c j" . counsel-git-grep) + ("C-c c g" . counsel-grep) + ("C-c c r" . counsel-rg) + ("C-c c o" . counsel-outline) + ("C-c z" . counsel-fzf) + ("C-c c z" . counsel-fzf) + ("C-c c a" . counsel-apropos) + ("C-c c f" . counsel-recentf) + ("C-c C-f" . counsel-recentf) + :map counsel-mode-map + ([remap swiper] . counsel-grep-or-swiper) + ([remap swiper-backward] . counsel-grep-or-swiper-backward) + ;([remap recentf-open-files] . counsel-recentf) + ([remap dired] . counsel-dired)) + :hook ((after-init . ivy-mode) + (ivy-mode . counsel-mode))) + +(defun counsel-projectile-rg-glob () + (interactive) + (let ((glob (ivy-completing-read "Glob?: " '("*.cljs" + "*.clj" + "*.md" + "*.css")))) + (counsel-projectile-rg (concat "--glob " glob)))) + +(prelude-require-package 'counsel-projectile) +(use-package counsel-projectile + :config + (counsel-projectile-mode) + :bind (:map projectile-mode-map + ("C-c p s R" . counsel-projectile-rg-glob))) + +(provide 'init-ivy) + diff --git a/emacs-prelude/personal/lisp/init-lsp.el b/emacs-prelude/personal/lisp/init-lsp.el index c92ade7..875bc9c 100644 --- a/emacs-prelude/personal/lisp/init-lsp.el +++ b/emacs-prelude/personal/lisp/init-lsp.el @@ -15,9 +15,11 @@ lsp-ui-sideline-show-code-actions nil lsp-modeline-code-actions-enable nil ;; TODO this causes errors in *Messages* if t lsp-modeline-diagnostics-enable nil + lsp-ui-doc-position 'top ;; user cider for indendation and completion instead lsp-enable-indentation nil - lsp-completion-enable nil)) + lsp-completion-enable nil) + (key-chord-define-global "QQ" 'lsp-find-references)) ;; TODO? (provide 'init-lsp) diff --git a/emacs-prelude/personal/lisp/init-mac.el b/emacs-prelude/personal/lisp/init-mac.el new file mode 100644 index 0000000..26e4889 --- /dev/null +++ b/emacs-prelude/personal/lisp/init-mac.el @@ -0,0 +1,7 @@ +(when (eq system-type 'darwin) + (setq mac-option-modifier 'meta) + (setq mac-right-option-modifier 'none) + (setq mac-command-modifier 'super)) + +(provide 'init-mac) + diff --git a/emacs-prelude/personal/lisp/init-misc.el b/emacs-prelude/personal/lisp/init-misc.el new file mode 100644 index 0000000..c146e9b --- /dev/null +++ b/emacs-prelude/personal/lisp/init-misc.el @@ -0,0 +1,14 @@ +(prelude-require-package 'envrc) +(use-package envrc + :diminish + :config + (envrc-global-mode)) + +(prelude-require-package 'rg) +(use-package rg + :config + (rg-enable-default-bindings)) + + +(provide 'init-misc) + diff --git a/emacs-prelude/personal/lisp/init-modeline.el b/emacs-prelude/personal/lisp/init-modeline.el index 5ae8281..159bdb5 100644 --- a/emacs-prelude/personal/lisp/init-modeline.el +++ b/emacs-prelude/personal/lisp/init-modeline.el @@ -1,14 +1,24 @@ -(prelude-require-package 'doom-modeline) -(use-package doom-modeline - :hook (after-init . doom-modeline-mode) - :config ;(add-hook 'after-init-hook #'doom-modeline-mode) - (setq doom-modeline-minor-modes t - doom-modeline-major-mode-icon t)) +(prelude-require-package 'simple-modeline) -(prelude-require-package 'minions) -(use-package minions - :hook (doom-modeline-mode . minions-mode)) +(use-package simple-modeline + :hook (after-init . simple-modeline-mode)) +(prelude-require-package 'flycheck-indicator) +(use-package flycheck-indicator + :after flycheck + :hook (flycheck-mode . flycheck-indicator-mode) + :custom + (flycheck-indicator-icon-error 9632) + (flycheck-indicator-icon-info 9679) + (flycheck-indicator-icon-warning 9650) + (flycheck-indicator-status-icons + '((running . "◉") + (errored . "◙") + (finished . "●") + (interrupted . "◘") + (suspicious . "◘") + (no-checker . "○") + (not-checked . "○")))) (provide 'init-modeline) diff --git a/emacs-prelude/personal/lisp/init-prelude.el b/emacs-prelude/personal/lisp/init-prelude.el index a8cb3af..65fc870 100644 --- a/emacs-prelude/personal/lisp/init-prelude.el +++ b/emacs-prelude/personal/lisp/init-prelude.el @@ -1,7 +1,6 @@ ;; config for misc packages included with prelude (use-package flycheck - :diminish :config (global-flycheck-mode)) @@ -11,6 +10,15 @@ (use-package whitespace :diminish) +(use-package projectile + :diminish) + +(use-package smartparens + :diminish) + +(use-package subword + :diminish) + (use-package ace-window :diminish :custom-face @@ -18,5 +26,11 @@ ((t (:foreground "white" :background "red" :weight bold :height 2.5 :box (:line-width 10 :color "red")))))) +;; allow other things to use C-c s +(define-key prelude-mode-map (kbd "C-c s") nil) +(define-key prelude-mode-map (kbd "C-c S") 'crux-swap-windows) + +(diminish 'prelude-mode) + (provide 'init-prelude) diff --git a/emacs-prelude/personal/lisp/init-ui.el b/emacs-prelude/personal/lisp/init-ui.el index b40e207..fefd637 100644 --- a/emacs-prelude/personal/lisp/init-ui.el +++ b/emacs-prelude/personal/lisp/init-ui.el @@ -1,16 +1,32 @@ -;(prelude-require-package 'all-the-icons) - (toggle-frame-maximized) (menu-bar-mode -1) (tool-bar-mode -1) (scroll-bar-mode -1) +(prelude-require-package 'solarized-theme) +(load-theme 'solarized-dark t) +;(set-face-background 'hi-yellow "yellow") + (setq whitespace-line-column 120) +(require 'hi-lock) +(defun toggle-highlight-symbol-at-point () + (interactive) + (if hi-lock-interactive-patterns + (unhighlight-regexp (car (car hi-lock-interactive-patterns))) + (highlight-symbol-at-point))) +(global-set-key (kbd "s-.") 'toggle-highlight-symbol-at-point) + (use-package paren :config (show-paren-mode +1)) +(global-set-key (kbd "C-x C-S-k") 'kill-this-buffer) + +(use-package miniedit + :commands minibuffer-edit + :init (miniedit-install)) + (provide 'init-ui) diff --git a/emacs-prelude/personal/personal.el b/emacs-prelude/personal/personal.el index ca5962d..da960c7 100644 --- a/emacs-prelude/personal/personal.el +++ b/emacs-prelude/personal/personal.el @@ -1,16 +1,19 @@ (add-to-list 'load-path (expand-file-name "personal/lisp" user-emacs-directory)) -;; TODO persp/perspective/projectile-persp, dired/counsel-dired/..?, lsp-ivy (require 'init-use-package) (require 'init-prelude) (require 'init-ui) (require 'init-hydra) (require 'init-modeline) -;(require 'init-dashboard) +(require 'init-dashboard) (require 'init-completion) +(require 'init-ivy) (require 'init-lisp) (require 'init-clojure) (require 'init-lsp) +(require 'init-git) +(require 'init-mac) +(require 'init-misc) (global-unset-key (kbd "")) (global-unset-key (kbd "")) -- cgit 1.4.1-2-gfad0