- Frequently Asked Questions
- Codimension FAQ
- What is Codimension?
- Why is it called Codimension?
- Why another IDE? Why not to extend an existing one?
- What are the supported platforms?
- Can I run Codimension on Windows?
- Can I run Codimension on MAC?
- How to create my own color scheme?
- How to submit a bug?
- How to request a feature?
- Can this techology be implemented for my favorite language?
- codimension 4.9.1
- Navigation
- Project links
- Statistics
- Maintainers
- Classifiers
- Project description
- Installation
- Troubleshooting
- Codimension python ide windows
- Релиз Codimension Python IDE 3.0.0
- Пакеты для установки etc.
- Re: Пакеты для установки etc.
- эмм откуда его взять.
Frequently Asked Questions
Codimension FAQ
What is Codimension?
Codimension is a free experimental Python 3 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 was developed on Linux and it is pip installable on Linux. See the Download page for the details.
Can I run Codimension on Windows?
Codimension has never been tried on Windows. While it is theoretically possible to make it Windows compatible no efforts were made for this and there no plans to do so at the time of writing.
Can I run Codimension on MAC?
Codimension has never been tried on 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.
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. Generally the color scheme is split into a few pieces:
- the application CSS
- general settings ( JSON format is used)
- control flow view settings ( JSON format is used)
- text editor syntax highlight
The first three items are stored in
/.codimension3/skins/your-skin-name/ directory and can be changed simply by editing the files. The last item depends on the text editor component qutepart and the questions could be directed to the authors of the component.
If you need more information, please contact Sergey Satskiy.
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.
codimension 4.9.1
pip install codimension Copy PIP instructions
Released: Aug 6, 2020
Experimental Python 3 IDE which aims at both textual and graphical representation of a code. The graphics is automatically re-generated while the code is typed
Navigation
Project links
Statistics
View statistics for this project via Libraries.io, or by using our public dataset on Google BigQuery
License: GNU General Public License (GPL) (GPLv3)
Maintainers
Classifiers
- Development Status
- 5 — Production/Stable
- Intended Audience
- Developers
- License
- OSI Approved :: GNU General Public License (GPL)
- Operating System
- POSIX :: Linux
- Programming Language
- Python :: 3
Project description
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.
At the moment a few graphics oriented features are implemented. One of the major (and the most visible) is a generation of a control flow diagram while the code is typed. The screenshot below shows the main area divided into two parts. The left one is a traditional text editor while the right one is a generated diagram. The diagram is updated when the IDE detects a pause in typing the code.
The IDE implements many of the typical features to support the development process. The uniqueness of the IDE however is in the graphics representation of the code. Thus the main focus of the project is to implement more features for the graphics pane.
Installation
Note: python 3.5/3.6/3.7 is required
The IDE is pip installable:
The feature of building some diagrams e.g. a dependency diagram requires a graphviz package. The installation depends on a system. E.g. on Ubuntu you would need to do the following:
To have plantUML diagram support java needs to be installed. The installation depends on a system. E.g. on Ubuntu you would need to do the following:
Troubleshooting
The IDE depends on a couple of the binary modules which are compiled at the time of the installation. So your system needs a g++ compiler installed as well as python interpreter header files. To install the required packages on Ubuntu you would need to do the following:
Codimension python ide windows
Codimension Python 3 IDE
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.
At the moment a few graphics oriented features are implemented. One of the major (and the most visible) is a generation of a control flow diagram while the code is typed. The screenshot below shows the main area divided into two parts. The left one is a traditional text editor while the right one is a generated diagram. The diagram is updated when the IDE detects a pause in typing the code.
The IDE implements many of the typical features to support the development process. The uniqueness of the IDE however is in the graphics representation of the code. Thus the main focus of the project is to implement more features for the graphics pane.
Note: python 3.5/3.6/3.7 is required
The IDE is pip installable:
The feature of building some diagrams e.g. a dependency diagram requires a graphviz package. The installation depends on a system. E.g. on Ubuntu you would need to do the following:
To have plantUML diagram support java needs to be installed. The installation depends on a system. E.g. on Ubuntu you would need to do the following:
The IDE depends on a couple of the binary modules which are compiled at the time of the installation. So your system needs a g++ compiler installed as well as python interpreter header files. To install the required packages on Ubuntu you would need to do the following:
Релиз Codimension Python IDE 3.0.0
Экспериментальная среда разработки для Python 2 обновилась до версии 3.0.0.
Основное нововведение версии это генерация графического представления кода. Теперь окно среды разработки разбито на две части. Слева — привычный текстовый редактор, а справа — автоматически генерируемая диаграмма, по возможности приближенная к традиционным блок-схемам алгоритмов. Генерация и перерисовка диаграммы производится по ходу набивки текста. Среда разработки определяет паузу в действиях разработчика и обновляет диаграмму, если код остается корректным. В результате появляется возможность работы не только с текстом программы, но и с его графическим представлением.
Как обычно, релиз также содержит улучшения и исправления замеченных ошибок.
Пакеты для установки etc.
Ссылки, которые могут оказаться полезными:
Надеюсь Python 3 планируется? Хотя бы в 2020 году? 🙂
Надеюсь Python 3 планируется? Хотя бы в 2020 году? 🙂
Python 3 не в числе первоочередных приоритетов. Я пока окончательно не принял решение — там работы достаточно много. Моя работа с питоном пока, в основном, крутится вокруг python 2. Однако, скорее да, чем нет.
Я просто почему про 2020 вспомнил — это ж вроде дата, когда Python 2 прикопают окончательно. В любом случае — успехов проекту
Основное нововведение версии это генерация графического представления кода.
Обалдеть, реально крутая штука (хотя еще не видел сабж, но давно ищу такое)!!
Спасибо за проект!
Давно искал удобную gui-панель для писания кода в numpy, scipy и проч. Но вопрос от коллег сохраняется — что все-таки с python3?
Может сделаете некоторую платформу, которая будет просто подхватывать установленную в систему библиотеку, и таким образом выступать в роли, скажем, eclipse?
Ещё одна IDE для хипстерского язычка?
Диаграмма в дебаге показывает онлайн значения входов, выходов?
А что не хипстерское?
Питон 3 лично мне прямо сейчас не нужен. Людей, которым сильно надо бы было и которые хотели бы помочь в портировании, пока тоже не наблюдается. Поэтому текущая диспозиция выглядит так. Технических препятствий для портирования нет, но это времяемкая задача. Она включает, как минимум, следующее (Codimension сделан из трех пакетов — два бинарных модуля расширения и ide (здесь описание архитектуры: http://codimension.org/documentation/codimension-ide-architecture.html)):
- портировать парсер содержимого питон файлов. Это бинарный модуль и он использует python.so. То есть у питона 3 теоретически может быть все по-другому, хотя я думаю, что оно почти одинаково. Плюс возможная разница в синтаксическом дереве, но, опять же, думаю что там примерно одинаково сделано.
- портировать парсер control flow. Те же комментарии, что и выше.
- портировать IDE. Она написана на питоне и там основных засад две или три. Во-первых, наличие зависимостей. Во-вторых, отладчик — там питон 3 может по другому работать. И самая большая — текстовый редактор. Сейчас используется QScintilla и она совершенно не устраивает. Чуть посложнее случай и она производит корку. Надоела очень сильно, ее надо поменять. Претендент на замену qutepart, но там нет поддержки margins и ее туда надо добавлять. Плюс, по-маленькому, надо бы еще rope на что-то заменить.
Это все можно и нужно сделать. Но с другой стороны есть и более интересное направление развития — в сторону расширения функциональности графики. Поэтому — не знаю, как пойдет. Найдутся активные контрибьютеры, будет скоро. Не найдутся, тогда большой вопрос.
Может сделаете некоторую платформу, которая будет просто подхватывать установленную в систему библиотеку, и таким образом выступать в роли, скажем, eclipse?
Не понимаю, о чем вы говорите. Поясните, пожалуйста.
Диаграмма в дебаге показывает онлайн значения входов, выходов?
Нет. Пока графическая функциональность совершенно не развита. Это все в будущем. Равно как и редактирование кода прямо в графической части.
Python 3 не в числе первоочередных приоритетов. Я пока окончательно не принял решение — там работы достаточно много. Моя работа с питоном пока, в основном, крутится вокруг python 2.
Мужик давай быстрей работай. Скоро придумают Python 4.0
Красиво. Добавил в букмарки.
Тогда не взлетит пока.
Си с ассемблером.
2020 вспомнил — это ж вроде дата, когда Python 2 прикопают окончательно.
Неа. Не будет. Твердо и четко.
Будут(будем) развивать своими силами или ещё как. Слишком много на питоне2 кода.
Кстати, был в яндексе недавно, пишут на питон2 в т.ч. новый код. И ещё в нескольких местах на собеседованиях — везде питон2.
Ну всё, жыдБрейнз на горящем стуле прыгают
Это хипстерство, настоящее мужики пишут на лиспе.
Переползаю с пистона на гоу. Доволен.
Re: Пакеты для установки etc.
Основное нововведение версии это генерация графического представления кода.
О! Это фантастическая штука!
gui-панель для писания кода в numpy, scipy и проч
Оч интересно. Попробуем в ней поработать.
эту «ide» можно заменить плагином к pycharm?
Это хипстерство, настоящее мужики пишут на лиспе.
Для хипстеров есть Closure.
Пользовался Codimension когда начинал учить Python, хорошая штука. Потом постепенно переехал на Geany. Надо снова попробовать, графическое представление кода должно быть очень вкусной фичей.
Про QScintilla: как-то давно была статейка https://habrahabr.ru/post/144848/ от автора https://github.com/hlamer/enki Возможно это подойдёт в качестве альтернативы сцинтилле.
Для себя постоянно ищу альтернативу PyCharm’у, но что-то грустно. Из условно бесплатных немного радует sublime как редактор, но как IDE он всё ж слаб даже в комплекте с Anaconda.
Определил стартово-необходимые фичи редактора, без которых я уже не могу :-). Это мультикурсор и wrap-selection (не знаю, как это правильно назвать — выделил, нажал [ и выделение обернулось в квадратные скобки) для всех «скобок»: ‘«[(< Ну и ещё минимап. Это (не минимап) могут все браузерные редакторы, что на Chromе, что на Gecko (Komodo). JetBrain продукты, ну и ещё WingIde (там scinilla допиленная).
В общем пока грустно, но я смотрю. Вот, твой проект с интересными возможностями.
Успеха тебе в этом. Буду следить.
UPD: вижу, что qutepart ты уже пробовал. Не подошло? И, вот, ещё, возможна ли реализация flowparser и pythonparser на собственно python? Это снизит скорость, да, но больше питоновского народа сможет подулючиться к процессу и помочь с python3.
Отличная идея. Давно мечтал такое увидеть. Сделайте для RUST?
Печально, но не работает на Debian testing из-за отсутствия PyQt4.QtWebKit Куда оно протерялось я не знаю, но в репах его почему-то теперь нет. Планов по переходу на PyQt5 нет?
Это хипстерство, настоящее академики пишут на лиспе.
эту «ide» можно заменить плагином к pycharm?
Теоретически можно. Практический ответ лежит, скорее, в плоскости коммерциализации технологии.
Кроме того, мой опыт разработки технологии и размышления о возможностях, которые можно реализовать для графической части, говорит скорее о том, что интерфейса плагинов не хватит. Аппетит приходит во время еды. В тот момент, когда возникла идея, я первым делом провел поиск существующих IDE с открытым кодом на предмет разработки плагина и оказалось, что ничего подходящего нет. Пришлось делать самому. Есть шанс, что сейчас ситуация изменилась, но я в это не верю.
вижу, что qutepart ты уже пробовал. Не подошло?
Статью на хабре я видел. Автор qutepart проделал огромную работу высокого качества и я рассматривал (и все еще рассматриваю) qutepart как альтернативу scintilla. Однако у qutepart не хватает некоторых важных для меня возможностей, самая актуальная из которых — margins. Qutepart содержит два встроенных поля без возможности что-либо с ними сделать и не поддерживает поля пользователя вообще. А как тогда, к примеру, ставить точки останова, как показывать ревизии в системах контроля версий, как в консоле ввода-вывода указывать временные метки и т.д. и т.п. То есть надо дописывать самостоятельно и не факт, что Андрей (автор qutepart) примет эти изменения. Я с Андреем связывался, когда первый раз присматривался к qutepart и он очень скептически отозвался о поддержке полей пользователя. Кроме того, во многих местах стиль отображения жестко закодирован, а значит нужно вводить механизм настроек пользователя, что тоже часто вызывает головную боль. Ну и по-мелочи набирается. То есть, сделать можно, но не то, чтобы было быстро.
И, вот, ещё, возможна ли реализация flowparser и pythonparser на собственно python?
Возможна. Но не слишком нужна. Собственно парсеры я оцениваю примерно на месяц своей плотной работы. Я их достаточно хорошо помню и, кажется, неплохо структурировал. Следующий момент — скорость никогда не помешает. Конвейер от буфера с кодом до нарисованной картинки довольно длинный (http://codimension.org/documentation/technologypresentation/slide-33.html), а для комфортной перерисовки в темпе набивки нужно, чтобы они отрабатывали быстро. Я даже размышлял над переносом layout и rendering стадий в C++, то есть в модуль, но пока это делать рано. В перспективе новых графических возможностей есть куда девать процессорное время. Ну и последний момент. Если кто-то действительно захочет помочь, то способ найдет независимо от реализации.
Наверное, это один из самых частых вопросов: а почему питон, а не язык, который предпочитаю я? В принципе, никто не мешает поддержать произвольный язык программирования. На этом слайде http://codimension.org/documentation/technologypresentation/slide-33.html хорошо видно, что если парсер любого другого языка выдаст нужные структуры данных, то будут диаграммы и для другого языка.
Прямой ответ на ваш вопрос — у меня планов на разработку парсера для RUST пока нет.
Оно лучше PyCharm? Надеюсь, написано не на джабе или, не на дай бг, ПИТОНЕ?
Или вообще не для разработки придумано?
Печально, но не работает на Debian testing из-за отсутствия PyQt4.QtWebKit Куда оно протерялось я не знаю, но в репах его почему-то теперь нет. Планов по переходу на PyQt5 нет?
Планы есть. Но конкретных сроков назвать не могу.
Можно попробовать поставить PySide и в файле ui/htmltabwidget.py поменять импорт.
эмм откуда его взять.
Ошибка: nothing provides pymetrics needed by codimension-3.0.0-2.noarch
Ошибка: nothing provides pymetrics needed by codimension-3.0.0-2.noarch
А какая у вас система?
генерация графического представления кода