Обрезать имя файла в фрагменте Visual Assist /Macro
Я использую Visual Assist X в Visual Studio 2008. Я определяю кучу файлов прямого объявления, каждый из которых имеет в основном один и тот же формат:
namespace ns1 { namespace ns2 {
class SampleClassName;
boost::shared_ptr<SampleClassName> SampleClassNamePtr;
}}
Очевидно, что я также добавляю защиту заголовка, сгенерированный комментарий к файлу и другие вещи, как того требует наш стандарт кодирования (а пространства имен не являются заполнителями).
Вот проблема: мы называем эти файлы SampleClassNameForward.h
поэтому использование заполнителя $FILE_BASE$ не будет работать точно. Есть ли способ для меня применить регулярное выражение и удалить "Вперед" из $FILE_BASE$ после того, как он был расширен, но до вставки фрагмента в мой файл? Если бы я мог это сделать, то я мог бы полностью автоматизировать создание этих предварительных деклараций и сэкономить себе (и моим коллегам) кучу времени.
1 ответ
Нет, Visual Assist не имеет никаких инструментов, которые бы поддерживали регулярное выражение имени файла, как вы ожидаете.
Альтернативный подход заключается в создании фрагмента кода VA, который вы используете для создания блока кода во временном файле.
- Создайте фрагмент кода VA, который имеет весь стандартный код.
- добавьте $SymbolName$Forward.h в начало кода.
- Вызвать фрагмент в пустом временном файле.
- Вырежьте сгенерированный текст FooForward.h в верхней части редактора.
- Выбрать все (ctrl+a).
- Вызвать VAssistX | Рефакторинг | Переместить выделение в новый файл
- В этот момент вам будет предложено ввести имя нового файла и вы сможете вставить ранее вырезанный текст (FooForward.h).
Переместить выделение в новый файл создаст новый файл в том же каталоге, что и текущий файл, и добавит его в те же проекты, в которых он находится.