From 4b4af818d1e95449b635cc15b92f946c3d023edd Mon Sep 17 00:00:00 2001 From: cashmere Date: Wed, 23 Sep 2026 00:10:34 +0200 Subject: relic: 2026-09-23T00:10:38+02:00 --- bin/project-ctags | 27 ++ config.el | 23 +- config.org | 23 +- elpaca-lock.eld | 764 +++++++++++++++++++++++++++++--------------------- lisp/citre-backend.el | 59 +++- lisp/citre-index.el | 80 +++++- 6 files changed, 606 insertions(+), 370 deletions(-) diff --git a/bin/project-ctags b/bin/project-ctags index 47b1fe5..373a712 100755 --- a/bin/project-ctags +++ b/bin/project-ctags @@ -180,8 +180,35 @@ def git_project_files(root): return files +def fossil_project_files(root): + """List managed and unignored files of a Fossil checkout.""" + fossil = shutil.which("fossil") + if fossil is None: + return None + files = [] + for command in (["ls"], ["extras"]): + result = subprocess.run( + [fossil, *command], + cwd=root, + stdout=subprocess.PIPE, + stderr=subprocess.DEVNULL, + check=False, + ) + if result.returncode != 0: + return None + for name in result.stdout.splitlines(): + if not name: + continue + path = root / os.fsdecode(name) + if path.is_file(): + files.append(path.resolve()) + return files + + def project_files(root, output): files = git_project_files(root) + if files is None: + files = fossil_project_files(root) if files is None: files = walk_files(root) return sorted(path for path in files if path != output) diff --git a/config.el b/config.el index 005a597..99be2be 100644 --- a/config.el +++ b/config.el @@ -2290,7 +2290,7 @@ Timers that expired while Emacs was closed fire immediately." :demand t :hook (after-init . global-company-mode) :custom - (company-idle-delay 0.25) + (company-idle-delay 0.15) (company-minimum-prefix-length 2) (company-require-match nil) (company-insertion-on-trigger nil) @@ -2367,12 +2367,7 @@ Timers that expired while Emacs was closed fire immediately." ;; ("C-c p h" . cape-history) ;; ("C-c p f" . cape-file) ;; ...) - :init - ;; Add to the global default value of `completion-at-point-functions' which is - ;; used by `completion-at-point'. The order of the functions matters, the - ;; first function returning a result wins. Note that the list of buffer-local - ;; completion functions takes precedence over the global list. - (add-hook 'completion-at-point-functions #'cape-file)) + :defer t) (use-package helm :ensure (:wait t) @@ -2431,7 +2426,7 @@ Timers that expired while Emacs was closed fire immediately." (citre-find-definition-backends '(my-index)) (citre-identifier-list-backends '(my-index)) (citre-tags-in-buffer-backends '(my-index)) - (citre-find-reference-backends '(global)) + (citre-find-reference-backends '(my-index)) (citre-capf-optimize-for-popup t) :config (require 'citre-index) @@ -2449,13 +2444,15 @@ Timers that expired while Emacs was closed fire immediately." my/citre-completion-context-filter 'safe my/citre-completion-source-order '(current-buffer live-buffer project dependency tags-file) my/citre-completion-annotation '(scope source count) + my/citre-index-excluded-roots + '("/nix/store/" "/gnu/store/" "~/go/pkg/mod/" "~/.cargo/registry/") my/citre-index-excluded-directories '(".git" ".hg" ".svn" ".direnv" ".venv" ".pixi" "__pycache__" "node_modules" "target" "build" "dist" "citre-cache" "elpaca" "elpa" "eln-cache" "tree-sitter" "workspaces")) (defun my/citre-completion-sources () "Use file completion before language sources and buffer words as a fallback." - (when (derived-mode-p 'prog-mode) + (when (and citre-mode (derived-mode-p 'prog-mode)) (setq-local completion-at-point-functions (cl-subst #'my/citre-completion-at-point #'citre-completion-at-point completion-at-point-functions)) (add-hook 'completion-at-point-functions #'cape-file nil t) @@ -3185,6 +3182,7 @@ BODY is the xonsh script. PARAMS may include :dir and :cmdline." (setq dired-dwim-target t) (setq delete-by-moving-to-trash t) (setq dired-mouse-drag-files t) + (setq dirvish-side-follow-mode t) (define-advice dirvish--preview-dps-validate (:around (fn &optional dps) tty-media-filter) @@ -3826,7 +3824,7 @@ place. `C-c C-c' commits, `C-c C-k' aborts." (keymap-set my/leader-file-map "s" #'save-buffer) (keymap-set my/leader-map "b" my/leader-buffer-map) -(keymap-set my/leader-buffer-map "b" #'helm-filtered-bookmarks) +(keymap-set my/leader-buffer-map "b" #'my/quick-access) (keymap-set my/leader-buffer-map "i" #'my/ibuffer-workspace) (keymap-set my/leader-buffer-map "p" #'projectile-ibuffer) (keymap-set my/leader-buffer-map "d" #'bookmark-delete) @@ -4007,11 +4005,8 @@ place. `C-c C-c' commits, `C-c C-k' aborts." (evil-define-key 'insert 'global (kbd "C-w") evil-window-map) (evil-define-key 'motion 'global (kbd "C-v") #'my/evil-mc-visual-block) -(keymap-global-set "M-b" #'my/quick-access) -(evil-define-key '(normal visual motion insert emacs) 'global - (kbd "M-b") #'my/quick-access) - (evil-define-key 'normal 'global + (kbd "S") #'flash-action (kbd "t") #'my/toggle-header-line-workspaces (kbd "K") #'my/eldoc-and-jump (kbd "] d") #'flycheck-next-error diff --git a/config.org b/config.org index 7fde0b0..2775f61 100644 --- a/config.org +++ b/config.org @@ -2662,7 +2662,7 @@ Auto switch silos (different workspaces/folders) based on preconfigured director :demand t :hook (after-init . global-company-mode) :custom - (company-idle-delay 0.25) + (company-idle-delay 0.15) (company-minimum-prefix-length 2) (company-require-match nil) (company-insertion-on-trigger nil) @@ -2763,12 +2763,7 @@ Auto switch silos (different workspaces/folders) based on preconfigured director ;; ("C-c p h" . cape-history) ;; ("C-c p f" . cape-file) ;; ...) - :init - ;; Add to the global default value of `completion-at-point-functions' which is - ;; used by `completion-at-point'. The order of the functions matters, the - ;; first function returning a result wins. Note that the list of buffer-local - ;; completion functions takes precedence over the global list. - (add-hook 'completion-at-point-functions #'cape-file)) + :defer t) #+end_src * helm-mode @@ -2839,7 +2834,7 @@ Auto switch silos (different workspaces/folders) based on preconfigured director (citre-find-definition-backends '(my-index)) (citre-identifier-list-backends '(my-index)) (citre-tags-in-buffer-backends '(my-index)) - (citre-find-reference-backends '(global)) + (citre-find-reference-backends '(my-index)) (citre-capf-optimize-for-popup t) :config (require 'citre-index) @@ -2857,13 +2852,15 @@ Auto switch silos (different workspaces/folders) based on preconfigured director my/citre-completion-context-filter 'safe my/citre-completion-source-order '(current-buffer live-buffer project dependency tags-file) my/citre-completion-annotation '(scope source count) + my/citre-index-excluded-roots + '("/nix/store/" "/gnu/store/" "~/go/pkg/mod/" "~/.cargo/registry/") my/citre-index-excluded-directories '(".git" ".hg" ".svn" ".direnv" ".venv" ".pixi" "__pycache__" "node_modules" "target" "build" "dist" "citre-cache" "elpaca" "elpa" "eln-cache" "tree-sitter" "workspaces")) (defun my/citre-completion-sources () "Use file completion before language sources and buffer words as a fallback." - (when (derived-mode-p 'prog-mode) + (when (and citre-mode (derived-mode-p 'prog-mode)) (setq-local completion-at-point-functions (cl-subst #'my/citre-completion-at-point #'citre-completion-at-point completion-at-point-functions)) (add-hook 'completion-at-point-functions #'cape-file nil t) @@ -3839,6 +3836,7 @@ moved to local.el (setq dired-dwim-target t) (setq delete-by-moving-to-trash t) (setq dired-mouse-drag-files t) + (setq dirvish-side-follow-mode t) (define-advice dirvish--preview-dps-validate (:around (fn &optional dps) tty-media-filter) @@ -4582,7 +4580,7 @@ place. `C-c C-c' commits, `C-c C-k' aborts." (keymap-set my/leader-file-map "s" #'save-buffer) (keymap-set my/leader-map "b" my/leader-buffer-map) -(keymap-set my/leader-buffer-map "b" #'helm-filtered-bookmarks) +(keymap-set my/leader-buffer-map "b" #'my/quick-access) (keymap-set my/leader-buffer-map "i" #'my/ibuffer-workspace) (keymap-set my/leader-buffer-map "p" #'projectile-ibuffer) (keymap-set my/leader-buffer-map "d" #'bookmark-delete) @@ -4771,11 +4769,8 @@ place. `C-c C-c' commits, `C-c C-k' aborts." (evil-define-key 'insert 'global (kbd "C-w") evil-window-map) (evil-define-key 'motion 'global (kbd "C-v") #'my/evil-mc-visual-block) -(keymap-global-set "M-b" #'my/quick-access) -(evil-define-key '(normal visual motion insert emacs) 'global - (kbd "M-b") #'my/quick-access) - (evil-define-key 'normal 'global + (kbd "S") #'flash-action (kbd "t") #'my/toggle-header-line-workspaces (kbd "K") #'my/eldoc-and-jump (kbd "] d") #'flycheck-next-error diff --git a/elpaca-lock.eld b/elpaca-lock.eld index 2ee16c4..9d8ee75 100644 --- a/elpaca-lock.eld +++ b/elpaca-lock.eld @@ -8,8 +8,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id ace-link :type git :protocol - https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id ace-link + :type git :protocol https :inherit t :depth + treeless :ref "d9bd4a25a02bdfde4ea56247daf3a9ff15632ea4")) (acp :source "elpaca-menu-lock-file" :recipe (:package "acp" :fetcher github :repo "xenodium/acp.el" :files @@ -22,16 +23,17 @@ "README*" "*-pkg.el")) :source "elpaca-menu-lock-file" :id acp :type git :protocol https :inherit t :depth treeless :ref - "7d5c16ebcf2af86aa0f14ad9ae0ce45df4e8c8a5")) + "242cef63d76cc1073485847f67a21f6d8406d158")) (adaptive-wrap :source "elpaca-menu-lock-file" :recipe (:package "adaptive-wrap" :repo ("https://github.com/emacsmirror/gnu_elpa" . "adaptive-wrap") :tar "0.9" :host gnu :branch "externals/adaptive-wrap" :files - ("*" (:exclude ".git")) :source "GNU ELPA" - :id adaptive-wrap :type git :protocol https - :inherit t :depth treeless :ref + ("*" (:exclude ".git")) :source + "elpaca-menu-lock-file" :id adaptive-wrap + :type git :protocol https :inherit t :depth + treeless :ref "e929b38c12f17aa6f8d6270326301d61fbb09cab")) (agent-shell :source "elpaca-menu-lock-file" :recipe (:package "agent-shell" :fetcher github :repo @@ -47,7 +49,7 @@ :source "elpaca-menu-lock-file" :id agent-shell :type git :protocol https :inherit t :depth treeless :ref - "0baa3537be2fa17f7b60fe67a994dc6486ae2ec9")) + "868850f5fa577c3178bcf75b00d0ad29db6a8ae4")) (alert :source "elpaca-menu-lock-file" :recipe (:package "alert" :fetcher github :repo "jwiegley/alert" :files @@ -58,9 +60,16 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id alert :type git :protocol https - :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id alert :type git + :protocol https :inherit t :depth treeless :ref "31fc56855289d0846e73d7ca9b84b628aeac16a0")) + (apheleia :source "elpaca-menu-lock-file" :recipe + (:package "apheleia" :fetcher github :repo + "radian-software/apheleia" :files + (:defaults ("scripts" "scripts/formatters")) + :source "MELPA" :id apheleia :type git :protocol + https :inherit t :depth treeless :ref + "047119b7c6f18ffdbf5f88116a427f7e38653cc6")) (async :source "elpaca-menu-lock-file" :recipe (:package "async" :repo "jwiegley/emacs-async" :fetcher github :files @@ -83,8 +92,8 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id avy :type git :protocol https - :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id avy :type git + :protocol https :inherit t :depth treeless :ref "933d1f36cca0f71e4acb5fac707e9ae26c536264")) (benchmark-init :source "elpaca-menu-lock-file" :recipe (:package "benchmark-init" :fetcher github :repo @@ -102,14 +111,10 @@ benchmark-init :wait t :type git :protocol https :inherit t :depth treeless :ref "54b9703389f25012e4cc20fe4a0d4ea253ce4820")) - (bluesky :source "elpaca-menu-lock-file" :recipe - (:source nil :package "bluesky" :id bluesky :host github - :repo "ahyatt/emacs-bluesky" :type git :protocol - https :inherit t :depth treeless :ref - "b4b7957a3af0533918535486f44afcb808d38d24")) (c3-ts-mode :source "elpaca-menu-lock-file" :recipe - (:source nil :package "c3-ts-mode" :id c3-ts-mode :host - github :repo "c3lang/c3-ts-mode" :ref + (:source "elpaca-menu-lock-file" :package "c3-ts-mode" + :id c3-ts-mode :host github :repo + "c3lang/c3-ts-mode" :ref "d6ad0e39351d4a5430e731d05474a064dcdb2bc6" :files ("c3-ts-mode.el") :type git :protocol https :inherit t :depth treeless)) @@ -122,9 +127,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id cape :wait t :type git :protocol - https :inherit t :depth treeless :ref - "bd827d913f487d2bb3815731ac20b60419b9cb03")) + :source "elpaca-menu-lock-file" :id cape :wait t + :type git :protocol https :inherit t :depth treeless + :ref "1c543fce9151821e8400258aefcfdee2fb24920d")) (citre :source "elpaca-menu-lock-file" :recipe (:package "citre" :repo "universal-ctags/citre" :fetcher github :files @@ -135,14 +140,15 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id citre :type git :protocol https - :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id citre :type git + :protocol https :inherit t :depth treeless :ref "be0d9c6dc9b1ac67d76fc7ed315f2369d5c3bde8")) (clatter :source "elpaca-menu-lock-file" :recipe - (:source nil :package "clatter" :id clatter :host github - :repo "parenworks/clatter.el" :type git :protocol - https :inherit t :depth treeless :ref - "8b1ae9949717da2491d4a0d869592a2c4d6ba2bf")) + (:source "elpaca-menu-lock-file" :package "clatter" :id + clatter :host github :repo "parenworks/clatter.el" + :type git :protocol https :inherit t :depth + treeless :ref + "df92d5c153b4321d2a4e287fed7adaef0f0242ca")) (clipetty :source "elpaca-menu-lock-file" :recipe (:package "clipetty" :repo "spudlyo/clipetty" :fetcher github :files @@ -157,24 +163,38 @@ :type git :protocol https :inherit t :depth treeless :ref "01b39044b9b65fa4ea7d3166f8b1ffab6f740362")) + (closql :source "elpaca-menu-lock-file" :recipe + (:package "closql" :fetcher github :repo "magit/closql" + :files + ("*.el" "*.el.in" "dir" "*.info" "*.texi" + "*.texinfo" "doc/dir" "doc/*.info" "doc/*.texi" + "doc/*.texinfo" "lisp/*.el" "docs/dir" + "docs/*.info" "docs/*.texi" "docs/*.texinfo" + (:exclude ".dir-locals.el" "test.el" "tests.el" + "*-test.el" "*-tests.el" "LICENSE" + "README*" "*-pkg.el")) + :source "MELPA" :id closql :type git :protocol + https :inherit t :depth treeless :ref + "d382e7427f5d375ffc872851b049e9f9c4a43dfc")) (colorful-mode :source "elpaca-menu-lock-file" :recipe (:package "colorful-mode" :repo ("https://github.com/DevelopmentCool2449/colorful-mode" . "colorful-mode") :tar "1.2.5" :host gnu :files - ("*" (:exclude ".git")) :source "GNU ELPA" - :id colorful-mode :type git :protocol https - :inherit t :depth treeless :ref - "6712e9c969bfa8fc8538a0c1bd57a8ef9f974780")) + ("*" (:exclude ".git")) :source + "elpaca-menu-lock-file" :id colorful-mode + :type git :protocol https :inherit t :depth + treeless :ref + "31d3974f7f2c7fddac24c954321f200845c015e8")) (company :source "elpaca-menu-lock-file" :recipe (:package "company" :fetcher github :repo "company-mode/company-mode" :files (:defaults "icons" ("images/small" "doc/images/small/*.png")) - :source "MELPA" :id company :type git :protocol - https :inherit t :depth treeless :ref - "1cc907ac9e46ae4209eb5a341131787e0c678406")) + :source "elpaca-menu-lock-file" :id company :type + git :protocol https :inherit t :depth treeless + :ref "1cc907ac9e46ae4209eb5a341131787e0c678406")) (compat :source "elpaca-menu-lock-file" :recipe (:package "compat" :repo ("https://github.com/emacs-compat/compat" @@ -183,7 +203,7 @@ ("*" (:exclude ".git")) :source "elpaca-menu-lock-file" :id compat :type git :protocol https :inherit t :depth treeless :ref - "ad2720457067b72859ba1247f6fdb3361b204bc6")) + "90880f81419577e1d3f68424d2a3adf31e6d663e")) (cond-let :source "elpaca-menu-lock-file" :recipe (:package "cond-let" :fetcher github :repo "tarsius/cond-let" @@ -197,7 +217,7 @@ "*-pkg.el")) :source "elpaca-menu-lock-file" :id cond-let :type git :protocol https :inherit t :depth treeless :ref - "c48600dfab6372670225f046cace263700c78eab")) + "3b88187fe067d4ca3dec3ef8a329b0ce18bdb356")) (dash :source "elpaca-menu-lock-file" :recipe (:package "dash" :fetcher github :repo "magnars/dash.el" :files ("dash.el" "dash.texi") :source @@ -209,9 +229,10 @@ ("https://github.com/protesilaos/denote" . "denote") :tar "4.2.3" :host gnu :files ("*" (:exclude ".git" "COPYING" "doclicense.texi")) - :source "GNU ELPA" :id denote :wait t :type git - :protocol https :inherit t :depth treeless :ref - "9ae9d0e1ea30b4fcc1700caafbd55a1ff08ad7b6")) + :source "elpaca-menu-lock-file" :id denote :wait t + :type git :protocol https :inherit t :depth + treeless :ref + "110ced99991125a0675a68dcefe8dfc3c50c5617")) (denote-agenda :source "elpaca-menu-lock-file" :recipe (:package "denote-agenda" :fetcher sourcehut :repo "swflint/denote-agenda" :files @@ -224,46 +245,49 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id denote-agenda :type git - :protocol https :inherit t :depth treeless - :ref + :source "elpaca-menu-lock-file" :id + denote-agenda :type git :protocol https + :inherit t :depth treeless :ref "51935f6c9372f320be1b873ae4205b77490572d0")) (denote-journal :source "elpaca-menu-lock-file" :recipe (:package "denote-journal" :repo ("https://github.com/protesilaos/denote-journal" . "denote-journal") :tar "0.3.0" :host gnu :files - ("*" (:exclude ".git")) :source "GNU ELPA" - :id denote-journal :type git :protocol - https :inherit t :depth treeless :ref + ("*" (:exclude ".git")) :source + "elpaca-menu-lock-file" :id denote-journal + :type git :protocol https :inherit t :depth + treeless :ref "374224ad2b3162c1fa92bb9ecdb61f157a781c4b")) (denote-merge :source "elpaca-menu-lock-file" :recipe - (:source nil :package "denote-merge" :id denote-merge - :host github :repo "protesilaos/denote-merge" - :type git :protocol https :inherit t :depth - treeless :ref + (:source "elpaca-menu-lock-file" :package + "denote-merge" :id denote-merge :host github + :repo "protesilaos/denote-merge" :type git + :protocol https :inherit t :depth treeless + :ref "2f8d168d37e66b5c8a3b983e211031b9abbf402e")) (denote-org :source "elpaca-menu-lock-file" :recipe (:package "denote-org" :repo ("https://github.com/protesilaos/denote-org" . "denote-org") :tar "0.3.0" :host gnu :files - ("*" (:exclude ".git")) :source "GNU ELPA" :id - denote-org :type git :protocol https :inherit t - :depth treeless :ref - "b6b788db84fbf0c918bce6b3ce65508dd651bb4c")) + ("*" (:exclude ".git")) :source + "elpaca-menu-lock-file" :id denote-org :type + git :protocol https :inherit t :depth treeless + :ref "d32a5db4e76be691949c3551617d228ff3496c63")) (denote-publish :source "elpaca-menu-lock-file" :recipe - (:source nil :package "denote-publish" :id - denote-publish :repo + (:source "elpaca-menu-lock-file" :package + "denote-publish" :id denote-publish :repo "https://github.com/vedang/denote-publish" :type git :protocol https :inherit t :depth treeless :ref "42fa69618f650cd7e1b60a6cf020ed21ab7d90ee")) (denote-solo :source "elpaca-menu-lock-file" :recipe - (:source nil :package "denote-solo" :id denote-solo - :host github :repo "pavlo/denote-solo" :type - git :protocol https :inherit t :depth treeless - :ref "69b25cbdecf8477e5e0a920a82f8f079209fd45e")) + (:source "elpaca-menu-lock-file" :package "denote-solo" + :id denote-solo :host github :repo + "pavlo/denote-solo" :type git :protocol https + :inherit t :depth treeless :ref + "69b25cbdecf8477e5e0a920a82f8f079209fd45e")) (diff-hl :source "elpaca-menu-lock-file" :recipe (:package "diff-hl" :fetcher github :repo "dgutov/diff-hl" :files @@ -274,9 +298,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id diff-hl :type git :protocol - https :inherit t :depth treeless :ref - "6f1df2b83d1140a2938409b35de7f4c9c7b1defd")) + :source "elpaca-menu-lock-file" :id diff-hl :type + git :protocol https :inherit t :depth treeless + :ref "b1ddfb3e4c68c8f6a4aee2e48e0016c3fb4c3803")) (diredfl :source "elpaca-menu-lock-file" :recipe (:package "diredfl" :fetcher github :repo "purcell/diredfl" :files @@ -287,15 +311,16 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id diredfl :type git :protocol - https :inherit t :depth treeless :ref - "fe72d2e42ee18bf6228bba9d7086de4098f18a70")) + :source "elpaca-menu-lock-file" :id diredfl :type + git :protocol https :inherit t :depth treeless + :ref "fe72d2e42ee18bf6228bba9d7086de4098f18a70")) (dirvish :source "elpaca-menu-lock-file" :recipe (:package "dirvish" :fetcher github :repo "latiagertrutis/dirvish" :files - (:defaults "extensions/*.el") :source "MELPA" :id - dirvish :host github :branch "main" :type git - :protocol https :inherit t :depth treeless :ref + (:defaults "extensions/*.el") :source + "elpaca-menu-lock-file" :id dirvish :host github + :branch "main" :type git :protocol https :inherit + t :depth treeless :ref "bf164ee21e128837ede59be03836a9900c4a41be")) (dotenv-mode :source "elpaca-menu-lock-file" :recipe (:package "dotenv-mode" :repo @@ -309,17 +334,18 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id dotenv-mode :type git - :protocol https :inherit t :depth treeless - :ref + :source "elpaca-menu-lock-file" :id + dotenv-mode :type git :protocol https :inherit + t :depth treeless :ref "e3701bf739bde44f6484eb7753deadaf691b73fb")) (elfeed :source "elpaca-menu-lock-file" :recipe (:package "elfeed" :fetcher github :repo "emacs-elfeed/elfeed" :files - (:defaults "README.md") :source "MELPA" :id elfeed - :host github :branch "main" :type git :protocol - https :inherit t :depth treeless :ref - "ccfdbf753819fe1ce2f97a1317749003c001443f")) + (:defaults "README.md") :source + "elpaca-menu-lock-file" :id elfeed :host github + :branch "main" :type git :protocol https :inherit t + :depth treeless :ref + "b39ca98c0ab05170cba943d6e31c5c2a3e285133")) (elfeed-goodies :source "elpaca-menu-lock-file" :recipe (:package "elfeed-goodies" :repo "jeetelongname/elfeed-goodies" :fetcher @@ -333,9 +359,9 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id elfeed-goodies :type - git :protocol https :inherit t :depth - treeless :ref + :source "elpaca-menu-lock-file" :id + elfeed-goodies :type git :protocol https + :inherit t :depth treeless :ref "544ef42ead011d960a0ad1c1d34df5d222461a6b")) (elfeed-protocol :source "elpaca-menu-lock-file" :recipe (:package "elfeed-protocol" :repo @@ -350,15 +376,16 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id elfeed-protocol :host - github :type git :protocol https :inherit - t :depth treeless :ref + :source "elpaca-menu-lock-file" :id + elfeed-protocol :host github :type git + :protocol https :inherit t :depth treeless + :ref "58936590459ccc2dfd6132f69983011d15d9404a")) (elpaca :source "elpaca-menu-lock-file" :recipe (:source nil :package "elpaca" :id elpaca :repo "https://github.com/progfolio/elpaca.git" :ref - "6530ffa73b18ccee858e7c471415ab7e0c0d8ce1" :depth 1 + "78b8e7cc98c198c8dbeb18140649e2d668126712" :depth 1 :inherit ignore :files (:defaults "elpaca-test.el" (:exclude "extensions")) :build (:not elpaca-activate) :type git :protocol https)) @@ -371,10 +398,16 @@ "extensions/elpaca-use-package.el" :build (:not elpaca-source elpaca-build-docs) - :source "Elpaca extensions" :id + :source "elpaca-menu-lock-file" :id elpaca-use-package :type git :protocol https :inherit t :depth treeless :ref - "6530ffa73b18ccee858e7c471415ab7e0c0d8ce1")) + "78b8e7cc98c198c8dbeb18140649e2d668126712")) + (emacsql :source "elpaca-menu-lock-file" :recipe + (:package "emacsql" :fetcher github :repo "magit/emacsql" + :files (:defaults "README.md" "sqlite") :source + "MELPA" :id emacsql :type git :protocol https + :inherit t :depth treeless :ref + "5430450af72ebe4917ff87a6bf3ac8f613f6dced")) (envrc :source "elpaca-menu-lock-file" :recipe (:package "envrc" :fetcher github :repo "purcell/envrc" :files ("*.el" "*.el.in" "dir" "*.info" "*.texi" @@ -384,38 +417,39 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id envrc :type git :protocol https - :inherit t :depth treeless :ref - "e4f9fd79a612c8f81b4ba5b12ee7261fc33568f0")) + :source "elpaca-menu-lock-file" :id envrc :type git + :protocol https :inherit t :depth treeless :ref + "1ecb82e01745d700578754eb35d6c1758290b869")) (esxml :source "elpaca-menu-lock-file" :recipe (:package "esxml" :fetcher github :repo "tali713/esxml" :files - ("esxml.el" "esxml-query.el") :source "MELPA" :id - esxml :type git :protocol https :inherit t :depth - treeless :ref + ("esxml.el" "esxml-query.el") :source + "elpaca-menu-lock-file" :id esxml :type git + :protocol https :inherit t :depth treeless :ref "6a375888a74b7563eb53176aad81faee8b858189")) (evil :source "elpaca-menu-lock-file" :recipe (:package "evil" :repo "emacs-evil/evil" :fetcher github :files (:defaults "doc/build/texinfo/evil.texi" (:exclude "evil-test-helpers.el")) - :source "MELPA" :id evil :wait t :type git :protocol - https :inherit t :depth treeless :ref - "6a3e1ddd04ac504a016590940d0af2a3361b9efd")) + :source "elpaca-menu-lock-file" :id evil :wait t + :type git :protocol https :inherit t :depth treeless + :ref "6a3e1ddd04ac504a016590940d0af2a3361b9efd")) (evil-collection :source "elpaca-menu-lock-file" :recipe (:package "evil-collection" :fetcher github :repo "emacs-evil/evil-collection" :files - (:defaults "modes") :source "MELPA" :id + (:defaults "modes") :source + "elpaca-menu-lock-file" :id evil-collection :wait t :type git :protocol https :inherit t :depth treeless :ref - "fa8da0ebba4bbf2a84a78183420d8303179ef427")) + "2cca4b8e479b1e7923bcef40d3006f6b7e33d996")) (evil-ghostel :source "elpaca-menu-lock-file" :recipe (:package "evil-ghostel" :fetcher github :repo "dakra/ghostel" :files ("extensions/evil-ghostel/*.el") :source - "MELPA" :id evil-ghostel :host github :type - git :protocol https :inherit t :depth - treeless :ref - "dd72e1f4ae891345a1f76ed98c5cbd71c18e808e")) + "elpaca-menu-lock-file" :id evil-ghostel + :host github :type git :protocol https + :inherit t :depth treeless :ref + "402ca634960142f13388fa24d223b6c7b0b2511e")) (evil-matchit :source "elpaca-menu-lock-file" :recipe (:package "evil-matchit" :fetcher github :repo "redguardtoo/evil-matchit" :files @@ -428,9 +462,9 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id evil-matchit :type git - :protocol https :inherit t :depth treeless - :ref + :source "elpaca-menu-lock-file" :id + evil-matchit :type git :protocol https + :inherit t :depth treeless :ref "dd03aacd8602ffd2cd9b67d0072092f8d57d5e01")) (evil-mc :source "elpaca-menu-lock-file" :recipe (:package "evil-mc" :fetcher github :repo "gabesoft/evil-mc" @@ -442,9 +476,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id evil-mc :type git :protocol - https :inherit t :depth treeless :ref - "7e363dd6b0a39751e13eb76f2e9b7b13c7054a43")) + :source "elpaca-menu-lock-file" :id evil-mc :type + git :protocol https :inherit t :depth treeless + :ref "7e363dd6b0a39751e13eb76f2e9b7b13c7054a43")) (evil-org :source "elpaca-menu-lock-file" :recipe (:package "evil-org" :fetcher github :repo "Somelauw/evil-org-mode" :files @@ -455,8 +489,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id evil-org :type git :protocol - https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id evil-org + :type git :protocol https :inherit t :depth + treeless :ref "b1f309726b1326e1a103742524ec331789f2bf94")) (evil-smartparens :source "elpaca-menu-lock-file" :recipe (:package "evil-smartparens" :fetcher github :repo @@ -470,9 +505,9 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id evil-smartparens - :type git :protocol https :inherit t - :depth treeless :ref + :source "elpaca-menu-lock-file" :id + evil-smartparens :type git :protocol + https :inherit t :depth treeless :ref "026d4a3cfce415a4dfae1457f871b385386e61d3")) (evil-surround :source "elpaca-menu-lock-file" :recipe (:package "evil-surround" :repo @@ -487,9 +522,9 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id evil-surround :type git - :protocol https :inherit t :depth treeless - :ref + :source "elpaca-menu-lock-file" :id + evil-surround :type git :protocol https + :inherit t :depth treeless :ref "e6548372e8359ee55e67d73ca418314086011f1a")) (evil-textobj-anyblock :source "elpaca-menu-lock-file" :recipe (:package "evil-textobj-anyblock" :fetcher @@ -507,7 +542,7 @@ "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id + :source "elpaca-menu-lock-file" :id evil-textobj-anyblock :type git :protocol https :inherit t :depth treeless :ref @@ -534,8 +569,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id flash :host github :type git - :protocol https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id flash :host + github :type git :protocol https :inherit t :depth + treeless :ref "db3bfa84866f143a0665d1b5a48c3b30dc7b528f")) (fontaine :source "elpaca-menu-lock-file" :recipe (:package "fontaine" :repo @@ -544,25 +580,30 @@ :tar "3.0.1" :host gnu :files ("*" (:exclude ".git" "COPYING" "doclicense.texi")) - :source "GNU ELPA" :id fontaine :type git - :protocol https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id fontaine + :type git :protocol https :inherit t :depth + treeless :ref "8cf9f6693e2a780b530ff5fd9920863b751d5bd5")) - (futur :source "elpaca-menu-lock-file" :recipe - (:package "futur" :repo - ("https://github.com/emacsmirror/gnu_elpa" . "futur") - :tar "1.7" :host gnu :branch "externals/futur" - :files ("*" (:exclude ".git")) :source "GNU ELPA" - :id futur :type git :protocol https :inherit t - :depth treeless :ref - "bcfc5c34b6a616d80bfbc41772a8f3a65e39b01a")) + (forge :source "elpaca-menu-lock-file" :recipe + (:package "forge" :fetcher github :repo "magit/forge" :files + ("lisp/*.el" "docs/*.texi" ".dir-locals.el") :source + "MELPA" :id forge :type git :protocol https :inherit + t :depth treeless :ref + "3662e218c808bd3497a8aa05f3ccb533fa60eaa4")) (ghostel :source "elpaca-menu-lock-file" :recipe (:package "ghostel" :fetcher github :repo "dakra/ghostel" :files (:defaults "etc" "src" "vendor" "build.zig" "build.zig.zon" "symbols.map") - :source "MELPA" :id ghostel :type git :protocol - https :inherit t :depth treeless :ref - "dd72e1f4ae891345a1f76ed98c5cbd71c18e808e")) + :source "elpaca-menu-lock-file" :id ghostel :type + git :protocol https :inherit t :depth treeless + :ref "402ca634960142f13388fa24d223b6c7b0b2511e")) + (ghub :source "elpaca-menu-lock-file" :recipe + (:package "ghub" :fetcher github :repo "magit/ghub" :files + ("lisp/*.el" "docs/*.texi" ".dir-locals.el") :source + "MELPA" :id ghub :type git :protocol https :inherit t + :depth treeless :ref + "c282b2fcaa35ee871a465b79f7d8bdb5afaa50dd")) (gntp :source "elpaca-menu-lock-file" :recipe (:package "gntp" :repo "tekai/gntp.el" :fetcher github :files ("*.el" "*.el.in" "dir" "*.info" "*.texi" "*.texinfo" @@ -572,9 +613,15 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id gntp :type git :protocol https - :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id gntp :type git + :protocol https :inherit t :depth treeless :ref "767571135e2c0985944017dc59b0be79af222ef5")) + (go-mode :source "elpaca-menu-lock-file" :recipe + (:package "go-mode" :repo "dominikh/go-mode.el" :fetcher + github :files ("go-mode.el") :source "MELPA" :id + go-mode :type git :protocol https :inherit t + :depth treeless :ref + "3a71d28ab47df685e54ca6046a7a3dd3e28b682c")) (golden-ratio :source "elpaca-menu-lock-file" :recipe (:package "golden-ratio" :repo "roman/golden-ratio.el" :fetcher github :files @@ -587,9 +634,9 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id golden-ratio :type git - :protocol https :inherit t :depth treeless - :ref + :source "elpaca-menu-lock-file" :id + golden-ratio :type git :protocol https + :inherit t :depth treeless :ref "375c9f287dfad68829582c1e0a67d0c18119dab9")) (goto-chg :source "elpaca-menu-lock-file" :recipe (:package "goto-chg" :repo "emacs-evil/goto-chg" :fetcher @@ -601,8 +648,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id goto-chg :type git :protocol - https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id goto-chg + :type git :protocol https :inherit t :depth + treeless :ref "72f556524b88e9d30dc7fc5b0dc32078c166fda7")) (helm :source "elpaca-menu-lock-file" :recipe (:package "helm" :fetcher github :repo "emacs-helm/helm" :files @@ -610,17 +658,18 @@ (:exclude "helm-lib.el" "helm-source.el" "helm-multi-match.el" "helm-core.el")) - :source "MELPA" :id helm :wait t :type git :protocol - https :inherit t :depth treeless :ref - "acff7751af0623f1bbebb1f3bf1ee4831f7f5035")) + :source "elpaca-menu-lock-file" :id helm :wait t + :type git :protocol https :inherit t :depth treeless + :ref "4f53c80b636a93bd09bbd45eb150f385834cb494")) (helm-core :source "elpaca-menu-lock-file" :recipe (:package "helm-core" :repo "emacs-helm/helm" :fetcher github :files ("helm-core.el" "helm-lib.el" "helm-source.el" "helm-multi-match.el") - :source "MELPA" :id helm-core :type git - :protocol https :inherit t :depth treeless :ref - "acff7751af0623f1bbebb1f3bf1ee4831f7f5035")) + :source "elpaca-menu-lock-file" :id helm-core + :type git :protocol https :inherit t :depth + treeless :ref + "4f53c80b636a93bd09bbd45eb150f385834cb494")) (helm-projectile :source "elpaca-menu-lock-file" :recipe (:package "helm-projectile" :repo "bbatsov/helm-projectile" :fetcher github @@ -634,9 +683,9 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id helm-projectile :type - git :protocol https :inherit t :depth - treeless :ref + :source "elpaca-menu-lock-file" :id + helm-projectile :type git :protocol https + :inherit t :depth treeless :ref "4dae1d072cc2650749846cfcab1f60686471cc45")) (helm-xref :source "elpaca-menu-lock-file" :recipe (:package "helm-xref" :repo "brotzeit/helm-xref" :fetcher @@ -648,8 +697,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id helm-xref :type git - :protocol https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id helm-xref + :type git :protocol https :inherit t :depth + treeless :ref "ea0e4ed8a9baf236e4085cbc7178241f109a53fa")) (hl-todo :source "elpaca-menu-lock-file" :recipe (:package "hl-todo" :fetcher github :repo "tarsius/hl-todo" @@ -661,8 +711,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id hl-todo :host github :type git - :protocol https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id hl-todo :host + github :type git :protocol https :inherit t :depth + treeless :ref "527d545b8c2f36243194cbe4a8d0e6ac9d50e6a7")) (ht :source "elpaca-menu-lock-file" :recipe (:package "ht" :fetcher github :repo "Wilfred/ht.el" :files @@ -688,9 +739,9 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id indent-guide :type git - :protocol https :inherit t :depth treeless - :ref + :source "elpaca-menu-lock-file" :id + indent-guide :type git :protocol https + :inherit t :depth treeless :ref "1332f95d6f08afee35f62621793e2622b9f86f27")) (inheritenv :source "elpaca-menu-lock-file" :recipe (:package "inheritenv" :fetcher github :repo @@ -703,22 +754,10 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id inheritenv :type git - :protocol https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id inheritenv + :type git :protocol https :inherit t :depth + treeless :ref "b9e67cc20c069539698a9ac54d0e6cc11e616c6f")) - (javelin :source "elpaca-menu-lock-file" :recipe - (:package "javelin" :fetcher github :repo - "DamianB-BitFlipper/javelin.el" :files - ("*.el" "*.el.in" "dir" "*.info" "*.texi" - "*.texinfo" "doc/dir" "doc/*.info" "doc/*.texi" - "doc/*.texinfo" "lisp/*.el" "docs/dir" - "docs/*.info" "docs/*.texi" "docs/*.texinfo" - (:exclude ".dir-locals.el" "test.el" "tests.el" - "*-test.el" "*-tests.el" "LICENSE" - "README*" "*-pkg.el")) - :source "MELPA" :id javelin :type git :protocol - https :inherit t :depth treeless :ref - "e2f1ccad5a7ad0dd38f62773723353081d57bae8")) (just-mode :source "elpaca-menu-lock-file" :recipe (:package "just-mode" :repo "leon-barrett/just-mode.el" :fetcher github :files @@ -729,9 +768,30 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id just-mode :type git - :protocol https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id just-mode + :type git :protocol https :inherit t :depth + treeless :ref "5513ab0350d2701a94deb8cafef57d3c369a5e9b")) + (justl :source "elpaca-menu-lock-file" :recipe + (:package "justl" :repo "psibi/justl.el" :fetcher github + :files + ("*.el" "*.el.in" "dir" "*.info" "*.texi" + "*.texinfo" "doc/dir" "doc/*.info" "doc/*.texi" + "doc/*.texinfo" "lisp/*.el" "docs/dir" + "docs/*.info" "docs/*.texi" "docs/*.texinfo" + (:exclude ".dir-locals.el" "test.el" "tests.el" + "*-test.el" "*-tests.el" "LICENSE" + "README*" "*-pkg.el")) + :source "MELPA" :id justl :type git :protocol https + :inherit t :depth treeless :ref + "25ce659d99cd0ca3a1696db1a08315aa4d1e7e1c")) + (kitty-graphics :source "elpaca-menu-lock-file" :recipe + (:source nil :package "kitty-graphics" :id + kitty-graphics :host github :repo + "cashmeredev/kitty-graphics.el" :type git + :protocol https :inherit t :depth treeless + :ref + "13666d4eb2ef4eeed24697c0326368eff3667dce")) (language-detection :source "elpaca-menu-lock-file" :recipe (:package "language-detection" :fetcher github :repo @@ -747,9 +807,9 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id language-detection - :type git :protocol https :inherit t - :depth treeless :ref + :source "elpaca-menu-lock-file" :id + language-detection :type git :protocol + https :inherit t :depth treeless :ref "54a6ecf55304fba7d215ef38a4ec96daff2f35a4")) (link-hint :source "elpaca-menu-lock-file" :recipe (:package "link-hint" :fetcher github :repo @@ -762,15 +822,16 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id link-hint :type git - :protocol https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id link-hint + :type git :protocol https :inherit t :depth + treeless :ref "8fda5dcb9caff5a3c49d22b82e570ac9e29af7dd")) (llama :source "elpaca-menu-lock-file" :recipe (:package "llama" :fetcher github :repo "tarsius/llama" :files ("llama.el" ".dir-locals.el") :source "elpaca-menu-lock-file" :id llama :type git :protocol https :inherit t :depth treeless :ref - "4d4024048053b898a01521046e0f063ee47615b0")) + "cfea618f14bc8317f8e4947fe10000b229b9a447")) (log4e :source "elpaca-menu-lock-file" :recipe (:package "log4e" :repo "aki2o/log4e" :fetcher github :files ("*.el" "*.el.in" "dir" "*.info" "*.texi" @@ -780,8 +841,8 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id log4e :type git :protocol https - :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id log4e :type git + :protocol https :inherit t :depth treeless :ref "6d71462df9bf595d3861bfb328377346aceed422")) (magit :source "elpaca-menu-lock-file" :recipe (:package "magit" :fetcher github :repo "magit/magit" :files @@ -790,9 +851,9 @@ ("githooks" "githooks/*") ("git-hooks" "git-hooks/*") (:exclude "lisp/magit-section.el")) - :source "MELPA" :id magit :wait t :type git - :protocol https :inherit t :depth treeless :ref - "bb426845dc2c182da316d64ea19efc837b303e85")) + :source "elpaca-menu-lock-file" :id magit :wait t + :type git :protocol https :inherit t :depth treeless + :ref "5a4defc82ba221c71c9d1903f26dfdf1501e3448")) (magit-delta :source "elpaca-menu-lock-file" :recipe (:package "magit-delta" :fetcher github :repo "dandavison/magit-delta" :files @@ -804,9 +865,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id magit-delta :type git - :protocol https :inherit t :depth treeless - :ref + :source "elpaca-menu-lock-file" :id + magit-delta :type git :protocol https :inherit + t :depth treeless :ref "5fc7dbddcfacfe46d3fd876172ad02a9ab6ac616")) (magit-section :source "elpaca-menu-lock-file" :recipe (:package "magit-section" :fetcher github :repo @@ -814,10 +875,10 @@ ("lisp/magit-section.el" "docs/magit-section.texi" "magit-section-pkg.el") - :source "MELPA" :id magit-section :type git - :protocol https :inherit t :depth treeless - :ref - "bb426845dc2c182da316d64ea19efc837b303e85")) + :source "elpaca-menu-lock-file" :id + magit-section :type git :protocol https + :inherit t :depth treeless :ref + "5a4defc82ba221c71c9d1903f26dfdf1501e3448")) (markdown-mode :source "elpaca-menu-lock-file" :recipe (:package "markdown-mode" :fetcher github :repo "jrblevin/markdown-mode" :files @@ -833,7 +894,7 @@ :source "elpaca-menu-lock-file" :id markdown-mode :type git :protocol https :inherit t :depth treeless :ref - "f441e8bc9951e73b12c61e9198658488dd8e86e1")) + "76cb4ffecfdf95ee769e5cb4608e04202c3c1521")) (minimal-dashboard :source "elpaca-menu-lock-file" :recipe (:package "minimal-dashboard" :fetcher github :repo @@ -849,18 +910,31 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id minimal-dashboard - :type git :protocol https :inherit t - :depth treeless :ref + :source "elpaca-menu-lock-file" :id + minimal-dashboard :type git :protocol + https :inherit t :depth treeless :ref "260a074d44eaa9e49576dca24c09cca54f1e193d")) (mode-line-maker :source "elpaca-menu-lock-file" :recipe (:package "mode-line-maker" :repo "rougier/mode-line-maker" :tar nil :host github :files ("*" (:exclude ".git")) - :source "GNU ELPA" :id mode-line-maker - :type git :protocol https :inherit t - :depth treeless :ref + :source "elpaca-menu-lock-file" :id + mode-line-maker :type git :protocol https + :inherit t :depth treeless :ref "dc0bd20750f34340448ba1c7be4ed2b62af0f78c")) + (msgpack :source "elpaca-menu-lock-file" :recipe + (:package "msgpack" :fetcher github :repo + "xuchunyang/msgpack.el" :files + ("*.el" "*.el.in" "dir" "*.info" "*.texi" + "*.texinfo" "doc/dir" "doc/*.info" "doc/*.texi" + "doc/*.texinfo" "lisp/*.el" "docs/dir" + "docs/*.info" "docs/*.texi" "docs/*.texinfo" + (:exclude ".dir-locals.el" "test.el" "tests.el" + "*-test.el" "*-tests.el" "LICENSE" + "README*" "*-pkg.el")) + :source "MELPA" :id msgpack :type git :protocol + https :inherit t :depth treeless :ref + "5353a7b2da854c843cbec4536996242001f63471")) (mu4e-alert :source "elpaca-menu-lock-file" :recipe (:package "mu4e-alert" :fetcher github :repo "xzz53/mu4e-alert" :files @@ -872,8 +946,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id mu4e-alert :type git - :protocol https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id mu4e-alert + :type git :protocol https :inherit t :depth + treeless :ref "9f20f30b15a5f5cc43fe448684fe1d4b981639aa")) (nerd-icons :source "elpaca-menu-lock-file" :recipe (:package "nerd-icons" :repo @@ -881,7 +956,7 @@ :files (:defaults "data") :source "elpaca-menu-lock-file" :id nerd-icons :type git :protocol https :inherit t :depth treeless - :ref "1e75075e323dedaf9f2fd5837082c60a2d0dfae3")) + :ref "17faac7977242b470732efd417d3bcc8eb5a830e")) (nerd-icons-dired :source "elpaca-menu-lock-file" :recipe (:package "nerd-icons-dired" :repo "rainstormstudio/nerd-icons-dired" @@ -895,9 +970,9 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id nerd-icons-dired - :type git :protocol https :inherit t - :depth treeless :ref + :source "elpaca-menu-lock-file" :id + nerd-icons-dired :type git :protocol + https :inherit t :depth treeless :ref "104acd8879528b8115589f35f1bbcbe231ad732f")) (nerd-icons-ibuffer :source "elpaca-menu-lock-file" :recipe (:package "nerd-icons-ibuffer" :repo @@ -928,9 +1003,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id nix-ts-mode :type git - :protocol https :inherit t :depth treeless - :ref + :source "elpaca-menu-lock-file" :id + nix-ts-mode :type git :protocol https :inherit + t :depth treeless :ref "09c89886a22b8e37ac0de9210ff5b2b79c520fd7")) (nov :source "elpaca-menu-lock-file" :recipe (:package "nov" :fetcher git :url @@ -942,8 +1017,8 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id nov :type git :protocol https - :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id nov :type git + :protocol https :inherit t :depth treeless :ref "874daf5e4791a6d4f47741422c80e2736e907351")) (ob-async :source "elpaca-menu-lock-file" :recipe (:package "ob-async" :repo "astahlman/ob-async" :fetcher @@ -969,8 +1044,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id olivetti :type git :protocol - https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id olivetti + :type git :protocol https :inherit t :depth + treeless :ref "d2ccae56b442d9c5b06dd2481057abbd7eb82551")) (org :source "elpaca-menu-lock-file" :recipe (:package "org" :host github :repo "emacsmirror/org" :autoloads @@ -1010,9 +1086,9 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id org-auto-tangle :type - git :protocol https :inherit t :depth - treeless :ref + :source "elpaca-menu-lock-file" :id + org-auto-tangle :type git :protocol https + :inherit t :depth treeless :ref "b4e7abc019179df473ecddf0af80561ddad8fc58")) (org-cliplink :source "elpaca-menu-lock-file" :recipe (:package "org-cliplink" :repo "rexim/org-cliplink" @@ -1026,10 +1102,18 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id org-cliplink :type git - :protocol https :inherit t :depth treeless - :ref + :source "elpaca-menu-lock-file" :id + org-cliplink :type git :protocol https + :inherit t :depth treeless :ref "13e0940b65d22bec34e2de4bc8cba1412a7abfbc")) + (org-clock-reminder :source "elpaca-menu-lock-file" :recipe + (:package "org-clock-reminder" :fetcher github + :repo "inickey/org-clock-reminder" + :files (:defaults "icons/*.png") + :source "MELPA" :id org-clock-reminder + :host github :type git :protocol https + :inherit t :depth treeless :ref + "d3bf97113fd519aa08198e2283ba9c236a6df168")) (org-contrib :source "elpaca-menu-lock-file" :recipe (:package "org-contrib" :host github :repo "emacsmirror/org-contrib" :files (:defaults) @@ -1049,9 +1133,9 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id org-download :type git - :protocol https :inherit t :depth treeless - :ref + :source "elpaca-menu-lock-file" :id + org-download :type git :protocol https + :inherit t :depth treeless :ref "c8be2611786d1d8d666b7b4f73582de1093f25ac")) (org-modern :source "elpaca-menu-lock-file" :recipe (:package "org-modern" :repo "minad/org-modern" :fetcher @@ -1068,13 +1152,6 @@ :type git :protocol https :inherit t :depth treeless :ref "d106d02cf045cc968c09989e9c48e0f2b44c574c")) - (org-other-agenda :source "elpaca-menu-lock-file" :recipe - (:source nil :package "org-other-agenda" :id - org-other-agenda :host github :repo - "yibie/org-other-agenda" :files ("*.el") - :type git :protocol https :inherit t - :depth treeless :ref - "ae23b51661d8f3b90d05c19d68000524419b7a63")) (org-ql :source "elpaca-menu-lock-file" :recipe (:package "org-ql" :fetcher github :repo "alphapapa/org-ql" :files (:defaults (:exclude "helm-org-ql.el")) @@ -1119,8 +1196,8 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id ox-gfm :type git :protocol - https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id ox-gfm :type + git :protocol https :inherit t :depth treeless :ref "4f774f13d34b3db9ea4ddb0b1edc070b1526ccbb")) (ox-json :source "elpaca-menu-lock-file" :recipe (:package "ox-json" :fetcher github :repo "jlumpe/ox-json" @@ -1132,9 +1209,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id ox-json :type git :protocol - https :inherit t :depth treeless :ref - "0f7c63b9bbbf6c8b2547e46adc7f34289869105f")) + :source "elpaca-menu-lock-file" :id ox-json :type + git :protocol https :inherit t :depth treeless + :ref "0f7c63b9bbbf6c8b2547e46adc7f34289869105f")) (ox-pandoc :source "elpaca-menu-lock-file" :recipe (:package "ox-pandoc" :repo "emacsorphanage/ox-pandoc" :fetcher github :files @@ -1145,8 +1222,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id ox-pandoc :wait t :type git - :protocol https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id ox-pandoc + :wait t :type git :protocol https :inherit t + :depth treeless :ref "1caeb56a4be26597319e7288edbc2cabada151b4")) (ox-typst :source "elpaca-menu-lock-file" :recipe (:package "ox-typst" :fetcher github :repo @@ -1158,9 +1236,10 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id ox-typst :host github :type - git :protocol https :inherit t :depth treeless - :ref "3e499609a201405a6064144792dab14e3cc19b93")) + :source "elpaca-menu-lock-file" :id ox-typst + :host github :type git :protocol https :inherit t + :depth treeless :ref + "3e499609a201405a6064144792dab14e3cc19b93")) (pass :source "elpaca-menu-lock-file" :recipe (:package "pass" :fetcher github :repo "NicolasPetton/pass" :files @@ -1171,15 +1250,16 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id pass :type git :protocol https - :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id pass :type git + :protocol https :inherit t :depth treeless :ref "143456809fd2dbece9f241f4361085e1de0b0e75")) (password-store :source "elpaca-menu-lock-file" :recipe (:package "password-store" :fetcher github :repo "zx2c4/password-store" :files - ("contrib/emacs/*.el") :source "MELPA" :id - password-store :type git :protocol https - :inherit t :depth treeless :ref + ("contrib/emacs/*.el") :source + "elpaca-menu-lock-file" :id password-store + :type git :protocol https :inherit t :depth + treeless :ref "3ca13cd8882cae4083c1c478858adbf2e82dd037")) (password-store-otp :source "elpaca-menu-lock-file" :recipe (:package "password-store-otp" :repo @@ -1195,9 +1275,9 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id password-store-otp - :type git :protocol https :inherit t - :depth treeless :ref + :source "elpaca-menu-lock-file" :id + password-store-otp :type git :protocol + https :inherit t :depth treeless :ref "be3a00a981921ed1b2f78012944dc25eb5a0beca")) (persp-mode :source "elpaca-menu-lock-file" :recipe (:package "persp-mode" :repo "Bad-ptr/persp-mode.el" @@ -1210,17 +1290,10 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id persp-mode :type git - :protocol https :inherit t :depth treeless :ref - "fab4bf76927445d2e431f06e74572acba81f47d5")) - (plz :source "elpaca-menu-lock-file" :recipe - (:package "plz" :repo - ("https://github.com/alphapapa/plz.el.git" . "plz") - :tar "0.9.1" :host gnu :files - ("*" (:exclude ".git" "LICENSE")) :source "GNU ELPA" - :id plz :type git :protocol https :inherit t :depth - treeless :ref - "e2d07838e3b64ee5ebe59d4c3c9011adefb7b58e")) + :source "elpaca-menu-lock-file" :id persp-mode + :type git :protocol https :inherit t :depth + treeless :ref + "4cd5f47bd7208e4dbefe8053ec6d26271ce2ea88")) (popwin :source "elpaca-menu-lock-file" :recipe (:package "popwin" :fetcher github :repo "emacsorphanage/popwin" :files @@ -1231,8 +1304,8 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id popwin :type git :protocol - https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id popwin :type + git :protocol https :inherit t :depth treeless :ref "b67254bef763ffa5ab781460bc47d6adf6f87127")) (posframe :source "elpaca-menu-lock-file" :recipe (:package "posframe" :fetcher github :repo @@ -1244,9 +1317,10 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id posframe :type git :protocol - https :inherit t :depth treeless :ref - "74c8c56131ed866db47ae4191364b72dd4852456")) + :source "elpaca-menu-lock-file" :id posframe + :type git :protocol https :inherit t :depth + treeless :ref + "bdabcec96f127b2daa2f8bf988a71ec146e301d5")) (powerline :source "elpaca-menu-lock-file" :recipe (:package "powerline" :fetcher github :repo "milkypostman/powerline" :files @@ -1257,8 +1331,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id powerline :type git - :protocol https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id powerline + :type git :protocol https :inherit t :depth + treeless :ref "c35c35bdf5ce2d992882c1f06f0f078058870d4a")) (projectile :source "elpaca-menu-lock-file" :recipe (:package "projectile" :fetcher github :repo @@ -1271,17 +1346,18 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id projectile :wait t :type - git :protocol https :inherit t :depth treeless - :ref "10fa39917aa3a5c7f64aae31da49b4dfd9f6eb55")) + :source "elpaca-menu-lock-file" :id projectile + :wait t :type git :protocol https :inherit t + :depth treeless :ref + "f902073c1d10bb125875470c9dcbdcd7c9a1eefb")) (pulsar :source "elpaca-menu-lock-file" :recipe (:package "pulsar" :repo ("https://github.com/protesilaos/pulsar" . "pulsar") :tar "1.3.4" :host gnu :files ("*" (:exclude ".git" "COPYING" "doclicense.texi")) - :source "GNU ELPA" :id pulsar :type git :protocol - https :inherit t :depth treeless :ref - "1849c0720c3fe5eb92f800b20351b58bce8804b6")) + :source "elpaca-menu-lock-file" :id pulsar :type + git :protocol https :inherit t :depth treeless :ref + "b82c595ff67b127ea1bcb2a17aa423d72cbbe8c4")) (pyvenv :source "elpaca-menu-lock-file" :recipe (:package "pyvenv" :fetcher github :repo "jorgenschaefer/pyvenv" :files @@ -1292,8 +1368,8 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id pyvenv :type git :protocol - https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id pyvenv :type + git :protocol https :inherit t :depth treeless :ref "31ea715f2164dd611e7fc77b26390ef3ca93509b")) (rainbow-delimiters :source "elpaca-menu-lock-file" :recipe (:package "rainbow-delimiters" :fetcher github @@ -1309,9 +1385,9 @@ "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id rainbow-delimiters - :type git :protocol https :inherit t - :depth treeless :ref + :source "elpaca-menu-lock-file" :id + rainbow-delimiters :type git :protocol + https :inherit t :depth treeless :ref "f40ece58df8b2f0fb6c8576b527755a552a5e763")) (s :source "elpaca-menu-lock-file" :recipe (:package "s" :fetcher github :repo "magnars/s.el" :files @@ -1339,7 +1415,7 @@ :source "elpaca-menu-lock-file" :id shell-maker :type git :protocol https :inherit t :depth treeless :ref - "ab4f8ebaf4ef7a7db4762c5d5075baea580044ba")) + "f448a74a8eded23aa42f8d60a41c5d8d3a183d07")) (shr-tag-pre-highlight :source "elpaca-menu-lock-file" :recipe (:package "shr-tag-pre-highlight" :fetcher github :repo @@ -1356,11 +1432,11 @@ "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id + :source "elpaca-menu-lock-file" :id shr-tag-pre-highlight :host github :type git :protocol https :inherit t :depth treeless :ref - "02a93d48f030d71eba460bd09d091baedcad6626")) + "9f674822afb9ba09ce1ced776af003374d1c5ccf")) (shrface :source "elpaca-menu-lock-file" :recipe (:package "shrface" :fetcher github :repo "chenyanming/shrface" :files @@ -1371,9 +1447,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id shrface :type git :protocol - https :inherit t :depth treeless :ref - "6dad83387dcdd7b018c34c9ec6799926e54e66ec")) + :source "elpaca-menu-lock-file" :id shrface :type + git :protocol https :inherit t :depth treeless + :ref "6dad83387dcdd7b018c34c9ec6799926e54e66ec")) (smartparens :source "elpaca-menu-lock-file" :recipe (:package "smartparens" :fetcher github :repo "Fuco1/smartparens" :files @@ -1385,9 +1461,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id smartparens :type git - :protocol https :inherit t :depth treeless - :ref + :source "elpaca-menu-lock-file" :id + smartparens :type git :protocol https :inherit + t :depth treeless :ref "82d2cf084a19b0c2c3812e0550721f8a61996056")) (sops :source "elpaca-menu-lock-file" :recipe (:package "sops" :fetcher github :repo "djgoku/sops" :files @@ -1398,14 +1474,15 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id sops :type git :host github - :protocol https :inherit t :depth treeless :ref - "95b2178a71dcbf3e69729c52cba2bc23171e059d")) + :source "elpaca-menu-lock-file" :id sops :type git + :host github :protocol https :inherit t :depth + treeless :ref + "07fd550969fe164f71aab89c93338f8993fbd9e6")) (textui :source "elpaca-menu-lock-file" :recipe - (:source nil :package "textui" :id textui :host github :repo - "yibie/textui" :files ("*.el") :type git :protocol - https :inherit t :depth treeless :ref - "ce37202ec910e03008bd50472b2df1217b5f1a7e")) + (:source "elpaca-menu-lock-file" :package "textui" :id textui + :host github :repo "yibie/textui" :files ("*.el") + :type git :protocol https :inherit t :depth treeless + :ref "ce37202ec910e03008bd50472b2df1217b5f1a7e")) (tldr :source "elpaca-menu-lock-file" :recipe (:package "tldr" :fetcher github :repo "kuanyui/tldr.el" :files ("*.el" "*.el.in" "dir" "*.info" "*.texi" "*.texinfo" @@ -1415,8 +1492,8 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id tldr :type git :protocol https - :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id tldr :type git + :protocol https :inherit t :depth treeless :ref "1b09d2032491d3904bd7ee9bf5ba7c7503db6593")) (tmr :source "elpaca-menu-lock-file" :recipe (:package "tmr" :repo "protesilaos/tmr" :tar "1.3.0" :host @@ -1424,9 +1501,15 @@ ("*" (:exclude ".git" "COPYING" "doclicense.texi" "Makefile")) - :source "GNU ELPA" :id tmr :type git :protocol https - :inherit t :depth treeless :ref - "de456e7ea5bb2ace79349f17a81f9557b610f6e0")) + :source "elpaca-menu-lock-file" :id tmr :type git + :protocol https :inherit t :depth treeless :ref + "b967e413e295045bbf12ec0e2c90932ec2bc8780")) + (tramp-rpc :source "elpaca-menu-lock-file" :recipe + (:source nil :package "tramp-rpc" :id tramp-rpc :host + github :repo "ArthurHeymans/emacs-tramp-rpc" :ref + "948e42a76a97947fb2a00e2815f958b7e7b40534" + :lisp-dir "lisp" :type git :protocol https + :inherit t :depth treeless)) (transient :source "elpaca-menu-lock-file" :recipe (:package "transient" :fetcher github :repo "magit/transient" :files @@ -1440,7 +1523,20 @@ :source "elpaca-menu-lock-file" :id transient :wait t :type git :protocol https :inherit t :depth treeless :ref - "416bddb37eda2f838f1e08dddde208dae271cc39")) + "a3e26414f2516f6443182e13e1d98882e1b209d6")) + (treepy :source "elpaca-menu-lock-file" :recipe + (:package "treepy" :repo "volrath/treepy.el" :fetcher github + :files + ("*.el" "*.el.in" "dir" "*.info" "*.texi" + "*.texinfo" "doc/dir" "doc/*.info" "doc/*.texi" + "doc/*.texinfo" "lisp/*.el" "docs/dir" + "docs/*.info" "docs/*.texi" "docs/*.texinfo" + (:exclude ".dir-locals.el" "test.el" "tests.el" + "*-test.el" "*-tests.el" "LICENSE" + "README*" "*-pkg.el")) + :source "MELPA" :id treepy :type git :protocol + https :inherit t :depth treeless :ref + "806c000bd40153d17dfa5709c6d19546d507a416")) (ts :source "elpaca-menu-lock-file" :recipe (:package "ts" :fetcher github :repo "alphapapa/ts.el" :files ("*.el" "*.el.in" "dir" "*.info" "*.texi" "*.texinfo" @@ -1459,9 +1555,9 @@ . "typst-ts-mode") :tar "0.12.2" :host nongnu :files ("*" (:exclude ".git")) :source - "NonGNU ELPA" :id typst-ts-mode :type git - :protocol https :inherit t :depth treeless - :ref + "elpaca-menu-lock-file" :id typst-ts-mode + :type git :protocol https :inherit t :depth + treeless :ref "155bb36cff3afe701a0f6b57bd3fe5c9effaa314")) (vc-fossil :source "elpaca-menu-lock-file" :recipe (:package "vc-fossil" :fetcher github :repo @@ -1479,9 +1575,9 @@ "4a4a3e4df83ba2f1ea8bfd8aa7e9f9b2c1c32ca9")) (vui :source "elpaca-menu-lock-file" :recipe (:package "vui" :fetcher github :repo "d12frosted/vui.el" :files - ("*.el") :source "MELPA" :id vui :host github :ref - "8cecdcafeb306f654c5eed1847a0c36cb6ff370b" :type git - :protocol https :inherit t :depth treeless)) + ("*.el") :source "elpaca-menu-lock-file" :id vui :host + github :ref "8cecdcafeb306f654c5eed1847a0c36cb6ff370b" + :type git :protocol https :inherit t :depth treeless)) (wfnames :source "elpaca-menu-lock-file" :recipe (:package "wfnames" :fetcher github :repo "thierryvolpiatto/wfnames" :files @@ -1492,21 +1588,22 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id wfnames :type git :protocol - https :inherit t :depth treeless :ref - "d8839fa42a24f7c781cd2d8c3f40eda31faa19be")) + :source "elpaca-menu-lock-file" :id wfnames :type + git :protocol https :inherit t :depth treeless + :ref "d8839fa42a24f7c781cd2d8c3f40eda31faa19be")) (wgrep :source "elpaca-menu-lock-file" :recipe (:package "wgrep" :fetcher github :repo "mhayashi1120/Emacs-wgrep" :files ("wgrep.el") - :source "MELPA" :id wgrep :type git :protocol https - :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id wgrep :type git + :protocol https :inherit t :depth treeless :ref "49f09ab9b706d2312cab1199e1eeb1bcd3f27f6f")) (wgrep-helm :source "elpaca-menu-lock-file" :recipe (:package "wgrep-helm" :fetcher github :repo "mhayashi1120/Emacs-wgrep" :files ("wgrep-helm.el") :version-regexp "helm-%v" - :source "MELPA" :id wgrep-helm :type git - :protocol https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id wgrep-helm + :type git :protocol https :inherit t :depth + treeless :ref "49f09ab9b706d2312cab1199e1eeb1bcd3f27f6f")) (which-key :source "elpaca-menu-lock-file" :recipe (:package "which-key" :repo "justbur/emacs-which-key" @@ -1518,8 +1615,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id which-key :type git - :protocol https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id which-key + :type git :protocol https :inherit t :depth + treeless :ref "38d4308d1143b61e4004b6e7a940686784e51500")) (with-editor :source "elpaca-menu-lock-file" :recipe @@ -1532,9 +1630,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id with-editor :type git :protocol https - :inherit t :depth treeless :ref - "a1f92a26e53033ec58e1d2ce9b132da7ebae816e")) + :source "elpaca-menu-lock-file" :id with-editor :type git + :protocol https :inherit t :depth treeless :ref + "53115f978576e043e050fd04d0cb7517296727e9")) (xonsh-mode :source "elpaca-menu-lock-file" :recipe (:package "xonsh-mode" :repo "seanfarley/xonsh-mode" :fetcher github :files @@ -1546,9 +1644,9 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id xonsh-mode :host github - :type git :protocol https :inherit t :depth - treeless :ref + :source "elpaca-menu-lock-file" :id xonsh-mode + :host github :type git :protocol https :inherit + t :depth treeless :ref "7fa581524533a9b6b770426e4445e571a69e469d")) (xterm-color :source "elpaca-menu-lock-file" :recipe (:package "xterm-color" :repo "atomontage/xterm-color" @@ -1561,25 +1659,39 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id xterm-color :type git - :protocol https :inherit t :depth treeless - :ref + :source "elpaca-menu-lock-file" :id + xterm-color :type git :protocol https :inherit + t :depth treeless :ref "ffdad85e584dfc0857f2a1fb970f5ef0f5d31ba3")) + (yaml :source "elpaca-menu-lock-file" :recipe + (:package "yaml" :repo "zkry/yaml.el" :fetcher github :files + ("*.el" "*.el.in" "dir" "*.info" "*.texi" "*.texinfo" + "doc/dir" "doc/*.info" "doc/*.texi" "doc/*.texinfo" + "lisp/*.el" "docs/dir" "docs/*.info" "docs/*.texi" + "docs/*.texinfo" + (:exclude ".dir-locals.el" "test.el" "tests.el" + "*-test.el" "*-tests.el" "LICENSE" + "README*" "*-pkg.el")) + :source "MELPA" :id yaml :type git :protocol https + :inherit t :depth treeless :ref + "5546f36bde24a9a8c1934e0f6ce205cd41d72537")) (yasnippet :source "elpaca-menu-lock-file" :recipe (:package "yasnippet" :fetcher github :repo "joaotavora/yasnippet" :files - (:defaults ("doc" "doc/*.org")) :source "MELPA" - :id yasnippet :wait t :type git :protocol https - :inherit t :depth treeless :ref + (:defaults ("doc" "doc/*.org")) :source + "elpaca-menu-lock-file" :id yasnippet :wait t + :type git :protocol https :inherit t :depth + treeless :ref "c1e6ff23e9af16b856c88dfaab9d3ad7b746ad37")) (yasnippet-snippets :source "elpaca-menu-lock-file" :recipe (:package "yasnippet-snippets" :repo "AndreaCrotti/yasnippet-snippets" :fetcher github :files ("*.el" "snippets" ".nosearch") :source - "MELPA" :id yasnippet-snippets :wait t - :type git :protocol https :inherit t - :depth treeless :ref + "elpaca-menu-lock-file" :id + yasnippet-snippets :wait t :type git + :protocol https :inherit t :depth + treeless :ref "606ee926df6839243098de6d71332a697518cb86")) (zoom :source "elpaca-menu-lock-file" :recipe (:package "zoom" :repo "cyrus-and/zoom" :fetcher github :files @@ -1590,8 +1702,8 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id zoom :type git :protocol https - :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id zoom :type git + :protocol https :inherit t :depth treeless :ref "5e524d98c7f2b4dd6ed41d95573b29b263632eb2")) (zoxide :source "elpaca-menu-lock-file" :recipe (:package "zoxide" :fetcher sourcehut :repo @@ -1603,6 +1715,6 @@ (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el" "LICENSE" "README*" "*-pkg.el")) - :source "MELPA" :id zoxide :type git :protocol - https :inherit t :depth treeless :ref + :source "elpaca-menu-lock-file" :id zoxide :type + git :protocol https :inherit t :depth treeless :ref "0ec359c83b041c8ffe2ec0e70b16c5d218d9bfd9"))) diff --git a/lisp/citre-backend.el b/lisp/citre-backend.el index eefdd31..9169d31 100644 --- a/lisp/citre-backend.el +++ b/lisp/citre-backend.el @@ -31,6 +31,12 @@ The value `safe' filters by an explicitly declared receiver type only when at le :type '(set (const scope) (const source) (const count)) :group 'my/citre) +(defcustom my/citre-reference-program "rg" + "Program used to search references. +It must accept ripgrep's options and honour the project's ignore files." + :type 'string + :group 'my/citre) + (defcustom my/citre-completion-type-resolvers '(my/citre-backend--resolve-go-type my/citre-backend--resolve-rust-or-python-type @@ -248,14 +254,14 @@ Each function receives a receiver name and the beginning of its member expressio (let* ((type (plist-get context :type)) (matching (and type (seq-filter (lambda (tag) (my/citre-backend--scope-match-p type tag)) tags))) (visible (if (and (eq my/citre-completion-context-filter 'safe) matching) matching tags)) - (groups (make-hash-table :test #'equal)) (current-scope (my/citre-backend--current-scope))) - (dolist (tag tags) - (push tag (gethash (citre-get-tag-field 'name tag) groups))) (setq visible (sort visible (lambda (a b) (my/citre-backend--rank-less-p a b context current-scope)))) (if (not (eq my/citre-completion-deduplication 'name)) visible - (let ((seen (make-hash-table :test #'equal)) result) + (let ((groups (make-hash-table :test #'equal)) + (seen (make-hash-table :test #'equal)) result) + (dolist (tag tags) + (push tag (gethash (citre-get-tag-field 'name tag) groups))) (dolist (tag visible (nreverse result)) (let ((name (citre-get-tag-field 'name tag))) (unless (gethash name seen) @@ -316,16 +322,15 @@ Each function receives a receiver name and the beginning of its member expressio (context (list revision (car bounds) major-mode citre-tags-substr-completion (buffer-substring-no-properties (line-beginning-position) (car bounds)) member-context)) - (tick (buffer-chars-modified-tick)) (cache my/citre-backend--completion-cache) (tags (if (and revision (equal context (plist-get cache :context)) (string-prefix-p (plist-get cache :prefix) symbol)) - (progn (plist-put cache :tick tick) (plist-get cache :tags)) + (plist-get cache :tags) (let ((tags (my/citre-backend--prepare-completions (my/citre-backend--query 'completion) member-context))) (setq my/citre-backend--completion-cache (list :context context :prefix (substring-no-properties symbol) - :tick tick :tags tags)) + :tags tags)) tags)))) (when tags (list (car bounds) (cdr bounds) tags))))) @@ -359,6 +364,44 @@ Each function receives a receiver name and the beginning of its member expressio "Return the current file's symbols for Imenu, including unsaved changes." (my/citre-backend--query 'imenu)) +(defun my/citre-backend--reference-root () + "Return the directory searched for references." + (or (and my/citre-index--state (my/citre-index-state-root my/citre-index--state)) + (when-let* ((project (project-current nil))) (project-root project)) + default-directory)) + +(defun my/citre-backend-references-of-id (identifier) + "Return textual references to IDENTIFIER below the project root. +Universal Ctags records definitions only, so references come from a +whole-word search that honours the project's ignore files." + (when-let* ((program (executable-find my/citre-reference-program)) + (name (substring-no-properties identifier)) + (root (my/citre-backend--reference-root))) + (unless (string-empty-p name) + (let ((default-directory root) tags) + (with-temp-buffer + (process-file program nil t nil + "--no-heading" "--line-number" "--color=never" + "--word-regexp" "--fixed-strings" "--" name ".") + (goto-char (point-min)) + (while (not (eobp)) + ;; Citre renders the matched line from the file itself, so only the + ;; location is recorded here. + (when (looking-at "\\([^:\n]+\\):\\([0-9]+\\):") + (push (citre-make-tag + 'name name + 'ext-abspath (expand-file-name (match-string-no-properties 1) root) + 'line (match-string-no-properties 2) + 'extras "reference") + tags)) + (forward-line 1))) + (nreverse tags))))) + +(defun my/citre-backend-references () + "Return textual references to the symbol at point." + (when-let* ((symbol (citre-tags-symbol-at-point))) + (my/citre-backend-references-of-id symbol))) + (defun my/citre-backend-usable-p () "Whether the current buffer has an automatic or conventional tags index." (or my/citre-index--state (citre-tags-usable-p))) @@ -381,6 +424,8 @@ Each function receives a receiver name and the beginning of its member expressio :completions-fn #'my/citre-backend-completions :defs-fn #'my/citre-backend-definitions :defs-of-id-fn #'my/citre-backend-definitions-of-id + :refs-fn #'my/citre-backend-references + :refs-of-id-fn #'my/citre-backend-references-of-id :id-list-fn #'my/citre-backend-identifiers :tags-in-buffer-fn #'my/citre-backend-imenu :after-jump-fn #'my/citre-index-attach)) diff --git a/lisp/citre-index.el b/lisp/citre-index.el index 99dda7b..6764648 100644 --- a/lisp/citre-index.el +++ b/lisp/citre-index.el @@ -25,6 +25,11 @@ "Maximum buffer size for live snapshots; larger files use the disk index." :type 'integer :group 'my/citre) (defcustom my/citre-index-process-timeout 120 "Maximum seconds for a disk-index worker." :type 'number :group 'my/citre) +(defcustom my/citre-index-excluded-roots + '("/nix/store/" "/gnu/store/" "~/go/pkg/mod/" "~/.cargo/registry/") + "Directories whose contents never become a project of their own. +Symbols from an immutable dependency store reach completion through the +dependency index of the project that uses them." :type '(repeat directory) :group 'my/citre) (defcustom my/citre-index-excluded-directories '(".git" ".hg" ".svn" ".direnv" ".venv" ".pixi" "__pycache__" "node_modules" "target" "build" "dist" "citre-cache") "Directory names excluded from automatic project and live-buffer indexing." :type '(repeat string) :group 'my/citre) @@ -36,7 +41,12 @@ (cl-defstruct (my/citre-index-state (:constructor my/citre-index--make-state)) root cache environment paths arguments disk-process live-process disk-timer live-timer pending force - entries watches live-directory error checked (revision 0)) + entries watches live-directory retired error checked (revision 0)) + +(defvar my/citre-index--snapshot-grace 5 + "Seconds a superseded live snapshot stays on disk before it is deleted. +A query that already collected a snapshot path keeps `readtags' able to +open it until it has finished.") (defvar my/citre-index--projects (make-hash-table :test #'equal)) (defvar my/citre-index--timer nil) @@ -57,14 +67,23 @@ (not (cl-intersection (split-string buffer-file-name "/" t) my/citre-index-excluded-directories :test #'equal)))) +(defun my/citre-index--excluded-root-p (root) + "Whether ROOT lies inside `my/citre-index-excluded-roots'." + (cl-some (lambda (directory) + (string-prefix-p (file-name-as-directory + (file-truename (expand-file-name directory))) + root)) + my/citre-index-excluded-roots)) + (defun my/citre-index--root () "Find a local project root without prompting." (when (my/citre-index--eligible-p) (when-let* ((root (or (and (fboundp 'projectile-project-root) (ignore-errors (projectile-project-root))) (when-let* ((project (project-current nil))) - (project-root project))))) - (file-name-as-directory (file-truename root))))) + (project-root project)))) + (root (file-name-as-directory (file-truename root)))) + (unless (my/citre-index--excluded-root-p root) root)))) (defun my/citre-index--buffers (state) "Return living buffers attached to STATE." @@ -89,6 +108,21 @@ (my/citre-index-state-paths state) (copy-sequence exec-path) (my/citre-index-state-arguments state) (copy-sequence my/project-ctags-arguments))) +(defun my/citre-index--retire-file (state file) + "Schedule FILE of STATE for deletion once in-flight readers have finished." + (when file + (push (cons (current-time) file) (my/citre-index-state-retired state)))) + +(defun my/citre-index--collect-retired (state) + "Delete retired snapshots of STATE that no in-flight query can still open." + (setf (my/citre-index-state-retired state) + (cl-remove-if (lambda (entry) + (when (time-less-p (time-add (car entry) my/citre-index--snapshot-grace) + (current-time)) + (ignore-errors (delete-file (cdr entry))) + t)) + (my/citre-index-state-retired state)))) + (defun my/citre-index--cancel-timer (timer) "Cancel TIMER if it exists." (when (timerp timer) (cancel-timer timer))) @@ -167,7 +201,7 @@ (condition-case error (let ((manifest (process-get process 'manifest))) (setf (my/citre-index-state-error state) nil - (my/citre-index-state-checked state) (current-time)) + (my/citre-index-state-checked state) (process-get process 'started)) (my/citre-index--watch state (alist-get 'directories manifest)) (when (process-get process 'changed) (my/citre-index--updated state))) @@ -179,6 +213,7 @@ (defun my/citre-index--start-disk (state) "Start or coalesce the next disk check for STATE." (setf (my/citre-index-state-disk-timer state) nil) + (my/citre-index--collect-retired state) (when (and my/citre-index-mode (my/citre-index--buffers state)) (if (process-live-p (my/citre-index-state-disk-process state)) (setf (my/citre-index-state-pending state) t) @@ -196,6 +231,7 @@ (setf (my/citre-index-state-disk-process state) process (my/citre-index-state-pending state) nil (my/citre-index-state-force state) nil) + (process-put process 'started (current-time)) (process-put process 'timeout (run-at-time my/citre-index-process-timeout nil (lambda () (when (process-live-p process) (delete-process process)))))) @@ -210,6 +246,15 @@ (setf (my/citre-index-state-disk-timer state) (run-at-time my/citre-index-refresh-delay nil #'my/citre-index--start-disk state))))) +(defun my/citre-index--snapshot-needed-p (state entry buffer) + "Whether ENTRY still holds content the disk index of STATE does not have. +A snapshot of an unmodified buffer is superseded once a disk check that +started after it has published its result." + (or (buffer-modified-p buffer) + (let ((checked (my/citre-index-state-checked state)) + (time (plist-get entry :time))) + (not (and checked time (time-less-p time checked)))))) + (defun my/citre-index-live-entries (state) "Return valid live entries in STATE and retire entries of detached or renamed buffers." (let (entries retired) @@ -219,10 +264,11 @@ (if (and (buffer-live-p buffer) (with-current-buffer buffer (and (eq my/citre-index--state state) (equal path (my/citre-index--path)) - (or (buffer-modified-p) (verify-visited-file-modtime buffer))))) + (or (buffer-modified-p) (verify-visited-file-modtime buffer)))) + (my/citre-index--snapshot-needed-p state entry buffer)) (push (cons path entry) entries) (push path retired) - (ignore-errors (delete-file (plist-get entry :file)))))) + (my/citre-index--retire-file state (plist-get entry :file))))) (my/citre-index-state-entries state)) (dolist (path retired) (remhash path (my/citre-index-state-entries state))) entries)) @@ -247,9 +293,10 @@ (let* ((old (gethash path (my/citre-index-state-entries state))) (output (make-temp-file (expand-file-name "buffer-" (my/citre-index-state-live-directory state)) nil ".tags"))) (rename-file (plist-get job :output) output t) - (puthash path (list :file output :buffer buffer :tick (plist-get job :tick)) + (puthash path (list :file output :buffer buffer :tick (plist-get job :tick) + :time (current-time)) (my/citre-index-state-entries state)) - (when old (ignore-errors (delete-file (plist-get old :file)))) + (when old (my/citre-index--retire-file state (plist-get old :file))) (with-current-buffer buffer (setq my/citre-index--dirty nil)))))) (my/citre-index--updated state)) ;; Retry on the next edit or explicit rebuild, not in an error loop. @@ -268,6 +315,7 @@ "Parse dirty buffers of STATE independently of slower dependency checks." (my/citre-index--cancel-timer (my/citre-index-state-live-timer state)) (setf (my/citre-index-state-live-timer state) nil) + (my/citre-index--collect-retired state) (when (and my/citre-index-mode (not (process-live-p (my/citre-index-state-live-process state)))) (let ((directory (make-temp-file (expand-file-name "job-" (my/citre-index-state-live-directory state)) t)) jobs request) @@ -343,6 +391,18 @@ (my/citre-index-request-refresh state) (my/citre-index--release state)))) +(defun my/citre-index--discard-stale-snapshots (cache) + "Delete snapshot directories in CACHE left behind by Emacs sessions that ended. +A directory without a process identifier predates this naming scheme and +therefore cannot belong to a running session." + (let ((processes (list-system-processes))) + (dolist (directory (file-expand-wildcards (expand-file-name "live-*" cache) t)) + (let ((name (file-name-nondirectory (directory-file-name directory)))) + (when (and (file-directory-p directory) + (or (not (string-match "\\`live-\\([0-9]+\\)-" name)) + (not (memq (string-to-number (match-string 1 name)) processes)))) + (ignore-errors (delete-directory directory t))))))) + (defun my/citre-index-attach () "Attach a local programming buffer to its automatic project index." (when my/citre-index-mode @@ -355,10 +415,12 @@ (unless state (let ((cache (expand-file-name (secure-hash 'sha256 root) my/citre-index-cache-directory))) (make-directory cache t) + (my/citre-index--discard-stale-snapshots cache) (setq state (my/citre-index--make-state :root root :cache cache :entries (make-hash-table :test #'equal) :watches (make-hash-table :test #'equal) - :live-directory (make-temp-file (expand-file-name "live-" cache) t))) + :live-directory (make-temp-file + (expand-file-name (format "live-%d-" (emacs-pid)) cache) t))) (puthash root state my/citre-index--projects))) (setq my/citre-index--state state) (my/citre-index--environment state) -- cgit v1.3.1