13 ms·
The non-linear code structure (including visually) is something I've been thinking about for a long time and arrived at very naturally. I'm the "spread all the
by floppyd 10mo ago
The non-linear code structure (including visually) is something I've been thinking about for a long time and arrived at very naturally. I'm the "spread all the papers on the table to take in every interaction all at once" type of person, and so often I imagined a code editor that would allow me to just "cut" a piece of code and move it to the side. Separating stuff into files is kinda this, but it's not visual and just creates a lot of mess when I try to separate out small functions that are not reusable somewhere else. I don't even need the underlying non-linearity — just let me move the papers around on my code desk!
- zwp 10mo agoYou might like https://cs.brown.edu/~spr/codebubbles/ https://cs.brown.edu/~spr/codebubbles/
- marcelr 10mo agoyea i tried to do this (somewhat successfully) with a custom editor for css https://github.com/feralsoft/charisma https://github.com/feralsoft/charisma (demos on my old x https://x.com/charisma_css https://x.com/charisma_css) css is primed for this since you can write your rules in such a way that rule order doesn't matter, which means you really don't have to think about where your code it in my dream world, i have very smart search (probably llms will help), i look at just the minimal amount of code (ideally on a canvas), edit it and remove it from my context i don't care where or how the code is stored, let the editor figure it out and just give me really good search and debuggers
- zahlman 10mo ago> i don't care where or how the code is stored, let the editor figure it out and just give me really good search and debuggers I care, because I don't want any vendor lock-in. "The unreasonable effectiveness of plain text" hasn't gone anywhere.
- skydhash 10mo agoEmacs has first party support for these approach. Buffers are separate from the windows (aka panes) where they are displayed. And the latter are arranged in a tiling manner in frames (aka windows). The buffer themselves doesn't need to be tied to a file and you can use concept like narrowing to restrict the viewable part. In elisp, you will fine often the form feed ascii code (^L) which allows to define sections which can be restricted with the `narrow-to-page` command. On my work laptop I usually have many emacs frames. One displaying a `term-mode` (terminal) buffer, another usually displaying some `compilation-mode` buffer (tests, lint) or `grep` results, two as active workspaces as I'm often dealing with different modules (one maybe the api and the other a UI component). I create other frames as I need them (like exploring another project or doing some git-fu with magit).