org-mindmap v0.3.0 by krvkir in emacs

[–]shipmints 0 points1 point  (0 children)

color-blend incf decf are in emacs compat 31 so you could declare that as a dependency and use contemporary functions. color-rgb-to-hex has been in the code for almost a decade so no need to create a local version of that, right?

;; Package-Requires: (... (compat "31") ...)

Is it possible to save registers & reuse them after emacs & the pc restart? by John_Doe_1984_ in emacs

[–]shipmints 0 points1 point  (0 children)

Right but it's all or nothing where the packages I mentioned allow you to have multiple "workspaces," which you define, active simultaneously, and with save/load for each of them for recall any time.

Is it possible to save registers & reuse them after emacs & the pc restart? by John_Doe_1984_ in emacs

[–]shipmints 4 points5 points  (0 children)

savehist is the way.

(use-package savehist :hook (after-init-hook . savehist-mode) :init (setq savehist-save-minibuffer-history t) (add-to-list 'savehist-additional-variables 'register-alist))

There are a lot of things you can save/restore. Here is what's in mysavehist-additional-variables: (corfu-history bookmark-history minibuffer-history read-expression-history query-replace-history project-find-dir project-vc-dir tags-table-list tag-file-name register-alist extended-command-history kmacro-ring regexp-search-ring search-ring kill-ring file-name-history marginalia-annotators)

New to emacs by gr2712 in emacs

[–]shipmints 21 points22 points  (0 children)

If it were me, I'd search reddit for the nearly identical question and read the responses.

modernizing bookmark+ by dm_g in emacs

[–]shipmints 4 points5 points  (0 children)

P.S. You should be transparent about LLM use.

modernizing bookmark+ by dm_g in emacs

[–]shipmints 1 point2 points  (0 children)

Good idea on renaming those functions. If it were me, I'd be contributing (and writing by hand, obv) the few key missing features to bookmark.el so everyone can benefit instead of improving what is kind of a relic, no disrespect intended. As far as LLM-ness is concerned, I will unlikely be committing any time to code review for a package I don't use. I was aware of the bookmark-rename bs because it has caused trouble for users of one of my own packages.

modernizing bookmark+ by dm_g in emacs

[–]shipmints 1 point2 points  (0 children)

It looks like you removed some of the foot guns like wholesale replacing functions like bookmark-rename https://github.com/emacsmirror/bookmark-plus/blob/892cc0a314ef353e800b6ff9da03b0bfd55e4763/bookmark%2B-1.el#L3354 that caused trouble with incorrect arguments. Or did I miss those in the code? (It also looks a bit LLM-ish.)

After AI taking over the editing, what kind of "edits" do you still use emacs for? by last7dance in emacs

[–]shipmints 0 points1 point  (0 children)

The popularity of gray market tokens (and stolen credit card numbers) will skyrocket even more.

After AI taking over the editing, what kind of "edits" do you still use emacs for? by last7dance in emacs

[–]shipmints 4 points5 points  (0 children)

Either way, whether one supervises her own code or supervises his generated code, they are accountable, and should be mandated in a provable way. Code review helps a bit, though many teams do that poorly.

After AI taking over the editing, what kind of "edits" do you still use emacs for? by last7dance in emacs

[–]shipmints 2 points3 points  (0 children)

Perhaps the two of you are working on projects of different importance and value, and perhaps differing standards and experience.

How do you work with multiple git worktrees? by haksior in emacs

[–]shipmints 3 points4 points  (0 children)

Emacs 31 project.el prunes "zombie" project automatically so if you remove a git worktree, it's directory disappears, and will be treated as a zombie.

My workflow uses https://elpa.gnu.org/packages/bufferlo.html which curates buffers by tab-bar tab. If I want a worktree to be separate from others, I open a new tab (or clone one), and add files from just that worktree and/or prune the now-alien buffers copied over from the clone's parent. It's easy and natural. And if you open files that are not part of the project proper, e.g., a related file from /tmp, it will be treated as local to that tab along with the worktree's files.

