fleshing out and idea for a multi dimensional IDE
yarn start
to get running
switch to the layer its on, and pan to it
some kind of visual representation of the link between nodes
edges arent working between nodes since moving to file tree, need to update logic to use full filepath
add a layer selector that shows active layers, lets yo switch between them.
should they be visible through each other?
when creating handles in getHandles, need to account for scrolling in monaco editor, and offset the handles by the scroll amount, hide handles that are outside the node viewport
allowing selecting a folder to load a project from
look at using https://marketplace.visualstudio.com/items?itemName=moalamri.inline-fold to fold types
allow selecting a chunk of code, and dragging that selection out of the IDE into a new node. changes to the node should reflect in the original, and the original should be folded, with a handle pointing to the new node
On save/close, write all of the nodes to the backend
on open, load the previous nodes
Removing link should remove import
ideally also zooming in and out
extract common code into hooks
enable creating new node inside a group
enable detaching from group
on node drag end, if the node is inside or intersecting with its group, update the group to be big enough to still contain it (and any parent groups)
to change the filename, etc
when loading a folder, load ALL of the files contents (for full text search)
resize the node between min height and max height, then make it scroll.
resize the node between min width and max width, then make it wrap (wrap or format with prettier?)
allow manual resizing.
onTextChange: get the height and width of the text, update the node style.height an width
move all the logic out to either utils, custom hooks, or context
sidebar panel with a square that represents the project, lets you set a colour, switch between projects, etc
we want to debounce saving/linting so that it doesnt run as often, but we still want to update the node for every keystroke. need to split them so that only saving/linting and the other backend calls are debounced. (or move the debounce out of editor node and into the update text logic)
repro:
create a few layers with nodes
edit an existing layer name/color.
name/color changes but other layers and nodes vanish
support select part of the text to have it extracted to a sub node
we want to debounce saving/linting so that it doesnt run as often, but we still want to update the node for every keystroke. need to split them so that only saving/linting and the other backend calls are debounced. (or move the debounce out of editor node and into the update text logic)
New node should have the import for the dragged-from node
Add a search bar, that when searching, checks every file for the text, takes a snippet from a few lines before and after, and adds it to a node.
list the nodes and make them scrollable
when adding a file to the canvas:
if its group already exists, move the canvas to the group, and add the new node to the group
if not, add the node to the canvas.
if nested, create all of the groups recursively
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.