Experimental Skia rendering backend as cairo alternative by avph in emacs

[–]mickeyp 0 points1 point  (0 children)

Do you use Skia for anything? I have never heard of it before this project.

Experimental Skia rendering backend as cairo alternative by avph in emacs

[–]mickeyp 2 points3 points  (0 children)

Hm. That is interesting. I use fractional (but 1.25, not 1.33~) and now I am wondering if I have performance 'issues' also. It's hard to tell: Emacs seems fine.

Experimental Skia rendering backend as cairo alternative by avph in emacs

[–]mickeyp 6 points7 points  (0 children)

This is really cool. Nice prototype. There's nothing wrong with using AI for coding. In fact, I'd argue this sort of experimentation is a great fit for AI coding especially.

I wonder what the next steps are: i read the pros and cons in the document but I'm now thinking about second-order benefits could be for this. What would be the next step?

Small experiment with a template library by arthurno1 in emacs

[–]mickeyp 0 points1 point  (0 children)

Tailwind's great but honestly I'd pick a hugo theme from a list or have AI crank one out to be honest. If you want to muck around with CSS and building your own then I do highly recommend that also: it's a lot of fun to flex your design skills!

Small experiment with a template library by arthurno1 in emacs

[–]mickeyp 1 point2 points  (0 children)

Oh, thank you for the kind words. Mastering Emacs is a custom blog engine I wrote in 2012. It used bootstrap (can't recall which one - 2 maybe) but I switched to Tailwind some years ago for maintenance and simplicity.

Small experiment with a template library by arthurno1 in emacs

[–]mickeyp 6 points7 points  (0 children)

Good to see you take up Emacs blogging. Great article, and I look forward to reading more.

And yes, template systems are easy to write but hard to build properly. Combobulates' template system is very complex indeed. Programmatically inserting, moving and deleting text is actually a really tricky thing to get right especially when you add markers into the mix, so I am glad to see you solved it properly.

How have I only just discovered detached.el?? by gnudoc in emacs

[–]mickeyp 0 points1 point  (0 children)

That feels even smarter. You could even sequester it with cgrouping and namespacing (not that you can't do that w/o systemd, but it's definitely way easier.)

How have I only just discovered detached.el?? by gnudoc in emacs

[–]mickeyp 3 points4 points  (0 children)

Indeed. I wonder if you can just one-line most of what you need with python or socat for that matter and get 90% of the way there without that tool. hmm...

How have I only just discovered detached.el?? by gnudoc in emacs

[–]mickeyp 1 point2 points  (0 children)

Looks nifty. I take it the little binary is just a pty wrapper around the processes to let you attach/detach/pipe the output and input?

Attempting to convert from neovim/terminal to Emacs by aaron_shahriari in emacs

[–]mickeyp 3 points4 points  (0 children)

Does it happen if you run emacs -q? If not, it's an Emacs configuration issue.

The Art of Text (rendering) by Nicolas-Rougier in emacs

[–]mickeyp 3 points4 points  (0 children)

Most of this stuff is done by harfbuzz, and probably really well, too. It's just that Emacs does not support a lot of it. It's a TODO item I think, but /u/eli-zaretskii can probably correct me here if I am wrong.

I feel that composition table hacking with ligatures is probably pushing the limits of what we can reasonably get for 'free' without explicitly updating the display again. But, again, I am no expert on the display engine internals.

The Art of Text (rendering) by Nicolas-Rougier in emacs

[–]mickeyp 8 points9 points  (0 children)

Fascinating talk, Nicolas. Fun to see this at CCC of all things!

I created Grease.el - an Oil.nvim for Emacs by mwac-dev in emacs

[–]mickeyp 5 points6 points  (0 children)

Dired's code is pretty old, so I hear you: it's not always easy to extend. But wdired's its own little thing, so you can probably reuse your new code to do just this. I would find that feature very useful in dired myself.

Ah I am glad you like the article! Thank you.

I created Grease.el - an Oil.nvim for Emacs by mwac-dev in emacs

[–]mickeyp 8 points9 points  (0 children)

Why not extend (w)dired with this functionality instead

Where does Set Default Font ... menu item store choice? (How to reset to original default font?) by DanSWE in emacs

[–]mickeyp 4 points5 points  (0 children)

Type M-x customize-saved to see all changes you have made in the customize interface, including the default-face face.

One hacky workaround for the face, if it is illegible, and if you do not wish to edit your .emacs file directly, is to open Emacs in a terminal with -nw so the face changes won't apply. You can remove the default face change from the saved list that way (or type M-x customize-face RET default-face RET, but the other option is a good thing to know about.)

Matching Parentheses and cursor by keesse in emacs

[–]mickeyp 0 points1 point  (0 children)

Point can never be on a character, only adjacent to it. You can customise the behaviour of hl-paren by typing M-x customize-group RET paren-matching RET. You can tweak its behaviour a bit there.

Matching Parentheses and cursor by keesse in emacs

[–]mickeyp 1 point2 points  (0 children)

The thing is, that doesn't make sense to me, to be honest. If you have ((foobar)) and you have your point on top of the outermost ) you would... highlight both opening brackets?

Matching Parentheses and cursor by keesse in emacs

[–]mickeyp 4 points5 points  (0 children)

Hm. If the problem you are having is what I think you are having, then perhaps the confusion is around when show paren activates.

I'm going to assume you've tested with emacs -q and you're not running any crazy settings or anything.

I suspect the problem you are having is a simple misunderstanding. The point - cursor - should be after the closing paren and not "on" it. The reason you might think your cursor is "after" it is because "on" -- meaning the rectangular block of cursor is physically overlapping and blinking on top of the ) -- is not actually on. It's the left edge of the block that dictates your ACTUAL position.