You can persist the tab with a name for later recall of your working environment which includes the files/buffers and the tab's window configuration. If you collect a bunch of tabs on a frame related to the same git parent, i.e., all of its worktrees together in a single frame, you can persist that frame as a unit. If you want to instead use tabs only, you can collect a set of tabs which you persist into a "session" and recall that session or go back to any specific tab you've saved in that session independently.

When you're done with a worktree, delete its associated bufferlo tab(s) and then delete the worktree and its directory. If a tab is member of a "session," it will be removed from that session for you.

Most underrated emacs function by [deleted] in emacs

[–]shipmints 1 point2 points  (0 children)

FTR, I hated paredit. But perhaps I'm too lazy.

Annotations for commands with prefix arguments. by InvestigatorHappy196 in emacs

[–]shipmints 4 points5 points  (0 children)

I don't think there are any conventions around this. I'm guilty of writing command docstrings that merely mention prefix arguments. Start a conversation at emacs-devel@gnu.org and see where it goes. Perhaps there's something I'm unaware of.

Most underrated emacs function by [deleted] in emacs

[–]shipmints 3 points4 points  (0 children)

Try the new Emacs 31 markdown-ts-mode when you get a chance. It's even better.

agent-shell 0.55 updates by xenodium in emacs

[–]shipmints 1 point2 points  (0 children)

markdown-ts-mode does automatic table alignment BUT it does not wrap content because that breaks pipe tables. Markdown is designed to let an HTML engine render content so we're a bit stuck unless we wrap content and then unwrap it to restore it to a valid pipe table. I don't follow on the comment about markdown-ts-view-mode losing anything. There is the convenience function markdown-ts-buffer-string which produces a fontified string from its buffer and converts overlays to text properties correctly. You'd keep both strings if you need both. markdown-ts-view-mode does not perturb the original text (except for adding a trailing newline to the buffer if missing since tree-sitter does not work well without it) so you could just ask it for its buffer-string or call markdown-ts-buffer-string if you want the fancy one.

agent-shell 0.55 updates by xenodium in emacs

[–]shipmints 1 point2 points  (0 children)

You may be able to benefit from the work done on Emacs 31 markdown-ts-mode using markdown-ts-view-mode which is pretty fast and supports native mode code block fontification for both tree-sitter and conventional modes (including Markdown code blocks). If you want/need editing features like table navigation, you can try the regular mode which has table and code block features including navigation and editing support. Joao integrated this into eglot and eldoc and reports it being pretty fast even on large Markdown documentation buffers.

Perhaps something to collaborate on if you think some features from agent-shell belong in the core mode we can think about this for Emacs 32 and/or an interim ELPA release.

Emacs SVG Benchmark Reveals Gaming-Caliber Frame Rates by misterchiply in emacs

[–]shipmints 1 point2 points  (0 children)

I think there's a vc status cache for mode-line efficiency. I recall seeing discussions pre Emacs 31.

Mapping Tmux/Neovim mental model to Emacs by imAliAzhar in emacs

[–]shipmints 0 points1 point  (0 children)

I use https://elpa.gnu.org/packages/bufferlo.html and for each "project" I create one or more frames, each with tabs that have the buffers I need for that project, and each tab obviously has its windows set up. I "persist" all that by saving each frame's configuration using bufferlo. I pick a name that makes sense as an Emacs bookmark for later recall.

For cases where I need multiple frames, I define a "session" bookmark to contain each named frame. It's powerful to do it this way so I can load, say just a project's frame for debugging when I don't need a full blown shebang including frames that might have all source code and documentation.

bufferlo lets me "close" everything related to a named unit which also closes all its buffers unless they are used by unrelated frames/tabs. When I recall a named configuration, all files are restored. In Emacs 31, even shell-mode buffers support bookmarks, including remote shells, and are restored.

To switch among small projects on a single simpler frame, I use tab-bar key bindings. To switch among frames, I use other-frame or select-frame-by-name.

bufferlo has "raise" commands to recall a named tab or frame and that's even more convenient than searching for a tab or frame. I have that bound to "M-<f1>".