Исследование текстуально-контекстного подхода к средам разработки программ
Актуальность
Среды разработки программ (IDE) в силу ориентации на профессиональных пользователей предоставляют очень широкий набор возможностей. Этот набор настолько широк, что самостоятельность проблемой становиться создание графического интерфейса с удобным доступом ко всем возможностям. Из-за этой проблемы значительной число профессиональных программистов по прежднему пользуется такими инструментами как notepad и mcedit, emacs и vim, которые определенно уступают IDE по степени интегрированности и возможностям.
Одним из возможных способов изменения ситуации является создание пользовательского интерфейса, в которым основным элементом является окно редактора теста, и максимальное количество операций выполняются с помощью контекстных "меню" или других графических элементов, привязанных к отдельным частям текста программы. Очевидным примером операции, которая применима к конкретному объекту текста программы, является переименование переменных или функций.
Хотя какая-то зависимость конктектного меню от выбранного объекта в тесте программы есть во всех IDE, эта зависимость незначительна. Как правило, по правой кнопке мыши появляется огромное меню, мало пригодное для использования. Предполагается, что можно сделать лучше.
Для того, чтобы сделать взаимодействие с текстом программы основным, предполагается, что разрабатываемое IDE должно содержать минимум дополнительных к тексту окон.
Расшифровка задачи
Работа будет происходить на базе среды KDevelop4. Подзадачи таковы:
- Разработать удобный и "легкий" механизм переключения между документами, не требущий отдельного окна "менеджера проектов".
- Разработать "продвинутую" строку состояния, содержащую информацию о состоянии исходного кода (количество измененных файлов, etc), количестве проблем (todo, ошибки), а также возможность показа произвольных сообщений. Целью является убрать из числа необходимых при нормальной работы окон такие как version control или todo list.
- Разработать и реализовать механизмы показа произвольных объектов внутри текста программы -- как элементов, "раздвигающих" тест программы, так и показываемых "сверху".
- Реализовать показ ошибок компиляции непосредственно в тексте программы с использованием "раздвигающих" текст элементов
- Выбрать и реализовать несколько операций над элементами программы -- переименование, выделение фрагмента в функцию, переопределение унаследованных методов, переход к определению, просмотр иерархии классов или дерева вызовов
- Оценить удачность сделанного интерфейса, пришлифовать. По возможности перенести все существующие возможности KDevelop на новый интерфейс.
- Изучение материалов по usability, составление обзора
- Изучение различных IDE
- Реализация пунктов из расшивровки задачи
IDE с новым интерфейсом. Количество функций может быть небольшим, но IDE должно быть достаточно работоспособно чтобы оценивать удобство.