command line plugin for intellij idea

Post on 30-Jun-2015

4.391 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

Командные строки опять входят в моду. Многие операции можно делать быстрее с помощью набора команд на клавиатуре, вместо сложного вызова через UI. Так например, подключение плагинов в среде разработки IntelliJ IDEA или смена конфигурационных настроек проще выполняется с помощью командной строки.

TRANSCRIPT

Command Line Plugin

Участник: Кирилл Кононов

Руководитель: Дмитрий Булычев

for IntelliJ IDEA

Общие предпосылки

Использование командных строк бывает удобным.

Они входят в моду:

• Командная строка в FireFox

(https://hacks.mozilla.org/2012/08/new-firefox-

commandline-helps-you-develop-faster);

• GitHub Command Bar

(https://github.com/blog/1264-introducing-the-

command-bar);

Задача: разработать плагин для управления IntelliJ

IDEA с помощью командной строки.

Предыдущий этап

Осень 2012 года, учебная семестровая практика

студентов Академического университета:

Сергей Савенко Павел Чаднов

Предыдущий этап

• Организация плагина для IDEA с необходимыми

составляющими (в том числе, extension point)

• Прототип архитектуры, подразумевающей

позиционные аргументы

• Встроенный набор из четырёх команд

• Прототип возможности автодополнений

• Интерфейс в виде компонента pop-up

Новая версия

• Архитектура, основанная на именных

аргументах

• Эффективный инкрементальный парсинг

• Полноценная поддержка автодополнений

• Многоаспектная валидация

• История использованных команд

• Интерфейс в виде устойчивого компонента с

возможностью работы мышью

Именные аргументы

Короткие:

-var, -var value, -var "some value"

Длинные:

--variant, --variant=value,

--variant="some value"

• Более гибкий способ использования аргументов

по сравнению с позиционным

• Значение может содержать любые символы (в

том числе, пробелы), если используются кавычки

Инкрементальный парсинг

При изменении ввода, парсинг производится только

для аргументов на различной части строки.

Достигается большая эффективность парсинга.

Command –v1 –v2 value -v3 "some value"

Command –v1 –v2 value –v4 "another value"

Автодополнения

Предлагаются варианты для дополнения:

• Имени команды

• Имени варианта аргумента

• Значения аргумента (когда возможно)

Completion для значения может появиться из

стандартного «провайдера» значений типа или же

быть предусмотрен разработчиком команды.

Валидация

Определение корректности ввода. Включает

разбор случаев:

• Неверная команда, вариант или значение

аргумента

• Взаимоисключающие аргументы

• Отсутствие обязательного аргумента

• Отсутствие зависимого аргумента по

отношению к уже введенному

История команд

• Движение по истории команд: Ctrl + up / down

• Показ полного списка команд

История накапливается на протяжении времени

жизни всей IDE.

Интерфейс

Компонент командной строки имеет минимальный

размер и стратегии поведения при изменении

размеров и движении содержащих его компонент.

Плагин чувствует себя комфортно в окне IDE.

Планы на будущее

Продолжение проекта в формате учебной

семестровой практики CS-центра.

40%

60%

• Доработка

архитектурных

составляющих

• Улучшение

интерфейса

• Расширение

набора команд

Спасибо за внимание!

top related