Переименовываем файлы вместе с переменными — Visual Studio Code


Мы все избалованы IDE. Хочу больше баловства! Представляю бесплатное расширение Visual Studio 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 Studio Code.

multi-replace работает на примитивном String.ptototype.replace() без какого-либо анализа кода или типов файлов. Реализация очень простая — минимум кода, максимум пользы. Есть возможности переименования файлов и текста внутри папки, вместе с папкой, копирования изменённых файлов в новую папку.

Хочу пропиариться и самоутвердиться услышать от хабровчан критику, предложения или альтернативные решения по переименованию.

Спасибо!
  • +11
  • 2,9k
  • 2
Поделиться публикацией

Похожие публикации

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 2

    0

    Всё же Visual Studio Code, а то в голове возникает совершенно левый ассоциативный ряд.

      0
      предложения или альтернативные решения по переименованию

      mv, sed, awk.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое