You’ll need to explain that to those of us who use Emacs for professional work. What fails for you? In particular, what fails that needs threading to be resolved?
You’ll need to explain that to those of us who use Emacs for professional work. What fails for you? In particular, what fails that needs threading to be resolved?
Yep - there’s a reason asyncio event loop programming is popular in Python/JS/Rust etc… People act like it’s a crusty old inferior technique to the delights of multi-threading. In reality it often keeps things much simpler, is very powerful, and only leads to blocking behavior when it’s badly coded.
Networking activity is a prime example of something where threading is least likely to be a clearly superior solution. Heavy CPU use is where threading may be the superior choice and a single event-loop thread is not. IO waiting is not.
Are you sure the problem there is threading? I’m pretty sure it is not. There’s very little CPU usage. The problem is TRAMP is written synchronously when it should be asynchronous, not that it doesn’t have threads.
Though I am therefore no use in solving your problems, if I’ve avoided them. I’m using pyright, and ruff. I am using the lsp-pyright
package, and it looks like I configured ruff with:
(lsp-register-client
(make-lsp-client
:new-connection (lsp-stdio-connection (lambda () (list "ruff-lsp")))
:activation-fn (lsp-activate-on "python")
:add-on? t
:server-id 'ruff))
Since I work on large Python projects, use direnv
to manage my environment, and lsp-mode
, I thought I might be able to help, but reading your long message I can’t find any specific issue except it sounds like your LSP server is misbehaving.
I do not get lagging or memory leaking in Emacs from using it. What process is getting large? Emacs or the LSP server? You don’t give us any clues.
What’s wrong with eat
? Not a rhetorical question; I don’t know, but I keep thinking of migrating to it.
That was so much my experience working with enthusiastic vim fanboys - they kept telling me “look at how awesome vim is, it can now do this!”, and I’d say, “er, yes, Emacs has always had that, I’ve been doing that since 1992”.
They literally never came up with something unique to vim, but that never shook in their firm belief that vim was absolutely the best most powerful editor and Emacs was a joke.
This is plainly just someone having some fun with whom I have zero aesthetic overlap. So it’s quite intellectually interesting to me to try to understand why I find it so intensely irritating. Perhaps at core I’m just tired of infantilization.
Emacs can run subprocesses just fine. I assumed you wanted a solution to a problem rather than an exercise.
With filenames:
for file in `find . -name "*.org"`; do sed -nr "s;.*notmuch:id:([^]\n]*).*$;$file: \1;p" "$file"; done
find . -name "*.org" -exec sed -nr 's/.*notmuch:id:([^]\n]*).*$/\1/p' {} \;
but the point is the language is the only layer boundary. Once you’re in Elisp there is no boundary, no layers. You may choose not to go there, but the only thing stopping you is your own choice.