Giter Club home page Giter Club logo

model-compare's Issues

Improve extension-server communication

Currently the communication is implemented with custom strings that are parsed by the extension. This should be improved.
List of things that could be improved:

  • Custom class of JSONTreeNode/TreeNodeCollection/JSONCompareResponse/... We definitely should create POJOs based on the EObjects and use an Gson or something similar to serialize objects where necessary instead of using a custom ObjectManager concept.

  • In general we need some documentation as it is not obvious what every field is supposed to do. There is UUID, reference UUID, match, graphical IDs, reference Graphical IDs, connections, etc.

  • Server-Client communication is done through I/O, i.e., System.out read by the client. Partially these are json objects but some information is encoded differently, e.g., the merges are just a concatenated string of type, target, and direction which are manually encoded and decoded. Using a standardized protocol such as JsonRPC would be nicer and simplify communication as Theia already has support for JsonRPC (e.g., forwarding from backend to server etc).

Improve server

This is an epic that tracks potential improvements on the server part:

  • Clean up UUID operations
  • EPackage instance is loaded from a given jar by ARG_JAR and ARG_PACKAGE. This seems to work well but maybe should be documented somehow as it is not straight-forward. Also it has it's limitations as custom resources might not be supported, everything is loaded as an XMI Resource.
  • isValidFile / getUri: Windows support?
  • load: Re-registers packages and extensions into the resource set for every resource that is loaded. Currently does not matter as there is one resource per resource set (source, target, base).
  • Use Apache CLI to parse CLI arguments for starting.
  • Use some constants instead of duplicated strings, e.g., direction 'left', type 'conflict', etc.
  • Add sub-packages on the server to better structure code

Improve client

This is an epic that tracks potential improvements on the server part:

  • Remove unused code parts
  • Refactor variable names (currently there are suboptimal namings, mixture of title cases and so on)
  • Proper usage of async functions instead of promise chaining
  • Correctly hide/gray out not applicable buttons on the tree comparison
  • Have keybinding support for undo
  • redo functionality
  • Improve styling of the tree view
  • Improve the file selection dialog
  • Allow for undo after save
  • Allow multiple comparisons at the same time
  • Do we actually need the node backend?

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.