2025-06-16

Corne keyboard

I feel pretty confident with this keyboard. I'm pretty satisfied with the new layout.

Some things I might change:

  • home-row-mod is quite a mess right now. I don't use home-row shift keys but they still exists for no reason

  • ,./ keys are quite hard to type because they exist under the layer. I tried to at least bring up / key, but then having dedicated shift key looses its point

Norg rust parser

Finally!!! I found a quite nice, clean structure. I think with this new architecture, I can even merge inline parser to flat_parser.

It's not finished yet, but I think this is the best one I can think of.

Things I realized with multiple attempts

  • holding current token doesn't help because it's just additional state to take care of and it can easily be outdated based on context

  • I can actually use different lex() functions for various contexts. There isn't really many if I adjust well.

  • I don't need frames as I will use p.wrap(Bold, |p| {...}) pattern anyways.

wait, for 3rd point... really..? like, major issue I'm facing right now is just that; when parser met hard break token (e.g. paragraph break) and when it closed last node with expected closing node.

Hmmmmm

Well, I can't generalize this right now. There might be cases where I wrap without explicit close node

So there are two situation when wrap is finished:

  • when it met closing node (to include)

  • when it met unexpected node (to exclude, like End or DestScopeDelimiter)

I need leftover node for second case