[Из песочницы] Переименовываем файлы вместе с переменными — Visual Code
Мы все избалованы IDE. Хочу больше баловства! Представляю бесплатное расширение Visual Code по переименованию файлов и переменных multi-replace.
Существует множество расширений и встроенных возможностей для рефакторинга. Основная фишка — переименование (переменной, класса, метода, файла и т.д.). Все мы прекрасно с такими возможностями знакомы, они ежеденевно поднимают нам настроение!
Мы любим правила, придерживаемся style guide-ов. Мы называем файлы исходя из содержимого. В файле app-component.ts, по-моему, должен лежать класс AppComponent. И переименовывая класс AppComponent в RootComponent, следующим действием следует поменять и название файла на root-component.ts… А если это, например, Angular компонент, то попутно приходится менять название ещё трех файлов, CSS селекторы, названия экземпляров! Сталкивались с этим? Простейшая операция переименования часто требует от нас неимоверных усилий.
Видели такой код?
// src/models/animal.ts
class Animal {
run(): void;
jump(): void;
catchMouse(): void;
meow(): void;
}
Согласны, что с течением времени наши классы могут эволюционировать? Речь не про OOP или SOLID (других животных в проекте не наблюдается), это прекрасный класс —, но название не отражает действительности. Методы этого класса кричат, что это кошка! И на самом деле, мы должны дать классу шанс на хорошее имя. Но как же все переменные с экземплярами, сотни const animal = new Cat (); ? А если у нас уже есть целые модули с ключевым словом animal.
В общем, тема правильного именования всегда актуальна. Но не автоматизированной рутины ещё много.
Чтобы повеселиться, я написал небольшую cli на node.js для простейшей замены строк в файлах, но так же и изменяющую имена файлов (@justerest/multi-replace). И был очень удивлён юзабельностью этого костыля! Я больше не боюсь ошибиться в названии компонента или модуля, потому что одной командой могу переименовать целую коллекцию Angular компонентов.
Спустя время, я так же обнаружил, что эта тулза может служить отличной альтернативой schematics. Просто скопируй максимально похожий файл (компонент) и переименуй! Это вдохновило меня на написание расширения multi-replace для моего любимого редактора Visual Code.
multi-replace работает на примитивном String.ptototype.replace () без какого-либо анализа кода или типов файлов. Реализация очень простая — минимум кода, максимум пользы. Есть возможности переименования файлов и текста внутри папки, вместе с папкой, копирования изменённых файлов в новую папку.
Хочу пропиариться и самоутвердиться услышать от хабровчан критику, предложения или альтернативные решения по переименованию.
Спасибо!