1. 36
  1.  

    1. 6

      I kind of don’t hate this, which feels a little dirty. Writing this must be an absolute pain, though.

      1. 4

        I would use tools like asciiflow, Emacs artist-mode or Uniline mode for drawing these.

        1. 1

          As a former-ish maintainer of asciiflow it’d be kind of difficult to constantly do this in asciiflow.

        2. 2

          I suspect it must be generated. The end of the docs gave funcs for allowable symbols etc. Idk how you could enter without a lot of tedious copypastinhg, sadly. It would be so cool to actively use this in code, for state machinds anc configz instdad of yaml.

          1. 3

            Idk how you could enter without a lot of tedious copypastinhg

            IDE support:

            DrRacket provides a number of keybindings to help editing #2d expressions. See DrRacket’s keyboard shortcuts.

            1. 2

              Specifically

              • C-x r w : Widen the nearby ASCII art rectangles.
              • C-x r v : Make the nearby ASCII art rectangles taller.
              • C-x r c : Centers the contents of the current line inside the enclosing cell of the enclosing ASCII art rectangle.
              • C-x r o : Toggles the ASCII art rectangle editing mode.

              These are Emacs-style keybindings, so you should uncheck the ‘Enable keybindings in menus’ preference.

              https://docs.racket-lang.org/drracket/Keyboard_Shortcuts.html#%28part._.Editing_.Operations%29:~:text=toggle%20overwrite%20mode-,C%2Dx%20r%20a,-%3A%20Adjust%20nearby%20ASCII

        3. 2
          1. 2

            I dunno about this specific syntax, but I like the meta-idea here. I really want to see what benefits we might get with more integrated editors, without going to the usual place of what people today call structural editing. I don’t want to keep the same limited source but limit users to only creating “valid” transformations, I want to see inline tables, images, an other controls, rich text (and more) in comments, more interesting ways to view and edit related things together, more flexibility in different ways to “project” the code you’re focused on right now without it going read-only, etc.