Merge branch 'master' of gitlab.com:chriscochrun/dotemacs

This commit is contained in:
Chris Cochrun 2021-07-10 14:16:15 -05:00
commit 178638f314
2 changed files with 130 additions and 73 deletions

View file

@ -15,6 +15,7 @@
- [[#better-ui][Better UI]]
- [[#completion][Completion]]
- [[#yasnippet][YASnippet]]
- [[#projectile][Projectile]]
- [[#navigation][Navigation]]
- [[#window-management][Window Management]]
- [[#help][Help]]
@ -352,6 +353,7 @@ This evil-collection package includes a lot of other evil based things.
"of" '(:ignore t :which-key "elfeed")
"h" '(:ignore t :which-key "help")
"n" '(:ignore t :which-key "notes")
"l" '(:ignore t :which-key "lsp")
"sp" '(:ignore t :which-key "passwords")
"bs" '(consult-buffer :which-key "buffer search")
"bd" '(kill-this-buffer :which-key "kill buffer")
@ -627,17 +629,21 @@ Marginalia makes for some great decoration to our minibuffer completion items. W
*** Company
#+begin_src emacs-lisp
(use-package company
:defer 1
:config
(global-company-mode +1)
(setq company-dabbrev-other-buffers t
company-minimum-prefix-length 1)
:custom
(company-dabbrev-other-buffers t)
(company-minimum-prefix-length 1)
(company-idle-delay 0.2)
:general
(general-define-key
:states 'normal
:keymaps '(company-search-map)
"TAB" 'company-complete-selection)
)
(general-def '(normal insert) company-active-map
"TAB" 'company-complete-selection
"RET" 'company-complete-selection)
(general-def '(normal insert) lsp-mode-map
"TAB" 'company-indent-or-complete-common))
;; (use-package company-box
;; :hook (company-mode . company-box-mode))
#+end_src
#+begin_src emacs-lisp
@ -654,6 +660,12 @@ YASnippet is a templating system. It's powerful.
(yas-global-mode 1))
#+end_src
** Projectile
I'm going to use projectile to keep my projects inline.
#+begin_src emacs-lisp
(use-package projectile)
#+end_src
** Navigation
*** Avy
Avy provides a lot of functions to search through the current buffer. Most of the time I use evil or consult functions to find what I'm looking for, but avy provides a lot of small movements that are more useful for visible movements.
@ -763,11 +775,22 @@ Since I use the Awesome WM I thought it'd be good to have lua around. It's also
LSP is useful...
#+begin_src emacs-lisp
(use-package lsp-mode
:commands (lsp lsp-deferred)
:init
(setq lsp-keymap-prefix "C-c l")
:config
(setq lsp-lens-enable t
lsp-signature-auto-activate nil))
lsp-signature-auto-activate nil
read-process-output-max (* 1024 1024))
(lsp-enable-which-key-integration t))
(use-package lsp-ui)
(use-package lsp-ui
:hook (lsp-mode . lsp-ui-mode)
:custom
(lsp-ui-doc-position 'bottom))
(use-package lsp-treemacs
:after lsp)
#+end_src
*** Fennel
@ -874,9 +897,17 @@ I may get into flutter development over using felgo..... but i'm not happy about
#+begin_src emacs-lisp
(use-package dart-mode
:mode ("\\.dart\\'" . dart-mode)
:config (add-hook 'dart-mode 'lsp))
:hook (dart-mode . lsp-deferred)
:general
(general-def 'normal dart-mode-map
"C-c r" 'lsp-dart-dap-flutter-hot-reload
"C-c R" 'lsp-dart-dap-flutter-hot-restart))
(use-package lsp-dart)
(use-package flutter
:after dart)
(use-package hover
:after dart)
#+end_src
Let's also add the android-sdk tools to emacs' path.

150
init.el
View file

@ -2,9 +2,9 @@
(defun chris/display-startup-time ()
(message "Emacs loaded in %s with %d garbage collections."
(format "%.2f seconds"
(float-time
(time-subtract after-init-time before-init-time)))
gcs-done))
(float-time
(time-subtract after-init-time before-init-time)))
gcs-done))
(add-hook 'emacs-startup-hook #'chris/display-startup-time)
(setq inhibit-startup-message t)
@ -48,7 +48,7 @@
(with-selected-frame frame
(chris/set-font-faces)
(chris/set-transparency)))
(chris/set-font-faces))
(chris/set-font-faces))
(chris/set-transparency))
(setq display-line-numbers-type 'relative)
@ -65,7 +65,7 @@
;; ...especially on linux
(setq x-gtk-use-system-tooltips nil)
;; Favor vertical splits over horizontal ones. Screens are usually wide.
;; Favor vertical splits over horizontal ones. Screens are usually wide.
(setq split-width-threshold 160
split-height-threshold nil)
@ -99,8 +99,8 @@
(straight-use-package 'use-package)
(setq use-package-verbose t)
(use-package command-log-mode
:commands command-log-mode)
(use-package command-log-mode
:commands command-log-mode)
(use-package all-the-icons)
@ -217,6 +217,7 @@
"of" '(:ignore t :which-key "elfeed")
"h" '(:ignore t :which-key "help")
"n" '(:ignore t :which-key "notes")
"l" '(:ignore t :which-key "lsp")
"sp" '(:ignore t :which-key "passwords")
"bs" '(consult-buffer :which-key "buffer search")
"bd" '(kill-this-buffer :which-key "kill buffer")
@ -293,19 +294,19 @@
;; We need to fix selectrums minibuffer handling for Emacs 28
(defun selectrum--set-window-height (window &optional height)
"Set window height of WINDOW to HEIGHT pixel.
"Set window height of WINDOW to HEIGHT pixel.
If HEIGHT is not given WINDOW will be updated to fit its content
vertically."
(let* ((lines (length
(split-string
(overlay-get selectrum--candidates-overlay 'after-string)
"\n" t)))
(dheight (or height
(* lines selectrum--line-height)))
(wheight (window-pixel-height window))
(window-resize-pixelwise t))
(window-resize
window (- dheight wheight) nil nil 'pixelwise)))
(let* ((lines (length
(split-string
(overlay-get selectrum--candidates-overlay 'after-string)
"\n" t)))
(dheight (or height
(* lines selectrum--line-height)))
(wheight (window-pixel-height window))
(window-resize-pixelwise t))
(window-resize
window (- dheight wheight) nil nil 'pixelwise)))
:general
@ -340,10 +341,10 @@ vertically."
(use-package marginalia
:bind (:map minibuffer-local-map
("C-M-a" . marginalia-cycle)
;; :map embark-general-map
;; ("A" . marginalia-cycle)
)
("C-M-a" . marginalia-cycle)
;; :map embark-general-map
;; ("A" . marginalia-cycle)
)
;; The :init configuration is always executed (Not lazy!)
:init
@ -361,17 +362,21 @@ vertically."
:after selectrum)
(use-package company
:defer 1
:config
(global-company-mode +1)
(setq company-dabbrev-other-buffers t
company-minimum-prefix-length 1)
:custom
(company-dabbrev-other-buffers t)
(company-minimum-prefix-length 1)
(company-idle-delay 0.2)
:general
(general-define-key
:states 'normal
:keymaps '(company-search-map)
"TAB" 'company-complete-selection)
)
(general-def '(normal insert) company-active-map
"TAB" 'company-complete-selection
"RET" 'company-complete-selection)
(general-def '(normal insert) lsp-mode-map
"TAB" 'company-indent-or-complete-common))
;; (use-package company-box
;; :hook (company-mode . company-box-mode))
(use-package company-dict
:after company)
@ -381,6 +386,8 @@ vertically."
(setq yas-snippet-dirs (list (expand-file-name "yasnippets/" user-emacs-directory)))
(yas-global-mode 1))
(use-package projectile)
(use-package avy
:after evil)
@ -454,18 +461,29 @@ vertically."
:mode ("\\.lua\\'" . lua-mode))
(use-package lsp-mode
:commands (lsp lsp-deferred)
:init
(setq lsp-keymap-prefix "C-c l")
:config
(setq lsp-lens-enable t
lsp-signature-auto-activate nil))
lsp-signature-auto-activate nil
read-process-output-max (* 1024 1024))
(lsp-enable-which-key-integration t))
(use-package lsp-ui)
(use-package lsp-ui
:hook (lsp-mode . lsp-ui-mode)
:custom
(lsp-ui-doc-position 'bottom))
(use-package lsp-treemacs
:after lsp)
(use-package fennel-mode
:mode ("\\.fnl\\'" . fennel-mode))
(use-package friar
:straight (:host github :repo "warreq/friar" :branch "master"
:files (:defaults "*.lua" "*.fnl"))
:files (:defaults "*.lua" "*.fnl"))
:after fennel-mode)
(use-package yaml-mode
@ -516,9 +534,17 @@ vertically."
(use-package dart-mode
:mode ("\\.dart\\'" . dart-mode)
:config (add-hook 'dart-mode 'lsp))
:hook (dart-mode . lsp-deferred)
:general
(general-def 'normal dart-mode-map
"C-c r" 'lsp-dart-dap-flutter-hot-reload
"C-c R" 'lsp-dart-dap-flutter-hot-restart))
(use-package lsp-dart)
(use-package flutter
:after dart)
(use-package hover
:after dart)
(add-to-list 'exec-path "/opt/android-sdk/cmdline-tools/latest/bin")
@ -793,17 +819,17 @@ vertically."
:after org
:init
(setq org-super-agenda-groups '((:name "Today"
:time-grid t
:scheduled today)
:time-grid t
:scheduled today)
(:name "Due Today"
:deadline today)
:deadline today)
(:name "Important"
:priority "A")
:priority "A")
(:name "Overdue"
:time-grid t
:scheduled today)
:time-grid t
:scheduled today)
(:name "Due soon"
:deadline future)))
:deadline future)))
:config
(org-super-agenda-mode)
(setq org-super-agenda-header-map nil))
@ -1310,20 +1336,20 @@ If on a:
(add-hook 'eshell-mode-hook '(display-line-numbers-mode -1))
(setq eshell-command-aliases-list
'(("ls" "exa $1")
("la" "exa -la $1")
("q" "exit")
("f" "find-file $1")
("ff" "find-file $1")
("d" "dired $1")
("bd" "eshell-up $1")
("rg" "rg --color=always $*")
("ll" "ls -lah $*")
("gg" "magit-status")
("clear" "clear-scrollback")
("!c" "eshell-previous-input 2")
("yay" "paru $1")
("yeet" "paru -Rns $1")))
'(("ls" "exa $1")
("la" "exa -la $1")
("q" "exit")
("f" "find-file $1")
("ff" "find-file $1")
("d" "dired $1")
("bd" "eshell-up $1")
("rg" "rg --color=always $*")
("ll" "ls -lah $*")
("gg" "magit-status")
("clear" "clear-scrollback")
("!c" "eshell-previous-input 2")
("yay" "paru $1")
("yeet" "paru -Rns $1")))
:general
(chris/leader-keys
@ -1338,8 +1364,8 @@ If on a:
(use-package pdf-tools
:straight (:host github
:repo "flatwhatson/pdf-tools"
:branch "fix-macros")
:repo "flatwhatson/pdf-tools"
:branch "fix-macros")
:defer 1
:config
(pdf-tools-install)
@ -1498,11 +1524,11 @@ interfere with the default `bongo-playlist-buffer'."
transmission-files-mode
transmission-info-mode
transmission-peers-mode)))
:general
(chris/leader-keys
:states 'normal
:keymaps 'override
"ot" 'transmission))
:general
(chris/leader-keys
:states 'normal
:keymaps 'override
"ot" 'transmission))
(use-package auth-source-pass
:defer 1