refactor(tazjin/gio-list-apps): refactor into dynamic Emacs module
Instead of producing a binary that gets called by Emacs, with input/output serialisation, use a dynamic Emacs module that lets Emacs more-or-less directly call the relevant GTK functions. I'm doing this mostly as an experiment. Might be interesting to end up with a dynamic module that I can dump some experimental code into that improves my workflows. To do this, I've exposed the emacs binary used by my Emacs configuration in an additional `passthru` field. This ensures that the module is linked against the right version of Emacs. Change-Id: I1426994fe3455ed1b2a685c5a09705e29fa40950 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9163 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su>
This commit is contained in:
parent
d6bce3f83d
commit
e5f7fe430d
7 changed files with 178 additions and 52 deletions
|
|
@ -2,6 +2,8 @@
|
|||
(require 'dash)
|
||||
(require 'map)
|
||||
|
||||
(require 'gio-list-apps) ;; native module!
|
||||
|
||||
(defun goto-line-with-feedback ()
|
||||
"Show line numbers temporarily, while prompting for the line number input"
|
||||
(interactive)
|
||||
|
|
@ -336,12 +338,7 @@ names, instead of only their names (which might change)."
|
|||
"Use `//users/tazjin/gio-list-apps' to retrieve a list of
|
||||
installed (and visible) XDG apps, and let users launch them."
|
||||
(interactive)
|
||||
(let* ((apps-json (s-lines (s-trim (shell-command-to-string "gio-list-apps"))))
|
||||
(apps (seq-map (lambda (app)
|
||||
(let ((parsed (json-parse-string app :object-type 'alist)))
|
||||
(cons (cdr (assoc 'name parsed))
|
||||
(cdr (assoc 'commandline parsed)))))
|
||||
apps-json))
|
||||
(let* ((apps (taz-list-xdg-apps))
|
||||
|
||||
;; Display the command that will be run as an annotation
|
||||
(completion-extra-properties
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue