This project aims to develop a next generation cross-platform IDE featuring a visual structured code editor.
Envision is an open-source project using the BSD license. The project is based on the Qt framework.
Envision is in its early development stage and can not be used for programming yet. The current version illustrates some of the key visualization and interaction concepts for the IDE.
Envision currently runs on Linux and Windows. Development is done in Linux. There are two branches on GitHub:
- master - contains an older, more stable version of the IDE
- development - contains the latest changes and features. This branch is typically updated on a daily basis and might contain severe bugs. When the development branch is "in a good state" it is merged into master.
- A core component that finds and loads plug-ins at run time
- A small test framework for testing plug-ins
- An extensible application model which currently supports a subset of Java (no generics, no interfaces, no reflection, no libraries)
- Flexible visualizations for elements of the model
- Interaction directly with the visualizations using a structured editor approach
The implemented features should be considered a proof of concept only and are not stable at this point.
- Import/export to any programming language
- Support for external libraries
Envision is written in C++ and uses some features of the new C++11 standard. Make sure your C++ compiler is up-to-date. Gcc versions 4.6 and newer should be sufficient.
- If you do not have the Qt development version installed, download and install it.
- Download and install the Qt Integration plug-in for your version of eclipse (32/64 bit).
- Inside Eclipse, configure Qt so that it knows where to find the development files.
- Download Envision's sources. The project is structured in separate directories where each one is an Eclipse/Qt project.
- Load all projects into Eclipse. Eclipse/Qt might try to change some project files. Reject all requested changes.
- Build all projects.
- Choose a project you would like to test and launch it. The default launch configuration will run Envision and will initiate the built-in test for the selected project. Projects such as
OOVisualization
,OOInteraction
,ControlFlowVisualization
andCustomMethodCall
visualize some existing code and are interesting to explore.
-
If you do not have the Qt development version installed, download and install it.
-
Download Envision's sources. The project is structured in separate directories and each one is a Qt project.
-
Run
qmake
in all directories. -
Run
make debug debug-install
in all directories -
Enter the
DebugBuild
directory and start Envision with one of:Envision -graphicssystem raster --test oointeraction Envision -graphicssystem raster --test oovisualization Envision -graphicssystem raster --test controlflowvisualization Envision -graphicssystem raster --test custommethodcall
Running the tests for the OOVisualization
and OOInteraction
projects will display some code in a few methods. You might want to explore the visualizations and try interacting with the various elements.
Launching the ControlFlowVisualization
project displays two methods with some non-trivial control flow graph. Selecting a method and pressing F2
will switch the visualizations between the standard one and the control flow alternative.
Launching the CustomMethodCall
project shows a very simple class that defines a few methods. On the right the methods are called and one can see that each method call is visualized in a non-standard way that is dependent on the called method.