GithubHelp home page GithubHelp logo

berdal84 / nodable Goto Github PK

View Code? Open in Web Editor NEW
186.0 12.0 23.0 142.74 MB

Nodable is node-able. The goal of Nodable is to provide an original hybrid source code editor, using both textual and nodal paradigms.

Home Page: https://nodable.42borgata.com/

License: GNU General Public License v3.0

C++ 85.92% C 8.15% CMake 1.02% Starlark 0.48% Shell 0.13% Python 4.19% Batchfile 0.01% HTML 0.04% SCSS 0.05%
node graph fun imgui lexer dear-imgui parser expression editor opengl

nodable's Introduction

nodable-logo.png

Nodable is node-able !

⚠️ Disclaimer: This software is a prototype, do not expect too much from it.

The goal of Nodable is to provide an original source code editor using both textual and nodal paradigms. Via this hybrid prototype, technical and less-technical people can discuss and collaborate on the same source code.

image

Unlike other nodal softwares, the goal of Nodable is to make possible the edition of the source code and its graph representation at the same time. Users are not stuck into one of the two paradigms, they can go back and forth whenever they want... read more

image

image

Download

Follow the instruction from the latest release section.

To build Nodable from sources, read HOW-TO-BUILD.md.

License

Nodable is licensed under the GPL License, see LICENSE. Each submodule is licensed, browse ./libs

Credits

Nodable is developed by @berdal84 and rely on many (libraries).

More information about this project on Nodable website.

nodable's People

Contributors

berdal84 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nodable's Issues

remove CodeBlockNode

CodeBlockNode is useless since AbstractCodeBLock exists. We see this node only inside a ScopedCodeBLock. We have to remove this useless layer.

equals and parenthesis

This create a good grah but with another unconnected, like a double of what's inside parenthesis.

minimal example: a = ((4)+1)

image

Automatic layout cause troubles to reagence nodes

quote: "j'essaye souvent de bouger les nodes à la main pour les faire tenir tous sur un petit espace mais quand je fais ça ça en réorganise d'autres automatiquement et ça rend la tâche pas facile:

Possible solution: do not pin nodes globally, pin them relative to the parent (storing the vec2 offset)

Hybrid Undo/Redo

Cmd_ConnectMembers
Cmd_ConnectNodes
Cmd_DisconnectWire
Cmd_DisconnectNodes

Isolate mode

  • Is it possible to isolate the selected text while keeping the graph and locking/transparentize unwanted nodes?

ex:
int two = 2;
int twenty = two * 10;

I select:
int two = 2;
int twenty = tw[o * 1]0;

o * 1

The issue is variable name changes ("two" => "o") and cannot be connected to the existing graph. "1" could replace the value of "10" in a literal node, but again it makes no sense to connect it to the existing graph.

Settings button size range

user quote: "j'essaye de jouer avec les variables de gui
le x de "buttons" a un max de 50 mais ça semble trop peu pour voir certains des labels des boutons"

new "Result" manually

Adding a new "Result" manually when cursor is not selecting (just blinking on a single line) cause serialization in loop, adding the same serialized text forever...

Node properties shows "undefined" when clicked

user quote: "quand je clique sur une valeur de sortie d'un node il affiche "uninitialized" (alors qu'a priori si) et je ne sais pas comment enlever ce message"

Hint: the property IS undefined. Probbly becquse the VM never starter. We might want to disable clicking on a property undefined in that state.

Parser: parse two or more instructions

Parse the as simple as possible two instructions code.
For example:

a = 10;
b = 2 * a;
// optional:
c = 1 / b;

works for single line multi instructions:

image

Suggestion: collapse instructions with their root node (if any)

user quote: " il y a un truc flou pour moi dans le code couleur des cables
je trouve qu'avoir un cable d'une couleur (vert) pour le code flow et d'une autre (blanc) pour les variables c'est cool
mais dans ce cas je trouve ça étonnant que le cable qui relie une variable à une instruction soit vert
même si en fait je comprends la logique et dans une boucle for par exemple ça fait plus de sens
mais ça ne serait pas plus concis comme ça visuellement ?"

image

switch case missing

[ 85%] Building CXX object projects/nodable/core/CMakeFiles/nodable-core.dir/src/assembly/Instruction.cpp.o
[ 85%] Building CXX object projects/nodable/core/CMakeFiles/nodable-core.dir/src/language/Nodlang.cpp.o
/Users/runner/work/nodable/nodable/projects/nodable/core/src/language/Nodlang.cpp:1835:13: warning: 22 enumeration values not handled in switch: 'unknown', 'keyword_if', 'keyword_else'... [-Wswitch]
switch (_token_t)
^
/Users/runner/work/nodable/nodable/projects/nodable/core/src/language/Nodlang.cpp:1835:13: note: add missing switch cases
switch (_token_t)
^
1 warning generated.
[ 86%] Building CXX object projects/nodable/core/CMakeFiles/nodable-core.dir/src/language/Nodlang_biology.cpp.o

Expose the whole config to the settings UI

user quote: "ok je n'avais surtout pas saisi la règle qui définissait en quoi les points sont connectés ou non, si c'est une histoire de distance ça me paraît logique bien que peu courant, ça pourrait être paramétrable quelque part"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.