summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcashmere <cashmere1337@riseup.net>2026-09-23 00:10:34 +0200
committercashmere <cashmere1337@riseup.net>2026-09-23 00:10:34 +0200
commit4b4af818d1e95449b635cc15b92f946c3d023edd (patch)
treeccb909be04216be98fe32fccda8599ba4542f0a1
parentbf6a1d2dbc6147166272eca0276443779012e925 (diff)
downloademacs-4b4af818d1e95449b635cc15b92f946c3d023edd.tar.gz
relic: 2026-09-23T00:10:38+02:00
-rwxr-xr-xbin/project-ctags27
-rw-r--r--config.el23
-rw-r--r--config.org23
-rw-r--r--elpaca-lock.eld764
-rw-r--r--lisp/citre-backend.el59
-rw-r--r--lisp/citre-index.el80
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,9 +180,36 @@ 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)