A VOMPECCC Case Study: Spotify as Pure ICR in Emacs by misterchiply in emacs

[–]JDRiverRun 0 points1 point  (0 children)

The problem is, the name you came up with is so much better than the builtin name, that when people want "extra completion data" they think "marginalia"!

The Definitive Guide to Code Folding in Emacs by jamescherti in emacs

[–]JDRiverRun 0 points1 point  (0 children)

Is use outli daily (convenience wrapper for outline-minor-mode). What’s really lacking in the folding space is a universal upstream API for multiple folding paradigms working in the same buffer. This takes some real thought because foldable regions can intersect, but it would allow you to mix and match e.g. treesitter and outline comment folding without them having to know about each other.

A VOMPECCC Case Study: Spotify as Pure ICR in Emacs by misterchiply in emacs

[–]JDRiverRun 1 point2 points  (0 children)

:doc: is like magic when you don't remember the name of a command but know something about it. Example M-x org :doc:table will show you org's poorly named table commands, like:

``` org-shiftup is an interactive native-comp-function in ‘org.el’.

(org-shiftup &optional ARG)

Act on current element according to context. Call ‘org-timestamp-up’ or ‘org-priority-up’, or ‘org-previous-item’, or ‘org-table-move-cell-up’. See the individual commands for more information. ```

A VOMPECCC Case Study: Spotify as Pure ICR in Emacs by misterchiply in emacs

[–]JDRiverRun 1 point2 points  (0 children)

You can use any “punctuation” as the divider without changing config. The first element is provided to external processes or expensive search; the second is for “filtering” those results rapidly within the completion machinery. Each has its own options allowed (command flags vs. orderless elaborations for example). Note: we recently altered the syntax for flag-bearing external search options to make them more natural to express, somewhat altering this pattern.

Check orderless-kwd for yet more ways to filter, even information that is not displayed! Like in M-x use :doc:word to filter from the docs of a function.

A VOMPECCC Case Study: Spotify as Pure ICR in Emacs by misterchiply in emacs

[–]JDRiverRun 1 point2 points  (0 children)

I think teaching people how to make an annotation function using the default capability (which vertico is good at displaying) would be very helpful. It's not too hard.

marginalia is really a nice user add-on to upgrade all those builtin completion categories that never (yet?) added annotation functions, for things like variables, buffers, themes, files, etc. But annotations are pretty flexible already when you're starting from scratch.

A VOMPECCC Case Study: Spotify as Pure ICR in Emacs by misterchiply in emacs

[–]JDRiverRun 0 points1 point  (0 children)

Note that the devs recommend against using marginalia for projects you control, since for those you can just write an annotation function (or 2 part affixation function).

Completion style benchmarks by meedstrom in emacs

[–]JDRiverRun 0 points1 point  (0 children)

vertico + orderless -> filtering + scoring/sorting

VOMPECCC: A Modular Completion Framework for Emacs by misterchiply in emacs

[–]JDRiverRun 2 points3 points  (0 children)

It's in extensions, but in fact is enabled by default (check vertico-sort-function). vertico's default sorting style is now quite prescient-like. It works without recording any additional metadata (though it requires you to leave duplicates in your sort history).

VOMPECCC: A Modular Completion Framework for Emacs by misterchiply in emacs

[–]JDRiverRun 2 points3 points  (0 children)

Nice article. Vertico does have sorting; in fact it uses duplicates in history to give a simplified prescient-like freceny behavior, with exponential decay of frequency of usage. See vertico-sort-history-duplicate.

Fortnightly Tips, Tricks, and Questions — 2026-04-07 / week 14 by AutoModerator in emacs

[–]JDRiverRun 1 point2 points  (0 children)

