clojure-norway 2026-07-12

Morron, och heja Norge! Galet bra fotboll! 🇳🇮

🎉 4

Morn. Strukturell redigering er gĂžy!

Hva er det jeg ser pĂ„? đŸ€”

skjermopptak av en nettleser! jeg har implementert et subsett av paredit,

"Backspace": (editor) => editor?.deleteBackwards(),
  "C-M-b": (editor) => editor?.backwardSexp(),
  "C-M-f": (editor) => editor?.forwardSexp(),
  "C-Space": (editor) => editor?.setMark(),
  "C-a": (editor) => editor?.moveBeginning(),
  "C-e": (editor) => editor?.moveEnd(),
  "C-k": (editor) => editor?.deleteToEnd(),
, men opererer pÄ DOM-noder i stedet for flat tekst. implementasjonen er drevet av webkomponenter. den redigerbare delen av DOM-treet starter sÄnn:
<jsc-editor>
        <jsc-box data-color="teal"></jsc-box>
        <jsc-box data-color="crimson"></jsc-box>
        <jsc-box data-color="aquamarine"></jsc-box>
        <jsc-box data-color="teal"></jsc-box>
        <jsc-box data-color="crimson"></jsc-box>
      </jsc-editor>
      <jsc-keypress-display></jsc-keypress-display>

nÄr vi skriver, skriver vi gjerne i ren tekst (feks markdown), rik tekst (som her pÄ slack), strukturell editor over ren tekst (paredit over clojure/hiccup). jeg bestemte meg for Ä starte pÄ nytt med blogging i vÄres. Med fokus pÄ Ä holde ting helt enkelt. (https://2.teod.eu/d/10/wax-and-wane). Og beholde kontroll pÄ enkeltbitene i systemet mitt. Jeg tok en snarvei i representasjonen av tekst som jeg redigerer ved Ä lene meg pÄ markdown. Det valget har begynt Ä svi, jeg mÄ liksom kun skrive det subsettet av HTML som markdown klarer Ä representere. Hva om jeg ikke brukte Markdown og heller lagde UI-et jeg ville ha? SÄ jeg startet med en redigeringsflyt jeg liker: trÊr og strukturell redigering.

Ikke dumt đŸ‘đŸ» Jeg var lenge en bruker av paredit, sĂ„ jeg er godt kjent med styrkene til strukturell redigering. đŸ€žđŸ» for at det blir sĂ„ bra som du hĂ„per

Vi fÄr se! SÄ langt har reisen vÊrt spenndende; gÞy Ä jobbe direkte med DOM-API-er uten noe mellom.

Spennende! > Jeg var lenge en bruker av paredit @hkjels: men ikke lengre? har du gÄtt bort fra emacs?

Nei, nei; er du gal 😜 DĂ„rlig ordlegging fra min side. Bruker i dag MEOW og puni istedenfor paredit.

Puni er samme greia

MĂ„ bare sette binds selv

Kult! Dette mÄ jeg se nÊrmere pÄ. Jeg bruker en kombinasjon av Combobulate og jtsx for redigering av tsx, men det er litt halvveis. Puni ser lovende ut. Har ogsÄ hatt en plan om Ä ta i bruk evil ganske lenge, men Meow ser ut som en litt lavere terskel.

Min reise har vÊrt 10 Är med vim, 9 Är med evil og siste Äret har jeg gÄtt bananas. NÄ er det splitt tastatur med engram layout og MEOW. Langt mer behagelig, og jeg redigerer raskere, men skriver fortsatt tregere enn jeg gjorde med qwerty; sÄ det er ganske krevende

😆 2

Synes puni/meow sÄ spennende ut selv! Savner veldig strukturell redigering nÄr jeg ikke er i Clojure/Emacs Lisp. Jeg slet med modal/modeless i gÄr. "Normal mode" hos meg er nÄr jeg hopper rundt blant DOM-nodene. Men hva skal skje nÄr jeg redigerer tekst? Da er det DOM-noden jeg er pÄ som skal styre hva som skjer ved redigering. @hkjels hvordan ville du gjort noe ala det jeg gjorde i vedlagt opptak? (sette inn tekstnoder, navigere mellom noder, kill; se key bindings jeg trykker nede til hÞyre)

Tror ikke jeg har noe verdifull innsikt. Med en gang du blander inn CSS, sĂ„ Ăžnsker du kanskje mer visuell navigering igjen, sĂ„ jeg vet ikke hvordan dette skal fungere til slutt, men jeg ser frem til Ă„ se lĂžsningen og blog-posten 😉

MĂ„let per nĂ„ er ikke full DOM-manipulering; kun et fĂ„tall komponenter for Ă„ skrive tekst. Det forenkler en del! 😄

Jeg lurte mest pÄ key bindings, gÄ fram, gÄ tilbake, C-k, og hvordan "inn i insert mode for Ä skrive" (i?) ville fungert. Personlig syntes jeg Evil var Älreit, men jeg fant aldri en god rytme med strukturell redigering og evil, Endte opp med Ä legge vanlig paredit-mode-map oppÄ bÄde normal-mode og insert-mode.

Jeg kjĂžrer vel en hybrid variant; der jeg kan gjĂžre de mest vanlige operasjonene i normal mode, men har laget meg et eget lite lag for puni som jeg kan hoppe inn og ut av.

jeg glĂžmte i farta horisontal/vertikal toggling.

Et lite sidespor igjen: har testet sÄvidt puni med tsx-ts-mode (typescript), og det fungerer imponerende bra (slurp, raise, splice). Digger denne!

👍 2