
Привет, Хабр! На связи Анна, лидер Flutter-команды Friflex, и Роза, Flutter-разработчица Friflex. Эта статья о том, как мы убираем лишнюю рутину в VSCode. Расскажем про полезные расширения и поделимся списком шорткатов, которые помогают быстрее искать, править и перемещаться по коду.
Расширения VSCode, которые помогают убрать рутину
Сниппеты в VSCode — очень удобный инструмент для быстрого создания шаблонных и часто повторяющихся участков кода. Это расширение позволяет быстро создать большинство самых популярных виджетов во Flutter (например, Stateless/StatefulWidget, Layout).
Еще расширение дает доступ к Dart-сниппетам, с помощью которых можно быстро создавать классы, методы и переменные. Со сниппетами писать код можно гораздо быстрее. Начинающим разработчикам рекомендую для начала изучить сам синтаксис, привыкнуть к разработке без сторонних подсказок, чтобы потом не стать заложником дополнительных инструментов.
Если в своих Flutter-проектах вы используете библиотеку bloc, это расширение может стать незаменимым помощником. В нем есть набор сниппетов, с которыми в коде проще и быстрее добавлять виджеты в UI, создавать сами блоки и кубиты, а еще управлять их методами.
Расширение добавляет возможность быстро оборачивать виджеты в другие виджеты библиотеки через контекстное меню. А также создавать целые директории с первично настроенными связями между классами Bloc, State и Event. Находка для тех, кто не любит тратить время на организацию файлов и классов в них!
Еще одно полезное расширение для продвинутых Flutter-разработчиков. С ним удобно добавлять вложенность виджетов: не теряешь время на написание параметров, расстановку скобок.
Например, если вам нужно создать контейнер со строкой виджетов внутри, это можно сделать простой записью Container>Row[Expanded>Text,ElevatedButton>Text]. В конце нажимаете Enter, и Flutter Tree все делает за вас. На выходе получаете сформированное дерево по вашему запросу.
Это расширение пригодится вообще всем, кто пользуется VSCode (не только Flutter-разработчикам). Оно помогает проверять написание слов в вашем коде — в документации или названии объектов. Расширение подчеркнет слова, которые написаны некорректно и предложит, как их заменить. Если слово написано верно, его можно вынести в исключения — для конкретного проекта или пользователя. Поддерживает огромное количество языков, в том числе русский.
Почти все серьезные проекты требуют вести историю изменений в репозитории в соответствии с соглашением о коммитах. Каждый коммит должен осмысленно отражать суть изменений, фиксировать их тип, измененные файлы и их критичность.
Чтобы легче было оформлять коммиты по этим правилам, рекомендую Commit Message Editor. Расширение позволяет оформить коммит с помощью формы. Когда вы ее заполните, текст сам отформатируется и подставится в строку сообщения коммита.
Как создать свои сниппеты
Бывает, что созданных другими авторами сниппетов в работе не хватает. Например, вы хотите оптимизировать рутинный код, специфичный для вашего проекта или компании. Здесь на помощь придут самописные сниппеты.
В VSCode ищем Preferences и вкладку Configure Snippets. Вам на выбор будет предложена возможность создать сниппеты глобальные или локальные, под конкретный проект.
После выбора удобного варианта вам откроется json-файл, в котором вы можете добавлять собственные спиппеты. При добавлении всегда важно придерживаться структуры.
"Example Snippet": { "prefix": [ "sw", ], "description": "Текстовое описание сниппета", "body": [] }
Здесь ключ — название самого сниппета, а значение — его содержимое. Внутри содержимого есть несколько дополнительных полей:
-
prefix— триггер сниппета. Может быть как строкой, так и списком строк; -
description— текстовое описание самого сниппета; -
body— содержимое, которое будет сформировано сниппетом.
Для удобной конфигурации в body сниппета можно добавить не только текст, но и специальные элементы. Например:
-
$1, $2и так далее — позиции заполнения. Между ними переключаемся табом для быстрого заполнения. Одна позиция может дублироваться в body, тогда при вводе значение будет подставляться сразу во всех указанных местах; -
${1:PlaceholderText}— позиция с указанием текста по умолчанию; -
${2|Container,Column,...|}— позиция с выбором текста из списка; -
$0— конечная позиция курсора.
Кроме символов позиционирования ввода есть еще дополнительные элементы, которые позволяют вставлять текст по контексту. Например:
-
$CLIPBOARD— вставляет текст из буфера обмена; -
$LINE_COMMENT— добавляет комментарий в строку; -
$BLOCK_COMMENT_START/END— обозначают границы вставки блочного комментария; -
$TM_FILENAME, $TM_FILEPATH— подставляют данные файла, название и путь.
"Example Widget Snippet": { "prefix": [ "wid", "example" ], "description": "Простой StatelessWidget", "body": [ "$LINE_COMMENT $TM_FILENAME — $CURRENT_DATE.$CURRENT_MONTH.$CURRENT_YEAR", "", "class ${1:MyWidget} extends StatelessWidget {", " const ${1:MyWidget}({super.key});", "", " @override", " Widget build(BuildContext context) {", " return ${2|Container,Column,Row,Scaffold|}(", " child: Text('${3:Привет}'),", " );", " }", " $0", "}" ] }
Когда расширений мало: горячие клавиши
Часто в начале работы горячие клавиши почти не используют. Особенно, если есть мышка 🙂 Но с их помощью можно сильно ускорить процесс разработки. Вот шорткаты, которые мы используем чаще всего.
Навигация и поиск:
-
⌘ + P — открыть файл по имени;
-
⌘ + Shift + F — поиск по всему проекту;
-
⌘ + G — перейти к строке;
-
⌘ + Shift + O — перейти к функции или символу в файле.
Редактирование кода:
-
Control + Space — автодополнение;
-
⌘ + / — закомментировать или раскомментировать строку;
-
Option + ↑/↓ — переместить строку вверх или вниз;
-
Shift + Option + ↑/↓ — скопировать строку вверх или вниз;
-
⌘ + Shift + K — удалить строку;
-
Shift + Option + F — отформатировать документ;
-
Option + Click — добавить множественный курсор;
-
⌘ + Shift + L — выделить все вхождения слова;
-
⌘ + F, затем ⌘ + Option + Enter — быстрая замена.
Мультикурсор и выделения:
-
Option + Click — добавить курсор в точку клика;
-
⌥⌘ + ↑/↓ — вставить курсор выше или ниже;
-
⌘ + U — отменить последнее действие с курсором;
-
⇧⌥ + I — вставить курсор в конец каждой выбранной строки;
-
⌘ + L — выделить текущую строку;
-
⇧⌘ + L — выделить все вхождения текущего выделения;
-
⌘ + F2 — выделить все вхождения текущего слова;
-
Control + ⇧⌘ + →/← — расширить или уменьшить выделение.
Блочное выделение:
-
⇧⌥ + drag — выделение прямоугольником (box selection);
-
⇧⌥⌘ + ↑/↓/←/→ — выделение вверх, вниз, влево, вправо;
-
⇧⌥⌘ + PgUp/PgDn — постраничное вертикальное выделение.
Конечно, вы можете настроить сочетания клавиш под себя и увидеть весь их список: Code → Settings → Keyboard Shortcuts или нажмите ⌘ + K, затем ⌘ + S. Полный список комбинаций есть тут: PDF от VSCode.
И напоследок — как еще разбавить рутину. Если вы хотите, чтобы за вашей работой всегда наблюдал милый питомец, то в VSCode можете установить вот такое расширение.
А какие у вас лайфхаки для борьбы с рутиной и ускорения разработки? Делитесь в комментах!
ссылка на оригинал статьи https://habr.com/ru/articles/1028612/