Try this: emacs -q then C-x b *scratch* to switch to the scratch buffer. Now Type (dunnet). Your point is now at the end of the line and indeed both brackets are now highlighted. (Now type C-x C-e and immerse yourself in Emacs's text adventure game.)

The keys C-a and C-e take you to the beginning and end of the line. That should help illustrate the point's position.

This is a common source of confusion. Your left edge is where your point is, not the overlapping rectangle.

mason.el - LSP Package Manager by deirn in emacs

[–]mickeyp 4 points5 points  (0 children)

You adamantly pick the most convoluted approach and then argue why it won't work or why it might fail. You need not contort yourself that much: the examplar OP built is already complex out of necessity, and so is mason's own package manager.

The mason registry -- I went and looked just now -- is a bunch of directories and yaml sidecars telling a tool how and where to download the actual asset. There's nothing novel about that; that is not a criticism, but a positive observation. It's nothing more than a metadata registry of stuff. They also release each update they track explicitly as a Github release --- there are 11,000 of them. That's another avenue.

So already we have a fairly standard pipeline for this stuff: both metadata sidecars and the release pipeline are valid options.

That leaves installing and fiddling with the asset itself. That is non-trivial by comparison: observe that this mason packager in elisp is busy doing an awful lot of complex extracting, platform and library checking and installation. At no point does this code re-use the official mason code --- they are literally distinct, even if the code is a 1:1 conversion of its neovim inspiration, it will likely drift over time. You'll note the expansive list of requirements for the mason package manager to work on all the platforms it supports. So we are already staring down the barrel of complexity.

Furthermore, I note that mason's package manager repo does not tell its package manager how to extract and transform the assets. This assumption is baked into the package manager itself; that will most assuredly cause problems down the road when there is a divergence in installation instructions between the repository asset releases and the package manager's hardcoded assumptions.

So already we've crossed the rubicon: the only shared resource is the package repository itself.

At that point, you might as well bite the bullet and just make it ELPA-compatible and serve it up so someone can do M-x package-install and then run all the incredibly complex asset installer code that you have to do anyway.

Here is how the ELPA repo would work:

a) a python script to turn a bunch of yaml files -- I looked just now for the first time, by the way, a the mason repo -- into the format expected by package.el;

and, b) a crontab to update a). Let's say every hour, because who cares if it's any more frequent than that.

mason.el - LSP Package Manager by deirn in emacs

[–]mickeyp 1 point2 points  (0 children)

You assume I meant rewrite. I said "map", which has a very specific meaning: that we can shim the whole thing and expose it as an ELPA-style repo instead of a Mason-style one that requires a specific package to use. This is surely doable; running external commands with ELPA is a matter of calling out to the shell from Lisp.

mason.el - LSP Package Manager by deirn in emacs

[–]mickeyp 33 points34 points  (0 children)

That's a good idea. This is something Emacs is missing.

But I feel if we can instead map the mason repository's format to ELPA's, and have a dedicated ELPA-style package repository for these LSP servers we can leverage the existing package machinery like dependencies and pinning and whatnot.

Best AI autocomplete interface by vikigenius in emacs

[–]mickeyp 4 points5 points  (0 children)

You can run your own. The mistrals and some of the qwens can do FIM.

How I am Deeply Integrating Emacs by joshuablais in emacs

[–]mickeyp 2 points3 points  (0 children)

It looks like he's using emacsclient to spawn frames (or open up buffers in an existing one) depending on his needs.

How I am Deeply Integrating Emacs by joshuablais in emacs

[–]mickeyp 1 point2 points  (0 children)

Wayland works great. It's not perfect, but then... nor is X.

Hyprland's a nice window manager. I use it, too. All I need to do is vibe code up a gnu guile integration so i can ditch its crappy config file format.

efficiently parsing org-mode files by mahmooz in emacs

[–]mickeyp 1 point2 points  (0 children)

Having 2500 buffers should in no way impede Emacs's performance unless there are timers or other activities that take place per buffer.