Frequently Asked Questions
What is Codimension?
Codimension is a free experimental Python 2 IDE licensed under GPL v3, written mostly in Python with a couple of custom modules written in C/C++.
It has most of the traditional IDE features however the main focus of Codimension is on graphics representation of the code control flow. Flowcharts are generated so fast that the process is integrated into a smooth update of the diagram while someone is typing the code. The IDE detects pauses in typing and triggers the flowchart updated.
Codimension studies how the graphics representation of the code can be integrated with the traditional textual representation without sacrificing any of them. Codimension also seeks how the text editing features can be implemented on the graphics view and what new features could be introduced for graphics.
Why is it called Codimension?
There are three concepts in this name: 'co', 'code', and 'dimension'. The concept 'code' appears for the obvious reason that Codimension is used with code. The concept 'dimension' has to do with the idea that Codimension adds a new dimension to the process of working with python code - specifically, interactive graphical representations of the control flow. The concept 'co' means that Codimension's textual and graphical representations are linked and inter-operate. (It is just a coincidence that 'codimension' is also a mathematical term.)
Another way to justify the IDE name is that 'Codimension' just sounds cool.
Why another IDE? Why not to extend an existing one?
Well, that was the first thought, but analysis of existing open source IDE plugin interfaces revealed that they are not really suitable to implement a graphical representation of the program control flow. Sometimes the plugin interface documentation was not clear either. To make the things worse none of the existing python code parsers provided all the required information and had to be rewritten. Sometimes the user interface decisions were argueable. So bearing all this in mind, it was decided to start Codimension as a separate project.
What are the supported platforms?
Codimension packages are available for a few Linux flavors. See the Download page for the details.
Can I run Codimension on Windows?
There are no ready to use packages for Windows. There are no nearest future plans to port it on Windows.
However, there were report from some users who successfully ran Codimension on Windows. Basically, all the source code is available (see the Source download page) so you can give it a try on Windows. Nearly all the third party packages are available for Windows too and the Codimension source code is written in C/C++/Python which promises relatively easy process of porting with a few obstacles in the area of symlinks.
If you believe you did the work of porting Codimension on Windows properly and you wish to share the packages with the others then please let us know so we can share a link or provide the packages to download from this site.
Can I run Codimension on MAC?
There are no ready to use packages for MAC. There are no nearest future plans to port it on MAC.
The modern MAC OS however has unix under the hood and thus there must be no big deal in porting Codimension onto MAC OS. All the Codimension source code is available (see the Source download page) so you can give it a try on MAC OS. All the third party packages should be available for MAC OS too and the Codimension source code is written in C/C++/Python which promises relatively easy process of porting.
If you believe you did the work of porting Codimension on MAC OS properly and you wish to share the packages with the others then please let us know so we can share a link or provide the packages to download from this site.
How to create my own color scheme?
At the moment there is no documentation of how to do it and there is no UI support for this. It is however possible to create your own color scheme manually. Please contact Sergey Satskiy for the instructions.
How to submit a bug?
Please see the details at the non-code contributing page ('Submitting a bug' section).
How to request a feature?
Please see the details at the non-code contributing page ('Your ideas' section).
Can this techology be implemented for my favorite language?
Python was chosen as a popular language which has many of the modern programming languages concepts covered. Yet Python is syntactically simple enough to make it feasible to develop an IDE and parsers within an Open Source project by one developer. Basically it is a matter of a parser for your favorite language to have the diagrams generated in a very similar way.