Commit Graph

7694 Commits

Author SHA1 Message Date
a471d2b808 mu4e.texi: document mu-scm repl interface
And various other tweaks & improvements.
2026-08-20 15:04:26 -07:00
846705629f build: use 1.12.13-dev
Use -dev suffix for development version; explain in README
2026-08-20 15:04:26 -07:00
410436b7ad mu4e-mu-scm-repl: tweak to avoid bytecomp warning 2026-08-20 15:04:26 -07:00
2630832b19 mu4e-mu-scm-repl: keep same repl by default
Add prefix argument, and unless set, switch to existing repl.
2026-08-20 15:04:26 -07:00
461e4f83fe store-test: add more label tests
Ensure removal affects the labels cache.
2026-08-20 15:04:26 -07:00
c547cde73e store: remove some _unlocked functions, update clear_labels
They don't add much value, let's remove.

Rework clear_labels in terms of update_labels.
2026-08-20 15:04:26 -07:00
33ab0acc8d store: update labels when removing messages
This does make removing a bit slower...
2026-08-20 15:04:26 -07:00
3a12c69b10 mu: refactor labels code
Split labels-cache and store-labels.
2026-08-20 15:04:26 -07:00
152182a567 mu4e: tweak label comments 2026-08-20 15:04:26 -07:00
124b371850 labels: allow restoring cache-map
E.g. with unexpected termination for mu it is possible that the
labels-cache (i.e., the one that is used for auto-completion) gets disconnected
from reality.

Add a --restore option to `mu label list` to restore the actual labels from the
labels seen in the store.
2026-08-20 15:04:26 -07:00
76031d93d1 README.org: tweaks 2026-08-20 15:04:26 -07:00
bb399bc37a store: implement serialize method, use it
For triggering saving the contacts / labels caches.
2026-08-20 15:04:26 -07:00
5ba4791add mu-label: no counts in list unless verbose 2026-08-20 15:04:26 -07:00
c16e7acb51 mu4e-search: improve label auto-completion 2026-08-20 15:04:26 -07:00
f591d30d4e mu4e-labels: don't require emacs-30 rx
Use an old-school regexp instead.
2026-08-20 15:04:26 -07:00
49e4c25bd3 mu4e-search: re-use mu4e-label-regex 2026-08-20 15:04:26 -07:00
daaf3d6e75 mu: cmd-label: cosmetics 2026-08-20 15:04:26 -07:00
71b5f31f99 man: update label manpage 2026-08-20 15:04:26 -07:00
c074c138f8 store: improve label handling
In particular, clear_labels

And some cosmetics
2026-08-20 15:04:26 -07:00
a2b1a7cc31 mu4e: implement label updating through marks
Add support for updating label, using the marking interface.

Add some helpers for dealing with (delta) labels

Add keybindings to headers / views

Update docs
2026-08-20 15:04:26 -07:00
bf2f4ce57d server: add label handler
For handling mu4e label update requests.
2026-08-20 15:04:26 -07:00
2fa973ec90 mu-label: allow more characters
reduce the number of "taboo" characters in labels.

update docs.
2026-08-20 15:04:26 -07:00
76b9000588 mu-document: improve sexp updating
Ensure the cached message sexp gets updated in all cases where it's necessary.
2026-08-20 15:04:26 -07:00
d07a5bc2c1 labels: implement parse_delta_labels
Convenience function for parsing a series of delta labels; add tests as well.
2026-08-20 15:04:26 -07:00
ee42d90b51 build: don't use PWD in when doc-building
So it works with make -C.
2026-08-20 15:04:26 -07:00
543c43f078 Replace "the the " with "the " 2026-08-20 15:04:26 -07:00
65816093c4 docs: Fix typo 2026-08-20 15:04:26 -07:00
171fdad03b build: improve doc building 2026-08-20 15:04:26 -07:00
f8160e152b scm: implement store personal?, rename all-labels->labels
Add a method personal? to check if some string looks like a personal address;
add docs / tests as well.

Rename the all-labels method into simply 'labels'

Make some define* into define-method, for consistency.
2026-08-20 15:04:26 -07:00
5e87a9c81e mu4e: add basic auto-completion for labels 2026-08-20 15:04:26 -07:00
e6371ff705 mu4e: allow for displaying labels
Basic support for displaying labels.
2026-08-20 15:04:26 -07:00
5a6ca68846 mu4e/server: get cached list of labels
This will be useful with label commands.
2026-08-20 15:04:26 -07:00
3e5ef67650 mu: improve command help 2026-08-20 15:04:25 -07:00
013233c041 scm: clean up scm running
Split run_script / run_repl more clearly; update callers.
2026-08-20 15:04:25 -07:00
5378f321f4 utils: add set_thread_name
With HAVE_PTHREAD_SETNAME_NP
2026-08-20 15:04:25 -07:00
4bda2718ac add nix flake
Some checks failed
Build & run tests / build (macos-latest) (push) Has been cancelled
Build & run tests / build (ubuntu-latest) (push) Has been cancelled
2025-08-26 14:26:43 -07:00
44a16ff4e2 NEWS.org: update 2025-08-24 17:45:42 +03:00
d66a29cf5e scm: add support for logging
Add functions debug, info, warning, critical which log to the mu logging
facilities.
2025-08-24 17:36:15 +03:00
a69e6fad1d mu4e: implement mu4e-mu-scm-repl
With `mu4e-mu-scm-server` set to non-nil, a mu with scm support / --listen will
start a Guile SCM REPL listening on a Unix Domain Socket.

You can connect to this socket using the command mu4e-mu-scm-repl; this depends
on the geiser-guile package.
2025-08-24 11:54:08 +03:00
02a0dc4333 mu-server: implement exposing the socket-path
Add the scm-socket-path to the ping-properties we expose for mu4e.
2025-08-24 11:54:08 +03:00
9a2d481fc3 mu: add --listen option for server
Add a --listen option for the server

Rework the option code to share the --listen / socket-path code between scm and
server subcommands.

Move option off the stack in mu.cc, seems it's too big, at least when using gdb.
2025-08-24 11:54:08 +03:00
d5a0fce4cf scm: implement blocking / non-blocking modes
Implement running the REPL on background thread. That way, we can _share_ the
store&.
2025-08-24 11:54:08 +03:00
81ff303d2e meson.build: check for pthread_setname_np 2025-08-23 09:12:47 +03:00
6b89f4abae scm: message_parts: use cons instead of append
It's faster.
2025-08-22 08:13:55 +03:00
3b7e5507f7 scm: to_scm: use cons, not append
It's faster.
2025-08-22 08:08:32 +03:00
c207921cfa scm: all_labels: use cons instead of append
it's faster.
2025-08-22 08:05:10 +03:00
cd249ffaf0 scm: cfind: use cons instead of append
It's faster.
2025-08-22 09:02:09 +03:00
24e25f9663 scm: mfind: use cons instead of append, eval lazy
For the list building, using cons is much faster. So traverse the results
_backwards_, and then cons gives us the right order.

Don't eval when creating the list, but do so lazily (when requested in the
message, in mu-scm.scm)
2025-08-22 09:01:59 +03:00
cacac82070 mu-query-results: add decrement operators
So we can easily iterator from end->begin
2025-08-22 07:58:59 +03:00
5ad70335e6 NEWS.org: update 2025-08-17 13:19:17 +03:00