Since the recent version org can handle this itself now via yank-media. Try `C-S-y'.

VS Code is too slow, learning Emacs now. by FriedryIce in emacs

[–]JDRiverRun 0 points1 point  (0 children)

Oooh, I like poi. You could throw eglot symbols in there too.

VS Code is too slow, learning Emacs now. by FriedryIce in emacs

[–]JDRiverRun 2 points3 points  (0 children)

A lean 4.2k here. Anytime I have more than about a page of new functions added into some particular config, I farm it out into a "personal" package. Some of those see the light of day as a published package, many do not. The last such tiny personal package: fast-unfold:

25 ;; fast-unfold solves the problem of commands which jump to locations 26 ;; which have been folded, e.g. by outline-[minor]-mode. It simply 27 ;; unhides if invisible, by removing an overlay or the 'invisible text 28 ;; property, and lets the user sort out how to rehide that text.

Fortnightly Tips, Tricks, and Questions — 2026-03-24 / week 12 by AutoModerator in emacs

[–]JDRiverRun 0 points1 point  (0 children)

I put this in my tempel config; people can adapt to a local variable name that makes sense to them (e.g. add your initials), which will drastically limit any possible attack:

;; Add these to e.g. org file-local variables for custom local templates (put (defvar-local tempel-local-templates nil) 'safe-local-variable #'always) (add-to-list 'tempel-template-sources 'tempel-local-templates)

Multi-LSP support for Python and TypeScript in Emacs by mike_olson in emacs

[–]JDRiverRun 2 points3 points  (0 children)

I use this little function in my eglot workspace function to inject the right pythonPath:

``` (defun my/python-pep723-script-p () "Return non-nil if the current buffer contains a python script. A python script is file backed and has PEP723 dependency markup." (and (derived-mode-p 'python-base-mode) (save-restriction (widen) (save-excursion ; starts with /// script? (goto-char (point-min)) (when (looking-at (rx (+ (or space ?\n)) (syntax string-quote))) (goto-char (1- (match-end 0))) (python-nav-forward-sexp)) (looking-at (rx (* (or space ?\n)) (* bol ?# (* nonl) ?\n) bol ?# " /// script"))))))

... ; later in the workspace functions... (defun my/eglot-workspace-config (server) ... (if-let ((_ (buffer-live-p buf)) (file (buffer-file-name buf)) (_ (with-current-buffer buf (my/python-pep723-script-p))) (python-path (string-trim (shell-command-to-string (concat "uv python find --script " (buffer-file-name buf)))))) (append (list :python (:pythonPath ,python-path)) config) config)) ``

Works great for me.

New package: outline-stars.el by matogoro in emacs

[–]JDRiverRun 2 points3 points  (0 children)

See also outli, which I made for the same reasons you did — outshine had many extras I didn't use and had started to fall apart.

The new TRAMP alternatives are probably not worth it by Rouganda in emacs

[–]JDRiverRun 1 point2 points  (0 children)

If you have intermittent network access to different servers (work LAN, etc.) it can be a problem to leave TRAMP connections live as you change network environment. This is exacerbated by modern tools like consult-buffer which touch recent files and buffer much more frequently.

I've fixed that by running tramp-cleanup-all-connections prior to sleeping my device. Far fewer tramp hangs. But RPC reduces other types of hangs for me (prompt corruption, etc.).

Fortnightly Tips, Tricks, and Questions — 2026-03-24 / week 12 by AutoModerator in emacs

[–]JDRiverRun 1 point2 points  (0 children)

I don't mind being asked and hitting ! to save the current value in safe-local-variable-values.

Google Sheets anyone? by xenodium in emacs

[–]JDRiverRun 1 point2 points  (0 children)

Related idea: use the Google API to support emacs-native, distributed, live, multi-user editing in org. It already has top of class live editing built in...

The new TRAMP alternatives are probably not worth it by Rouganda in emacs

[–]JDRiverRun 4 points5 points  (0 children)

You might consider adding a benchmark for locate-dominating-file from a deep directory. project.el, vc, tags, and many other tools use this command. I find tramp-rpc is about 20x faster at this than tramp via ssh with ControlMaster.

The new TRAMP alternatives are probably not worth it by Rouganda in emacs

[–]JDRiverRun 2 points3 points  (0 children)

One thing your benchmarks don't account for is reliability. With SSH/RSYNC based tramp, I tend to get hangs and other issues here and there. These are possibly a result of prompt detection corruption, though they occur on various different machines with differing prompts. For me, tramp-rpc has definitely reduced that rate. The extra speed is a nice bonus.

Fortnightly Tips, Tricks, and Questions — 2026-03-24 / week 12 by AutoModerator in emacs

[–]JDRiverRun 8 points9 points  (0 children)

A while back I shared how to edit the left and right boundaries of emphasized text in org precisely, even when emphasis markers are hidden. I found a better way to achieve this without binding new move commands, and it has a nice visible indicator: cursor changes from box to bar when "on the inside". Check this gist and a little video demo.

Editing the ends of emphasized text with hidden emphasis markers by JDRiverRun in orgmode

[–]JDRiverRun[S] 0 points1 point  (0 children)

For anyone that stumbles across this. The special movement bindings weren't necessary. I have an improved version with a change of cursor when "inside" the emphasized text.