Skip to content

sillydan1/graphedit

Repository files navigation

graphedit logo

Graphedit is an application for visualising, creating, editing and debugging graph-based languages


Showcase 👀

Image 1 Image 2

Build 💾

The project is compiled using gradle (version 7+):

# Just build the app
gradle build
# Compile and start the editor
gradle run

If you open the project in an editor and the class BuildConfig doesn't exist, simply running gradle build should autogenerate the class.

Extend 🔌

Graphedit supports third party plugins. Take a look at the official template repository as a starting point on creating your own plugin. Also make sure to take a look at the javadocs page for reference as well. If you want more of an example, take a look at how the std plugin is structured.

Lua Bindings 🌙

With graphedit version 1.5.0+ you can also extend the editor using the Lua programming language. Simply add a file called init.lua in the graphedit configuration directory (see below) and start scripting! See the official lua-types repository for details on what is possible.

Where to put init.lua 📂

  • Windows: %APPDATA%/graphedit/lua/init.lua
  • Linux: ~/.local/graphedit/lua/init.lua
  • MacOs: ~/Library/Application Support/Graphedit/lua/init.lua

The Centralized Plugin Database 📦

If you write a java plugin, you can submit .jar releases to the plugin database and the Plugin sidepanel will display it for all other Graphedit users as available for download!

Contribute 🤝

We welcome all contributions. If you want to contribute, please take a look at the contribution guidelines and the github project to see what needs to be done / is currently being worked on.

Install

Linux 🐧

We provide .deb and .rpm packaging formats directly from the github releases

Ubuntu or Debian

Download the .deb file from the latest github release

wget https://github.com/sillydan1/graphedit/releases/latest/download/graphedit.deb
dpkg -i graphedit.deb

RPM

Download the .rpm file from the latest github release

wget https://github.com/sillydan1/graphedit/releases/latest/download/graphedit.rpm
rpg -i graphedit.rpm

OSX 🍎

After installing you may need to go into system settings > privacy settings and allow the app to be run. Alternatively, you can follow this guide.

brew install sillydan1/graphedit/graphedit

or download the .dmg directly from the latest github release.

Windows 🪟

Simply Download the .msi installer from the latest github release and run it.

Architecture 🏛️

Graphedit is designed from the ground up to be easy to extend with an opinionated, but easy to understand and efficient architecture. You can extend the editor using plugins. Take a look at the plugin github template to get started on writing your own plugin.

Model View Viewmodel

This project is strongly influenced by the MVVM (Model View ViewModel) design pattern and the classes and packages are named appropriately so.

Core

Includes all the core functionality for Graphedit. This includes all the views, viewmodels, models and all the associtated business logic such as serializers and various tooling.

Graphedit

The primary entrypoint for the default application. Doesn't do much other than start.

std

The standard plugin that provides some additional language syntaxes and example language server implementations.