+ All Categories
Home > Technology > Command Line PLugin for IntelliJ IDEA

Command Line PLugin for IntelliJ IDEA

Date post: 30-Jun-2015
Category:
Upload: sergey-karashevich
View: 4,346 times
Download: 4 times
Share this document with a friend
Description:
Командные строки опять входят в моду. Многие операции можно делать быстрее с помощью набора команд на клавиатуре, вместо сложного вызова через UI. Так например, подключение плагинов в среде разработки IntelliJ IDEA или смена конфигурационных настроек проще выполняется с помощью командной строки.
13
Command Line Plugin Участник: Кирилл Кононов Руководитель: Дмитрий Булычев for IntelliJ IDEA
Transcript
Page 1: Command Line PLugin for IntelliJ IDEA

Command Line Plugin

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

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

for IntelliJ IDEA

Page 2: 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 с помощью командной строки.

Page 3: Command Line PLugin for IntelliJ IDEA

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

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

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

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

Page 4: Command Line PLugin for IntelliJ IDEA

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

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

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

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

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

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

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

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

Page 5: Command Line PLugin for IntelliJ IDEA

Новая версия

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

аргументах

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

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

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

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

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

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

Page 6: Command Line PLugin for IntelliJ IDEA

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

Короткие:

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

Длинные:

--variant, --variant=value,

--variant="some value"

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

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

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

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

Page 7: Command Line PLugin for IntelliJ IDEA

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

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

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

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

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

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

Page 8: Command Line PLugin for IntelliJ IDEA

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

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

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

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

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

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

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

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

Page 9: Command Line PLugin for IntelliJ IDEA

Валидация

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

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

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

аргумента

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

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

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

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

Page 10: Command Line PLugin for IntelliJ IDEA

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

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

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

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

жизни всей IDE.

Page 11: Command Line PLugin for IntelliJ IDEA

Интерфейс

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

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

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

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

Page 12: Command Line PLugin for IntelliJ IDEA

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

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

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

40%

60%

• Доработка

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

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

• Улучшение

интерфейса

• Расширение

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

Page 13: Command Line PLugin for IntelliJ IDEA

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


Recommended