Skip to content

katepol/jetpad-projectional

 
 

Repository files navigation

JetBrains JetPad Projectional Editing Framework

Projectional editing is an approach to editing where instead of working with text as is, user works with model data structure directly. The following widely used applications can be considered projectional editors:

  • WYSIWYG text editor
  • Spreadsheet applications
  • Diagram editors

The framework implements projectional editor in the style of JetBrains MPS (http://www.jetbrains.com/mps/), with the following advantages over it:

  • Support for web - the framework uses GWT for this purpose
  • Testability - it's possible to create fast test for almost any editor.
  • Better architecture

It also supports new features which aren't available in MPS:

  • Diagrams - it's possible to create diagrams with the framework and mix and match diagrams with MPS-like editors
  • Hybrid editing - hybrid approach to expression editing which makes it much more text like while keeping most of the projectional editor's benefits

This framework is based on JetBrains JetPad Mappers framework (https://github.com/JetBrains/jetpad-mapper). You need to install its artifacts, if you want to use or participate in the development of the framework.

You can try the following online demo:

Modules:

  • cell - cells
  • projectional - projectional (MPS like) editing
  • hybrid - hybrid editors
  • dataflow - data flow diagram demo
  • demo - demos
  • domUtil - dom utilities
  • event - commonly used event objects
  • grammar - dynamic LR parser generator which is used in projectional editing framework
  • view - views for projectional editing. Can be targeted to AWT graphics or SVG in browser

About

jetpad-projectional

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 99.5%
  • Other 0.5%