diff options
| author | cashmere <cashmere@autistici.org> | 2026-08-08 11:46:18 +0200 |
|---|---|---|
| committer | cashmere <cashmere@autistici.org> | 2026-08-08 11:46:18 +0200 |
| commit | a92ab5a43ad9d44599ed27cf4354ed5673a3763a (patch) | |
| tree | 0d8a60d09c96e0bde4102f647859d7903280c5ec /config.org | |
| parent | f637df6f11ac28fab15c5edad20d92396b736530 (diff) | |
| download | emacs-a92ab5a43ad9d44599ed27cf4354ed5673a3763a.tar.gz | |
md: 2026-08-08T11:46:23+02:00
Diffstat (limited to 'config.org')
| -rw-r--r-- | config.org | 194 |
1 files changed, 133 insertions, 61 deletions
@@ -2414,6 +2414,22 @@ Auto switch silos (different workspaces/folders) based on preconfigured director (advice-add 'denote-solo-switch :after #'my/denote-solo-sync-directory)) #+end_src +* company-mode + +#+begin_src emacs-lisp :tangle yes +(use-package company + :ensure t + :hook (after-init . global-company-mode) + :custom + (company-idle-delay 0) + (company-tooltip-idle-delay 0) + (company-minimum-prefix-length 2) + (company-require-match nil) + (company-frontends + '(company-pseudo-tooltip-unless-just-one-frontend + company-echo-metadata-frontend)) + (company-backends '(company-capf))) +#+end_src * which-key @@ -2427,22 +2443,6 @@ Auto switch silos (different workspaces/folders) based on preconfigured director (which-key-idle-delay 0.3)) #+end_src -** corfu - -#+begin_src emacs-lisp -(use-package corfu - :ensure t - :custom - (corfu-cycle t) - (corfu-auto t) - (corfu-auto-delay 0.2) - (corfu-auto-prefix 2) - :init - (global-corfu-mode) - (corfu-history-mode) - (corfu-popupinfo-mode)) -#+end_src - *** cape #+begin_src emacs-lisp @@ -2488,19 +2488,6 @@ Auto switch silos (different workspaces/folders) based on preconfigured director (setq prefix-help-command #'embark-prefix-help-command)) #+end_src -** orderless - -#+begin_src emacs-lisp -(use-package orderless - :ensure t - :defer t ;; Load Orderless on demand. - :after vertico ;; Ensure Vertico is loaded before Orderless. - :init - (setq completion-styles '(orderless basic) ;; Set the completion styles. -completion-category-defaults nil ;; Clear default category settings. -completion-category-overrides '((file (styles partial-completion))))) ;; Customize file completion styles. -#+end_src - * helm-mode #+begin_src emacs-lisp @@ -2514,6 +2501,7 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi (helm-recentf-fuzzy-match t) (helm-move-to-line-cycle-in-source nil) (helm-split-window-inside-p t) + (helm-autoresize-mode 1) (helm-boring-buffer-regexp-list '("\\` " "\\`\\*helm" @@ -2539,14 +2527,28 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi (global-set-key (kbd "M-x") 'helm-M-x) #+end_src -** helm-flx +* helm-xref #+begin_src emacs-lisp -(use-package helm-flx +(use-package helm-xref :ensure t - :after helm - :config - (helm-flx-mode +1)) + :after helm) +#+end_src + +* tags (citre) + +#+begin_src emacs-lisp +(use-package citre + :ensure t + :defer t + :init + (require 'citre-config) + :custom + (citre-default-create-tags-file-location 'in-dir) + (citre-edit-ctags-options-manually nil) + (citre-auto-enable-citre-mode-modes '(prog-mode)) + :bind (("C-c e" . citre-jump) + ("C-c u" . citre-update-this-tags-file))) #+end_src * programming @@ -2610,8 +2612,8 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi (use-package nix-ts-mode :ensure t :mode "\\.nix\\'" - :hook (nix-ts-mode . eglot-ensure) :config + (modify-syntax-entry ?. "_" nix-ts-mode--syntax-table) (with-eval-after-load 'eglot (add-to-list 'eglot-server-programs '(nix-ts-mode . ("nixd"))))) @@ -2623,6 +2625,36 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi (put 'eglot-workspace-configuration 'safe-local-variable #'listp) #+end_src +*** compilation enhancements + +#+begin_src emacs-lisp :tangle yes +(with-eval-after-load 'compile + (dolist (rule '((nix-def "^\\s-*- In [`']\\(/[^'\n]+\\)'" 1) + (nix-eval "^\\s-+at \\(/[^:\n]+\\):\\([0-9]+\\):\\([0-9]+\\):" 1 2 3) + (nix-trace "^\\s-+at \\(/nix/store/[^:\n]+\\):\\([0-9]+\\):\\([0-9]+\\):" 1 2 3 0))) + (add-to-list 'compilation-error-regexp-alist (car rule)) + (add-to-list 'compilation-error-regexp-alist-alist rule))) + +(defun nix-compile-goto-option () + (interactive) + (let (option path) + (save-excursion + (goto-char (point-min)) + (unless (re-search-forward "option `\\([^'\n]+\\)'" nil t) + (user-error "No nix option error found")) + (setq option (match-string 1)) + (unless (re-search-forward "- In `\\(/[^'\n]+\\)'" nil t) + (user-error "No definition file found")) + (setq path (match-string 1))) + (when (file-directory-p path) + (setq path (expand-file-name "default.nix" path))) + (find-file path) + (goto-char (point-min)) + (search-forward (car (last (split-string option "\\." t)))))) + +(keymap-set compilation-mode-map "C-c o" #'nix-compile-goto-option) +#+end_src + ** c-ts-mode Built-in tree-sitter mode (Emacs 29+) driven by =clangd=. The =c= grammar ships via =treesit-grammars.with-all-grammars= in =emacs.nix=, so no on-the-fly compilation is needed. =clangd= picks up include paths and flags from a =compile_commands.json= in the project root (generate it with =bear -- make=, =cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON=, or =meson=); without one it falls back to sane defaults but cross-file navigation is limited. @@ -3411,17 +3443,6 @@ Native =undo-redo= (via =evil-undo-system='undo-redo=); just raise the undo limi (dirvish-directory-view-mode . diredfl-mode))) #+end_src -** nerd-icons-completion - -#+begin_src emacs-lisp -(use-package nerd-icons-completion - :if ek-use-nerd-fonts ;; Load the package only if the user has configured to use nerd fonts. - :ensure t ;; Ensure the package is installed. - :after nerd-icons - :config - (nerd-icons-completion-mode)) -#+end_src - * TODO efs install fn #+begin_src emacs-lisp @@ -3559,6 +3580,33 @@ moved to local.el #+end_src +** batppuccin + +#+begin_src emacs-lisp +(use-package batppuccin + :ensure t + :config + (load-theme 'batppuccin-mocha t)) +#+end_src + +** solarized-theme + +#+begin_src emacs-lisp :tangle yes +;; (use-package solarized-theme +;; :ensure t +;; :config +;; (load-theme 'solarized-gruvbox-dark t)) +#+end_src + +** tokyo-night + +#+begin_src emacs-lisp +;; (use-package tokyo-night +;; :ensure t +;; :config +;; (load-theme 'tokyo-night t)) +#+end_src + * dirvish #+begin_src emacs-lisp @@ -3737,14 +3785,15 @@ still require a restart since elpaca queues run at init time." :after (wgrep helm)) (defun my/project-replace () - "Project-wide search via `helm-do-grep-ag-project'. + "Project-wide search via ripgrep (`helm-projectile-rg'). Press `C-x C-s' in the helm session to save results to a *hgrep* buffer, then `C-c C-p' (wgrep-change-to-wgrep-mode) to edit in place. `C-c C-c' commits, `C-c C-k' aborts." (interactive) - (call-interactively #'helm-do-grep-ag-project)) + (call-interactively #'helm-projectile-rg)) #+end_src + ** search in arbitrary directories #+begin_src emacs-lisp @@ -3752,17 +3801,20 @@ place. `C-c C-c' commits, `C-c C-k' aborts." (interactive "DFind files in: ") (helm-find-1 dir)) -(defun my/helm-grep-in (dir) - (interactive "DGrep in: ") - (let ((default-directory (file-name-as-directory dir))) - (helm-do-grep-ag nil))) +(defun my/helm-rg-in (dir) + "Search DIR recursively with ripgrep via Helm." + (interactive "DRipgrep in: ") + (helm-grep-ag (expand-file-name dir) nil)) -(defun my/denote-grep () +(defun my/denote-rg () + "Search `denote-directory' recursively with ripgrep via Helm." (interactive) - (let ((default-directory (expand-file-name denote-directory))) - (helm-do-grep-ag nil))) + (helm-grep-ag (expand-file-name denote-directory) nil)) #+end_src +#+RESULTS: +: my/denote-rg + * workspaces #+begin_src emacs-lisp @@ -4157,8 +4209,7 @@ place. `C-c C-c' commits, `C-c C-k' aborts." (defun my/format-buffer () (interactive) (cond - ((eq major-mode 'rust-ts-mode) (eglot-format-buffer)) - ((eq major-mode 'nix-ts-mode) (eglot-format-buffer)) + ((eq major-mode 'rust-ts-mode) (eglot-format-buffer)) ((eq major-mode 'python-ts-mode) (eglot-format-buffer)) ((eq major-mode 'c-mode) (eglot-format-buffer)) ((bound-and-true-p eglot--managed-mode) (eglot-format-buffer)) @@ -4179,9 +4230,9 @@ workspace (e.g. *scratch*)." "SPC" '(my/find-file-or-switch-project :wk "find file/switch project") "sp" '(helm-projectile :wk "search project") "ss" '(helm-occur :wk "search line") - "sg" '(my/helm-grep-in :wk "grep in dir") + "sg" '(my/helm-rg-in :wk "rg in dir") "sf" '(my/helm-find-in :wk "find file in dir") - "/" '(helm-do-grep-ag-project :wk "search project") + "/" '(helm-projectile-rg :wk "search project") "." '(helm-find-files :wk "find file") "," '(helm-mini :wk "switch buffer") ":" (lambda () (interactive) (execute-extended-command nil)) @@ -4194,7 +4245,7 @@ workspace (e.g. *scratch*)." "dm" '(:ignore t :wk "Merge Notes") "dmr" '(denote-merge-region :wk "Merge Region") "dmf" '(denote-merge-file :wk "Merge File") - "dg" '(my/denote-grep :wk "Search") + "dg" '(my/denote-rg :wk "grep denotes") "dl" '(denote-link-or-create t :wk "Link Note") "dn" '(denote t :wk "Create a new note") "dr" '(denote-rename-file t :wk "Rename Note") @@ -4313,9 +4364,9 @@ workspace (e.g. *scratch*)." "e b" '(eww-list-bookmarks :wk "bookmarks") "e h" '(eww-list-histories :wk "history") "e f" '(elfeed :wk "elfeed (rss)") - "e s" '(engine/search-duckduckgo :wk "search duckduckgo") "e L" '(link-hint-open-link :wk "hint open link") "e C" '(link-hint-copy-link :wk "hint copy link") + "e x" '(xwidget-webkit-browse-url :wk "webkit browser") ) (defun my/flash-enabled-p () @@ -5009,6 +5060,7 @@ opening another file in same project does not re-notify." (format "%s-freebsd" arch))))) (advice-add 'ghostel--module-platform-tag :around #'my/ghostel-module-platform-tag) (require 'ghostel-compile) + (ghostel-compile-global-mode 1) (setq-default window-adjust-process-window-size-function #'window-adjust-process-window-size-largest) (evil-define-key 'normal ghostel-mode-map @@ -5185,6 +5237,26 @@ opening another file in same project does not re-notify." :commands (zfs)) #+end_src +* org-tree-slide + +#+begin_src emacs-lisp +(use-package org-tree-slide + :ensure t) +(when (require 'org-tree-slide nil t) + (global-set-key (kbd "<f8>") 'org-tree-slide-mode) + (global-set-key (kbd "S-<f8>") 'org-tree-slide-skip-done-toggle) + (define-key org-tree-slide-mode-map (kbd "<f9>") + 'org-tree-slide-move-previous-tree) + (define-key org-tree-slide-mode-map (kbd "<f10>") + 'org-tree-slide-move-next-tree) + (define-key org-tree-slide-mode-map (kbd "<f11>") + 'org-tree-slide-content) + (setq org-tree-slide-skip-outline-level 4) + (org-tree-slide-narrowing-control-profile) + (setq org-tree-slide-skip-comments 'inherit) + (setq org-tree-slide-skip-done nil)) +#+end_src + * provide init #+begin_src emacs-lisp |
