Coder Social home page Coder Social logo

mmedit's Introduction

MMEdit - A EMF/ECore metamodel editor based on Concrete

MMEdit is an example of a Concrete based editor. Concrete is a lightweight, web-based model editor which can be configured for different DSLs (Domain Specific Languages).

MMEdit is an editor for metamodels compatible with the Eclipse Modelling Framework (EMF, www.eclipse.org/modeling/emf). In other words, it can edit models which are instances of the ECore meta-metamodel and it can read and write the XMI serialization used by the original Eclipse based metamodel editor. Thus metamodels can be exchanged between both programs in either direction.

Being a Concrete based editor it features:

  • Keyboard based editing with auto completion

  • Rich graphical style with tables, boxes and icons. Use the preferences dialog to switch between the predefined layouts.

In addition to the EMF compatible .ecore XML files, MMEdit can edit ECore metamodels serialized in the RGen Ruby representation. This way it greatly improves the way RGen metamodels can be created and maintained.

MMEdit is only beta (if not alpha), so be sure to create a backup of the metamodels you are going to edit.

Download

You can get the latest version from github.

Installation

MMEdit can be installed as a Ruby gem:

> gem install mmedit

It requires Concrete, RGen and the little “andand” gem which should be installed automatically. Otherwise you can install them using:

> gem install andand rgen concrete

The Ruby part of Concrete should work with any Ruby version starting with Ruby 1.8.6. The Ruby installers can be downloaded from:

ruby-lang.org

Documentation

Start MMEdit and press the “Browse Help” toolbar button to show the Concrete User’s Guide.

Examples

There are two example metamodel files which come with MMEdit. One is serialized using XMI, the other is serialized in the RGen metamodel format.

  • example/statemachine_metamodel.ecore

  • example/statemachine_metamodel.rb

In order to view and edit the metamodels just pass the respective metamodel file to MMEdit:

> mmedit example/statemachine_metamodel.ecore

or

> mmedit example/statemachine_metamodel.rb

You can also pass both metamodel files to mmedit at the same time. However this will lead to errors due to duplicate identifiers since both files contain the same metamodels.

Once MMEdit has started, point your browser to localhost:1234 to start editing. For best results use an up-to-date version of Chrome or Firefox.

License

MMEdit is licensed under the terms of the MIT license, see the included MIT-LICENSE file.

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.