> ##########################

> ## drafting/inprogress

> ##########################

(editor-editor) Updates

So I got the editor to work on a canvas and its been fun using it since then. I was busy playing around and working with the editor so haven't spent much time working on the editor. Anyways, just some stuff I've recorded over the past week.

Editor in editor

The whole idea that made me make this editor was having the editor be able to edit itself at multiple levels. Partly goes back to ideas in this video, titled: "programming should eat itself"

"Programming Should Eat Itself" by Nada Amin

e-e-e

An instance of editor runs and instance of editor that is running in an editor

Progression of editors

Here's a quick overview of progression of editors, nothing comprehensive, just loading the files of each editor.

Editing syntax highlighting

A video of changing css for the (2)editor's syntax highlighting, from (1)editor while (2)editor outputs parts of conditional design manifesto .

JSON viewer + code navigator

A JSON viewer that renders the current code's navigation tree. The tsserver running for the editor responds a json blob with the whole navigation tree, and each item has a start position in it, the json viewer checks if a key is named 'start' and value is a number, and if it is, it will send a message to the editor to focus on the given position.

Here is the speedrun:

Here is the final functional demo

Will be working on this further. Will make it embedded in the editor so it can be searchable and one can easily navigate to symbols in the editor.

Also need to implement a scroll to active block position for the canvas. Will also look into the canvas library I'm using I think it has a zoom to rectangle function, so could think of saving and navigating to rectangles and saving these. And then I can have a save and navigate to certain views.

Also Thinking about how the navigation tree can be used for metaprogramming for javascript/typescript. For instance you can query the editor for current tree. Have a matcher, say match the global scope Editor. Then for each of Editor's methods do something. And that can be outputed and added to script. Or it could also be used to templativize making a display component for a class. Like if you make a display component for Editor, you could have a live feed of its internals as the editor runs. And if you have templativizer, it could generate render methods and match statements and generate a function which you can manually fill in. Hopefully this is verbose enough to let me remember this idea.