Codimension - Open Source Python IDE

What is Codimension?

Codimension is yet another free experimental Python IDE licensed under GPL v3.

Codimension aims to provide an integrated system for:

  • traditional text-based code editing, and
  • diagram-based code analysis.
  • Many Python developers will find codimension useful as-is, even though not all of its features have been implemented yet.

    The finished codimension will include several graphics-based features. Diagrams will be generated for imports and classes. The results from some tools, such as a profiler, will be represented graphically. Graphical features will be interactive and if you double click on a class box in a diagram, for example, the corresponding source code file will be opened and the cursor will jump to the appropriate line. A major objective is to provide an editor which is capable of working simultaneously with textual and graphical representations of the code. With this feature in place, changing the text will automatically update the graphics and vice versa. Finally, the editor will support the grouping and traversal of code blocks, which should greatly simplify the analysis of unfamiliar code.

    Acknowledgements

    Detlev Offenbach – the author of the Eric Python IDE. Codimension borrows some code and some ideas from Eric 4.

    My colleagues at NCBI who regularly listen to my talk about codimension and even review documents and give valuable advice.

    Features

    Implemented features (major only, no certain order):

    • Ability to work with standalone files and with projects
    • Remembering the list of opened files (and the cursor position in each file) separately for each project
    • Editing history support within / between files
    • Ability to hide / show tab bars
    • Recently edited files list support for each project separately
    • Recent projects list support
    • Automatic watching of the project directories for deleted / created files and nested directories
    • Template supports for new python fies for each project separately
    • Editor syntax highlight
    • Imports diagram for a file, a directory (recursively) or for a whole project with jumps to the code
    • Simple line counter
    • Hierarchical python files content browser with quick jumps to the code
    • Hierarchical classes / functions / globals browsers with filtering and quick jump to the code
    • Object browsers support showing docstrings as items tooltips
    • File outline tab
    • Running pylint with one click and quick jumps to the code from the produced output
    • Running pymetrics with one click and quick jumps to the code from the produced output where possible
    • Ability to run pylint / pymetrics for a file, a directory (recursively) or for a whole project
    • Table sortable representation of the McCabe cyclomatic complexity for a file or many files
    • Ability to have pylint settings file for each project separately
    • Opening file imports using a hot key; jumping to a definition of a certain imported item
    • Incremental search in a file
    • Incremental replace in a file
    • Search in files
    • Search for a name (class, function, global variable) in the project
    • Search for a file in the project
    • Jumping to a line in a file
    • Pixmaps viewer
    • Editor skins support
    • Detecting files changed outside of codimension
    • Code completer
    • Docstring and calltip search for the current editor word
    • Jump to the definition of the current word
    • Finding occurrences of the current word
    • Jumping to the beginning of the current function or class
    • Main menu
    • PythonTidy (python code beautifier) integration and diff viewer
    • Unused classes, functions and global variables analysis
    • Disassembling for classes and functions
    • Table representation of profiling results
    • Graphics representation of profiling results (side effect: shows a call graph)
    • Debugger
    • PyFlakes integration
    • Calltips
    • Plugin support
    • SVN support
    • Navigation bar

    Planned features (not in priority order):

    • Classes diagram with jumps to the code
    • TODO tab
    • Bookmarks
    • Refactoring support
    • Print / print preview for various windows
    • Ability to tear off / merge editor windows
    • Sphinx integration
    • Graphics representation and editing the program control flow

    News

    2014-May-21

    • Codimension python parser 1.6.8 has been released.

    2014-May-06

    • Codimension IDE 2.3.1 and python parser 1.6.7 have been released.

    2014-March-30

    • Codimension IDE 2.3.0 and python parser 1.6.6 have been released.

    2013-December-14

    • Codimension IDE 2.2.1 and python parser 1.6.5 have been released.

    2013-August-28

    • Codimension IDE 2.1.1 has been released.

    2013-July-1

    • Codimension IDE 2.0.2 and python parser 1.6.2 have been released.

    • Thanks to everybody who helped with spotting bugs.
      Special thanks to Ilya Loginov who helped with building packages.

    2013-June-18

    • Codimension IDE 2.0.1 and python parser 1.6.1 have been released.

    • Thanks to everybody who helped with spotting bugs and sharing ideas.
      Special thanks to Ilya Loginov who helped with building packages.

    2013-January-21

    • Codimension IDE 1.8 and python parser 1.6 have been released.
    • Thank you to everybody who filed bugs

    2012-October-31

    • Codimension IDE 1.7 has been released.

    2012-September-21

    • Codimension IDE 1.6 and python parser 1.5 have been released.

    2012-January-30

    • Codimension 1.4 has been released.

    2012-January-21

    • Video is published: Codimension installation on Ubuntu.

    2011-December-15

    • Codimension 1.3 has been released.

    2011-October-19

    • Codimension 1.2 has been released.

    2011-September-14

    • Python parser 1.3 and codimension 1.1 have been released.

    2011-June-15

    • RPMs for the python parser have been released.

    2011-May-31

    • Debian packages for the python parser have been released.


    Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

    Разрешается копирование и распространение этой статьи любым способом без внесения изменений, при условии, что это разрешение сохраняется.
    Last Updated: May 21, 2014