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

Overview

Nodable is node-able !

Introduction:

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

In Nodable, textual and nodal point of views are strongly linked, in both ways:

  • A change to the source code will update the graph.
  • A change to the graph will update the source code.

More information about this project on my website.

How to try ?:

Prerequisites:

Hardware:

  • a 64 bits architecture

Software:

  • Operating Systems:
    • Windows (tested under Windows 10)
    • Linux (tested under Ubuntu 20.04)
    • MacOS 10.9+ (tested under Ubuntu 10.13)
  • Libraries
    • Linux: install sdl2 and mesa (sudo apt-get install libsdl2 libegl1-mesa)
    • MacOS: install sdl2 (brew install sdl2)

Disclaimer: Nodable is a prototype, do not expect too much from it.

Download:

Download binaries from Releases section.

How to compile Nodable from sources ?

Requirements:

  • Build system:
    • CMake 3.14+
    • A C++11 compatible build system
  • Libraries
    • Linux: install sdl2 and mesa (sudo apt-get install libsdl2 libegl1-mesa)
    • MacOS: install sdl2 (brew install sdl2)

Clone the Nodable repository (with submodules):

git clone --branch v0.8.2 https://github.com/berdal84/Nodable.git --recurse-submodules

Configure and run the build:

From nodable base directory type the following command to configure a new ./build directory from sources in current current directory:

cmake . -B build

Then cmake must have created the ./build folder. We can now build the program from this configured folder.

Enter the following command to ask cmake to build from ./build directory using a Release configuration.

cmake --build build --config Release --target install

Note: --target install is to create a clean ./bin/Release directory with only necessary files to run the software.

Once build succeed, move to install folder and run ./nodable:

cd bin && ./nodable

Licence:

Nodable is licensed under the GPL License, see LICENSE for more information.

Each submodule are licensed, browse /extern folder.

Credits :

Nodable is developped by @berdal84

Comments
  • Icon Font should be monospace to get a better text alignment in menus

    Icon Font should be monospace to get a better text alignment in menus

    The red line should be straight:

    image

    Omar tip: “Dans ImFontConfig tu peux utiliser MinAdvanceX pour rendre ta fonte d’icone monospace pour aligner les elements facilement dans le menu”.

    feature 
    opened by berdal84 1
  • Handle when user connect different types (forbid, ask to cast, ask to change type)

    Handle when user connect different types (forbid, ask to cast, ask to change type)

    • Forbid to connect an input already connected.
    • Forbid to link different types except if target exists with this type.
    • right click on a connector open a contextmenu (delete wire, delete wire and connected nodes)
    opened by berdal84 0
  • new

    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...

    opened by berdal84 0
  • Parser: parse two or more instructions

    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

    feature done (in next release) 
    opened by berdal84 0
  • Isolate mode

    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.

    opened by berdal84 0
Releases(v0.9.6)
Open-source graph editor, with built-it step-by-step Dijkstra's Algorithm.

Visual Dijkstra - Simple visual graph editor, with built-in step-by-step Dijkstra's algorithm Visual Dijkstra is a free and open-source tool, designed

Samuele Girgenti 31 Oct 10, 2022
Graphs the progress of block height in your Chia Full Node.

Chia Height Graph Monitor for Chia Block Height Introduction The chiaheightgraph tool will graph Chia Block Height changes in a linux terminal. Use a

Bram Stolk 9 Sep 14, 2021
📝 Performant plain text editor for iOS with syntax highlighting, line numbers, invisible characters and much more.

?? Welcome to Runestone - a performant plain text editor for iOS with code editing features Runestone uses GitHub's Tree-sitter to parse code to a syn

Simon Støvring 2.1k Dec 31, 2022
Flexible level editor

Tiled Map Editor - https://www.mapeditor.org/ About Tiled Tiled is a general purpose tile map editor for all tile-based games, such as RPGs, platforme

mapeditor.org 9.3k Dec 31, 2022
Redacted source code for exercises proposed in the Data Structures and Algorithms laboratory.

fsega_ie2_dsa Redacted source code for exercises proposed in the Data Structures and Algorithms laboratory. Usage The src/ directory contains a direct

Cezar Mathe 1 Dec 5, 2021
Source code of the paper "Lord of the Ring(s): Side Channel Attacks on the CPU On-Chip Ring Interconnect Are Practical"

Overview This repository contains the source code to reproduce the experiments of the paper: Lord of the Ring(s): Side Channel Attacks on the CPU On-C

null 129 Oct 16, 2022
Algo-Tree is a collection of Algorithms and data structures which are fundamentals to efficient code and good software design

Algo-Tree is a collection of Algorithms and data structures which are fundamentals to efficient code and good software design. Creating and designing excellent algorithms is required for being an exemplary programmer. It contains solutions in various languages such as C++, Python and Java.

DSC-Banasthali 53 Oct 4, 2022
Rajesh Kumar Sah 1 Nov 20, 2021
This repository contains the Assignment code of Data Structures and Algorithms Assignments of SPPU, Second Year IT Syllabus (2019 pattern)

DSAL This repository contains the Assignment code of Data Structures and Algorithms Assignments of SPPU, Second Year IT Syllabus (2019 pattern) Assign

Mujeeb Khan 2 Dec 11, 2022
libsrt is a C library for writing fast and safe C code, faster.

libsrt is a C library for writing fast and safe C code, faster. It provides string, vector, bit set, set, map, hash set, and hash map handling. Suitable for soft and hard real-time. Allows both heap and stack allocation. *BETA* (API still can change: suggestions are welcome)

null 517 Dec 24, 2022
An open source initiative for implementing and testing algorithms in various programming languages.

Algorithms An open source initiative for implementing and testing algorithms in various programming languages. Contributing The idea here is to learn

Manipal's open source academic portal. 1 Nov 28, 2021
C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types, continuous memory storage, and no pointers are involved

C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types, continuous memory storage, and no pointers are involved

Hossein Moein 1.7k Jan 9, 2023
A simple single header 64 and 32 bit hash function using only add, sub, ror, and xor.

K-HASH A simple single header 64 bit hash function using only add, sub, ror, and xor. This a just general-purpose hash function for like making hash m

null 70 Dec 27, 2022
Simple C++ code to benchmark fast division algorithms

fast_division Simple C++ code to benchmark fast division algorithms relying on constant divisors. The code is a companion to the paper Integer Divisio

Daniel Lemire 39 Dec 27, 2022
Tuplex is a parallel big data processing framework that runs data science pipelines written in Python at the speed of compiled code

Tuplex is a parallel big data processing framework that runs data science pipelines written in Python at the speed of compiled code. Tuplex has similar Python APIs to Apache Spark or Dask, but rather than invoking the Python interpreter, Tuplex generates optimized LLVM bytecode for the given pipeline and input data set.

Tuplex 791 Jan 4, 2023
Public repository for rolling release of main Vector robot code repository.

vector Public repository for rolling release of main Vector robot code repository. This rolling release will be worked to completion until all non-thi

Digital Dream Labs 63 Dec 19, 2022
This repo is full with code from random c++ projects. Anyone can contribute

Randomcplusplus Learn c++ This repo is for random c++ code that can be used for any project Learn how to code in c++ by using and reading peoples exam

Thomas Kerby 2 Jan 30, 2022
An optimized version of the KGloVe code (global embeddings for Knowledge Graphs)

Optimized Implementation of the KGloVe algorithm This repository contains an optimized implementation of KGloVe, which was proposed in Cochez M., Rist

Michael Cochez 2 Feb 25, 2022