Giter Club home page Giter Club logo

graphedit's People

Contributors

sillydan1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

graphedit's Issues

keybinds does not work in floating tabs

Reproduction Steps

  • Create new model file
  • Open the new model file
  • Switch to Petrinet syntax
  • Check that keys 1 and 2 will switch between place and transition vertex choices
  • Pull tab into a new window
  • The keybinds will not work anymore

See #16 (comment) for more detail

Packaging and installation

You should be able to actually install the application as a program on your OS.

  • Linux (flatpak, .deb(?), appimage(?))
  • OSX (homebrew, dmg(?))
  • Windows (.msi or something idk)
  • CI / CD
    • CI: build and run tests
    • CD: publish builds on semver compatible tag commit pushes

Missing introduction

The interface is a bit unintuitive and could use a "getting started" thing. Maybe host it on the documentation site

Python Bindings

As a plugin developer, I dont necessarily want to use Java to build my plugin. Python would be preferable

Maybe take a look at JEP for a solution to this

Implement user feedback

  • Release v1.0.0
    • javadoc
    • proper deb
    • dont package /doc (javadocs on gtz.dk instead)
    • Print / get / show the project dir
    • Fully collapsable log tab and file pane (easiest is to simply remove the min-height / min-width)
    • Ctrl + scroll wheel is expected to zoom in/out, it doesnt
    • Rightclick drag is expected to drag viewport, it doesnt
    • CD
    • Delete key doesnt work on unified tool
    • Ctrl+N dialogue not autoappending .json
    • Preloader is ass - just launch into /tmp/graphedit/uuid and ask for savedir on first Ctrl+S (or something better)
    • Change saved settings file notification to "saved /path/to/place/settings.json" instead
    • MenuItems are lowercase, they should be Upper Case
    • window title is just "java"
    • trying to open project.json through filepane shouldn't be that scary
    • inspector pane is odd to use
    • buffer changed *-thing
    • Unread logs *-thing
    • modals should have titles
    • modals are ugly - missing padding
    • autoselect unified tool
    • homebrew
    • flatpak
    • readme install steps

Wrapper for viewmodel boilerplate code

As a plugin developer, it is annoying that I have to create so much boiler plate code for my view and viewmodels. It would be nice if there was some automatic eventlistener abstraction.

Something like

private AutoListened<Boolean> myCustomProperty; // no need for adding the myCusomProperty.addEventListever cruft

Set up public-facing stuff

  • Github kanban board / roadmap project
  • javadoc
  • Logo commission
  • Manpages
  • Changelog (autgenerated at release)
  • wiki at graphedit.gtz.dk
  • Readme polish

Adding Windows compatibility to build.gradle

Because Windows uses different backslashes in folder names, the gitCommitSha and gitCommitShaLong methods need to be changed a little.
First the result is saved into a string, then all "" are replaced with "/". This is still a valid syntax, as using / in folder names is OS-independent.

This issue also suggests using multiline formating for the string from these methods, as they are added to BuildConfig in the buildConfig method.

gitCommitSha

def gitCommitSha = { ->
    def stdout = new ByteArrayOutputStream();
    exec {
        commandLine 'cmd', 'git', 'describe', '--long', '--always', '--dirty', '--exclude=*', '--abbrev=8';
        standardOutput = stdout;
    }
    def rawSha = stdout.toString();
    rawSha = rawSha.replace('\\', '/');
    return rawSha.trim();
}

gitCommitShaLong

def gitCommitShaLong = { ->
    def stdout = new ByteArrayOutputStream();
    exec {
        commandLine 'cmd', 'git', 'describe','--long','--always','--exclude=*','--abbrev=40';
        standardOutput = stdout;
    }
    def rawShaLong = stdout.toString();
    rawShaLong = rawShaLong.replace('\\', '/');
    return rawShaLong.trim();
}

buildConfig

buildConfig {
        buildConfigField("String", "APP_NAME", "\"${project.name}\"");
        buildConfigField("String", "APP_VERSION", provider { "\"${project.version}\"" } );
        buildConfigField("long", "BUILD_TIME", "${System.currentTimeMillis()}L");
        buildConfigField("String", "COMMIT_SHA", "\"\"\"\n${gitCommitSha()}\"\"\"");
        buildConfigField("String", "COMMIT_SHA_LONG", "\"\"\"\n${gitCommitShaLong()}\"\"\"");
        className("BuildConfig");
        packageName("dk.gtz.graphedit");
        useJavaOutput();
    }

NTTA LSP example implementation

  • Protobuf specification (that way, you are language agnostic)
  • Implement ILsp / ILspEngine interfaces
  • Lint protobuf specification
  • Implement ILint / ILinter interfaces

Extract protobuf spec into own repository

It's a bit too annoying with the copy-paste mess... Having the lsp.proto in a seperate repository would make it easier to synchronize versions.

Maybe also consider if there are someone who've made a protobuf package manager - this could also be your time to shine 🌞

Nevermind, this buffrs looks like the way to go (once they have the buffrs registry up and running)

Hyperlink colors are weird

The colors in markdown-style hyperlinks are randomized, and they dont seem to be isolated to the link itself. Probably just a logic bug somewhere

Example

Screenshot 2023-12-21 at 10 06 22

Focus does not work on non-saved elements

Reproduction Steps

  • Open a model
  • Add a vertex
  • Select that new vertex
  • Change Tab
  • Press FOCUS button

I suspect this is just a simple handler that is missing when creating new vertices

Importers and Exporters

An interface for a step right before and after a save action that converts model objects to other types of model objects. Maybe. Or maybe it should just be a Files > Export Project > [pick your exporter] and then it saves the model file in the format you've specified (same with Files > Import Project)

Undo does not respect closed viewmodels

Description

The undo tree will keep remembering stuff that has happened in closed files.

Reproduction Steps

  • Open a model file
  • Do some edits
  • Save the model
  • Close the model
  • Inspect the undo tree. There are still steps.

Suggested Solution

We need to detect that when a model is being closed, that all associated undo-tree nodes are removed as well.

Feature request: Plugin manager

It would be nice if we had a first-party plugin manager, so users can enable / disable plugins at runtime and maybe search on a "marketplace" for plugins. The Standard plugins should be disable-able, but not uninstallable.

I personally dont have any experience with this, so any help would be much appreciated.

Lua Bindings

As a plugin developer, I dont necessarily want to use java as my plugin language. It would be nice to be able to write plugins on Lua.

Take a look at luaj for inspiration

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.