Command Line PLugin for IntelliJ IDEA
-
Upload
sergey-karashevich -
Category
Technology
-
view
4.368 -
download
4
description
Transcript of Command Line PLugin for IntelliJ IDEA
![Page 1: Command Line PLugin for IntelliJ IDEA](https://reader034.fdocuments.in/reader034/viewer/2022042607/5591fac41a28abea658b4668/html5/thumbnails/1.jpg)
Command Line Plugin
Участник: Кирилл Кононов
Руководитель: Дмитрий Булычев
for IntelliJ IDEA
![Page 2: Command Line PLugin for IntelliJ IDEA](https://reader034.fdocuments.in/reader034/viewer/2022042607/5591fac41a28abea658b4668/html5/thumbnails/2.jpg)
Общие предпосылки
Использование командных строк бывает удобным.
Они входят в моду:
• Командная строка в 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](https://reader034.fdocuments.in/reader034/viewer/2022042607/5591fac41a28abea658b4668/html5/thumbnails/3.jpg)
Предыдущий этап
Осень 2012 года, учебная семестровая практика
студентов Академического университета:
Сергей Савенко Павел Чаднов
![Page 4: Command Line PLugin for IntelliJ IDEA](https://reader034.fdocuments.in/reader034/viewer/2022042607/5591fac41a28abea658b4668/html5/thumbnails/4.jpg)
Предыдущий этап
• Организация плагина для IDEA с необходимыми
составляющими (в том числе, extension point)
• Прототип архитектуры, подразумевающей
позиционные аргументы
• Встроенный набор из четырёх команд
• Прототип возможности автодополнений
• Интерфейс в виде компонента pop-up
![Page 5: Command Line PLugin for IntelliJ IDEA](https://reader034.fdocuments.in/reader034/viewer/2022042607/5591fac41a28abea658b4668/html5/thumbnails/5.jpg)
Новая версия
• Архитектура, основанная на именных
аргументах
• Эффективный инкрементальный парсинг
• Полноценная поддержка автодополнений
• Многоаспектная валидация
• История использованных команд
• Интерфейс в виде устойчивого компонента с
возможностью работы мышью
![Page 6: Command Line PLugin for IntelliJ IDEA](https://reader034.fdocuments.in/reader034/viewer/2022042607/5591fac41a28abea658b4668/html5/thumbnails/6.jpg)
Именные аргументы
Короткие:
-var, -var value, -var "some value"
Длинные:
--variant, --variant=value,
--variant="some value"
• Более гибкий способ использования аргументов
по сравнению с позиционным
• Значение может содержать любые символы (в
том числе, пробелы), если используются кавычки
![Page 7: Command Line PLugin for IntelliJ IDEA](https://reader034.fdocuments.in/reader034/viewer/2022042607/5591fac41a28abea658b4668/html5/thumbnails/7.jpg)
Инкрементальный парсинг
При изменении ввода, парсинг производится только
для аргументов на различной части строки.
Достигается большая эффективность парсинга.
Command –v1 –v2 value -v3 "some value"
Command –v1 –v2 value –v4 "another value"
![Page 8: Command Line PLugin for IntelliJ IDEA](https://reader034.fdocuments.in/reader034/viewer/2022042607/5591fac41a28abea658b4668/html5/thumbnails/8.jpg)
Автодополнения
Предлагаются варианты для дополнения:
• Имени команды
• Имени варианта аргумента
• Значения аргумента (когда возможно)
Completion для значения может появиться из
стандартного «провайдера» значений типа или же
быть предусмотрен разработчиком команды.
![Page 9: Command Line PLugin for IntelliJ IDEA](https://reader034.fdocuments.in/reader034/viewer/2022042607/5591fac41a28abea658b4668/html5/thumbnails/9.jpg)
Валидация
Определение корректности ввода. Включает
разбор случаев:
• Неверная команда, вариант или значение
аргумента
• Взаимоисключающие аргументы
• Отсутствие обязательного аргумента
• Отсутствие зависимого аргумента по
отношению к уже введенному
![Page 10: Command Line PLugin for IntelliJ IDEA](https://reader034.fdocuments.in/reader034/viewer/2022042607/5591fac41a28abea658b4668/html5/thumbnails/10.jpg)
История команд
• Движение по истории команд: Ctrl + up / down
• Показ полного списка команд
История накапливается на протяжении времени
жизни всей IDE.
![Page 11: Command Line PLugin for IntelliJ IDEA](https://reader034.fdocuments.in/reader034/viewer/2022042607/5591fac41a28abea658b4668/html5/thumbnails/11.jpg)
Интерфейс
Компонент командной строки имеет минимальный
размер и стратегии поведения при изменении
размеров и движении содержащих его компонент.
Плагин чувствует себя комфортно в окне IDE.
![Page 12: Command Line PLugin for IntelliJ IDEA](https://reader034.fdocuments.in/reader034/viewer/2022042607/5591fac41a28abea658b4668/html5/thumbnails/12.jpg)
Планы на будущее
Продолжение проекта в формате учебной
семестровой практики CS-центра.
40%
60%
• Доработка
архитектурных
составляющих
• Улучшение
интерфейса
• Расширение
набора команд
![Page 13: Command Line PLugin for IntelliJ IDEA](https://reader034.fdocuments.in/reader034/viewer/2022042607/5591fac41a28abea658b4668/html5/thumbnails/13.jpg)
Спасибо за внимание!