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