jsadusk

joined 11 months ago
[โ€“] jsadusk@alien.top 1 points 10 months ago (1 children)

I would love to modernize the emacs core, but rewrites are usually destined to fail, more likely the older the project being rewritten is. And emacs is very old.

How about this approach. Emacs only got dynamic modules in v26, fivish years ago? All the junk compiled into the core was done so because there wasn't something like dynamic modules. Someone (I hope I'm not signing myself up for this) should do a project to move all functionality other than the lisp engine itself and maybe some basic primitives out into dynamic modules. When the lisp engine is isolated via a stable abi, then you can redesign it without fear. Similarly with any of the modules themselves.

 

The context here is, I'm working in a company environment that is using https://trunk.io in its dev environment, which is kind of a meta-linter for many languages. It wraps a bunch of backend lint tools and combines their results, and enforces a company wide policy on all of them. They provide integrations for a few IDEs, but nothing specific to emacs yet. What they do provide is an LSP proxy to their tool. I have been looking if there is any support in flymake or flycheck to use a generic LSP server as the checker backend, and I haven't found anything. Does anyone know if this is possible? Or if there's an existing backend that's close enough that could be tweaked to do this? I've attempted to duplicate the trunk configuration using individual flymake backends, and the maintenance is just too much. It would be way easier to just make use of the tool directly.

[โ€“] jsadusk@alien.top 1 points 11 months ago

That worked! This is the easy answer, I really appreciate it.

 

I have a bunch of one off functions to do frame/window layout. But an issue I run into is that if I do, say

(set-frame-size (selected-frame) 255 80)
(some-other-function-that-looks-at-frame-size-to-split-windows)

Half the time the resize hasn't finished by the time the split function runs, and so it splits incorrectly. I'm assuming the resize happens asynchronously, but I don't see a hook or event I can make use of to make sure I'm splitting after the fact. Is there something I'm missing? Sleeping doesn't seem to fix it because that just delays the resize as well.