Как создать фильтр / папку проекта C ++ в Visual Studio?

Используя Visual Studio 2012, я хотел бы создать папку проекта C ++ под названием «Включить файлы», которая имеет те же характеристики, что и хорошо известная папка «Файлы заголовков». То есть файлы во включаемых файлах имеют расширение cpi и будут проанализированы для использования с InteliSense, а также могут быть предварительно скомпилированы.

Я могу создать папку, но файлы в ней не анализируются. Я попытался установить тип файла заголовка C ++. Ничто не похоже на работу. Файлы работают нормально, если у них есть расширение hpp и помещены в папку Header Files.

1

Решение

Если это что-то похожее на VS2010, это делается с помощью параметров диалога Tools / Options / Text-Editor. Под элементом дерева «Расширения файлов» вы можете добавить пользовательские расширения файлов и обрабатывать их по своему усмотрению.

Чтобы смоделировать ваш случай, я сделал следующее:

  1. Открыл окно параметров Инструменты / Параметры / Текстовый редактор.
  2. На правой панели введите «cpi» в поле «Extension:».
  3. Выберите «Microsoft Visual C ++» для редактора.
  4. Выберите Добавить / Применить, чтобы добавить это в список пользовательских расширений.

Действуйте как обычно. Откройте любой файл CPI, и теперь он должен отображаться с той же подсветкой синтаксиса и параметрами IntelliSense, что и любой файл c / cpp / h / hpp и т. Д.

По крайней мере, так я делаю это с моими пользовательскими расширениями файлов. Похоже, у вас есть фильтрация в подпапках так, как вы этого хотите.

2

Другие решения

Вот некоторая необработанная информация о том, как я реализовал, CPI, пользовательское расширение файла, похожее по назначению на .h. Моей задачей было создать программу, которая динамически создает решения и проекты Visual Studio 2012 C ++. Это было необходимо, потому что шаблоны VS не работают с C ++, только с .Net.

Я создал файл сценария Visual Basic для создания файлов решений и проектов. Он вставил следующий XML в пользовательский файл vcxproj. Есть XML-теги, кроме None такие как ClCompile или Включить. None тег, кажется, работает для моих целей; включает синтаксический анализ, Intellisense и параметры контекстного меню.

   <ItemGroup>
[Do following pattern for each CPI file]
<None Include="MyCPI.CPI">
<FileType>CppHeader</FileType>
</None>
</ItemGroup>

Я создал следующий XML и вставил в файлы vcxproj.filters:

Вставить в ItemGroup в начале файла. GUID такой же, как файлы заголовков C ++. Я не уверен, что это значит.]

<Filter Include="Include Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>cpi</Extensions>
</Filter>

<ItemGroup>
[Do following pattern for each CPI file]
<None Include="MyCPI.CPI">
<Filter>++Include Files</Filter>
</None>
</ItemGroup>
0

По вопросам рекламы [email protected]