diff --git a/dot_config/emacs/init.el b/dot_config/emacs/init.el index 1759caa..5c19417 100644 --- a/dot_config/emacs/init.el +++ b/dot_config/emacs/init.el @@ -128,6 +128,9 @@ ;; Customize compilation & related buffers (use-feature compile + :bind + (:map prog-mode-map + ("C-c r" . recompile)) :commands (compile recompile) :config (setopt compilation-ask-about-save nil compilation-scroll-output 'first-error)) @@ -288,20 +291,20 @@ :config (setopt recentf-max-menu-items 100 recentf-max-saved-items 1000 - recentf-save-file (concat xdg_cache_home "recentf")) + recentf-save-file (expand-file-name "recentf" xdg_cache_home)) (recentf-mode)) ;; Customize saving mini-buffer history (use-feature savehist :config (setopt savehist-autosave-interval 120 - savehist-file (concat xdg_cache_home "history")) + savehist-file (expand-file-name "history" xdg_cache_home)) (savehist-mode)) ;; Customize saving place in files (use-feature saveplace :config - (setopt save-place-file (concat xdg_cache_home "places")) + (setopt save-place-file (expand-file-name "places" xdg_cache_home)) (save-place-mode)) ;; Unload `seq' before `Elpaca' starts building @@ -378,6 +381,13 @@ (catppuccin-reload) (load-theme 'catppuccin t)) +;; C/C++ formatting +;; Ad hoc format file: clang-format -style=webkit -dump-config > .clang-format +(use-package clang-format + :commands (clang-format clang-format-buffer clang-format-region) + :config (setopt clang-format-fallback-style "webkit" + clang-format-style "file")) + ;; Search and navigation (use-package consult :bind (;; C-c bindings in `mode-specific-map' @@ -431,7 +441,12 @@ ;; Minibuffer history :map minibuffer-local-map ("M-s" . consult-history) ; orig. next-matching-history-element - ("M-r" . consult-history)) ; orig. previous-matching-history-element + ("M-r" . consult-history) + :map as/org-prefix-map ; orig. previous-matching-history-element + ("h" . consult-org-heading) + ("a" . consult-org-agenda)) + :config + (setopt consult-narrow-key "<") :init ;; Register formatting (setopt register-preview-delay 0.6 @@ -442,6 +457,13 @@ (setopt xref-show-xrefs-function #'consult-xref xref-show-definitions-function #'consult-xref)) +(use-package consult-dir + :after (consult) + :bind (("C-x C-d" . consult-dir) + :map vertico-map + ("C-x C-d" . consult-dir) + ("C-x C-j" . consult-dir-jump-file))) + ;; UI for the workspace/symbols procedure calls (use-package consult-eglot :after (eglot) @@ -486,7 +508,7 @@ :ensure (eglot-booster :host github :repo "jdtsmith/eglot-booster")) ;; Command menu for items around point - (use-package embark +(use-package embark :bind (("C-." . embark-act) ("C-;" . embark-dwim) @@ -502,6 +524,46 @@ (use-package embark-consult :hook (embark-collect-mode . consult-preview-at-point-mode)) +;; Startup screen +(use-package enlight + :after (grid) + :config + (setopt + enlight-content + (grid-get-row + `(,(enlight-menu + '(("Files" + ("Find File" find-file "f") + ("Recent Files" consult-recent-file "r") + ("Projects" project-switch-project "p") + ("Open Project Buffer" consult-project-buffer "o")))) + " " + ,(enlight-menu + '(("Org" + ("Agenda" (org-agenda nil "a") "a") + ("Time blocking" org-timeblock "b") + ("List all TODOs" (org-agenda nil "t") "t") + ("Match Tags" (org-agenda nil "m") "m")))) + " " + ,(enlight-menu + `(("Settings" + ("Elpaca" elpaca-manager "L") + ("Emacs" + (progn + (find-file ,user-init-file)) + "I") + ("Enlight" + (progn + (find-file ,user-init-file) + (goto-char (point-min)) + (search-forward "use-package enlight")) + "E") + ("Org" + (progn + (find-file ,(replace-regexp-in-string "init.el" "lisp/init-org.el" user-init-file))) + "O"))))))) + (enlight-open)) + ;; Correction functions for `flyspell' (use-package flyspell-correct :after (flyspell) @@ -509,6 +571,10 @@ (:map flyspell-mode-map ("C-M-." . flyspell-correct-wrapper))) +;; Grid for `enlight' +(use-package grid + :ensure (:host github :repo "ichernyshovvv/grid.el")) + ;; Highlight keywords (use-package hl-todo :bind @@ -544,7 +610,7 @@ :bind ("C-M-;" . magit-status) :config (setopt magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1 - transient-history-file (concat xdg_cache_home "transient-history"))) + transient-history-file (expand-file-name "transient-history" xdg_cache_home))) (use-package magit-todos :hook (magit-mode . magit-todos-mode)) @@ -602,8 +668,8 @@ (setopt completion-styles '(orderless basic) completion-category-overrides '((file (styles basic partial-completion))) orderless-matching-styles '(orderless-regexp - orderless-literal - orderless-initialism)) + orderless-literal + orderless-initialism)) :defer 1) ;; Project Management @@ -611,7 +677,7 @@ :disabled :bind ("C-c p" . projectile-command-map) :config - (setopt projectile-known-projects-file (concat xdg_cache_home "projectile-bookmarks") + (setopt projectile-known-projects-file (expand-file-name "projectile-bookmarks" xdg_cache_home) projectile-project-search-path '(("~/Nextcloud/Projects/src/" . 2))) (push "*node_modules" projectile-globally-ignored-directories) (projectile-mode))