Используя Visual Studio 2012, я хотел бы создать папку проекта C ++ под названием «Включить файлы», которая имеет те же характеристики, что и хорошо известная папка «Файлы заголовков». То есть файлы во включаемых файлах имеют расширение cpi и будут проанализированы для использования с InteliSense, а также могут быть предварительно скомпилированы.
Я могу создать папку, но файлы в ней не анализируются. Я попытался установить тип файла заголовка C ++. Ничто не похоже на работу. Файлы работают нормально, если у них есть расширение hpp и помещены в папку Header Files.
Если это что-то похожее на VS2010, это делается с помощью параметров диалога Tools / Options / Text-Editor. Под элементом дерева «Расширения файлов» вы можете добавить пользовательские расширения файлов и обрабатывать их по своему усмотрению.
Чтобы смоделировать ваш случай, я сделал следующее:
Действуйте как обычно. Откройте любой файл CPI, и теперь он должен отображаться с той же подсветкой синтаксиса и параметрами IntelliSense, что и любой файл c / cpp / h / hpp и т. Д.
По крайней мере, так я делаю это с моими пользовательскими расширениями файлов. Похоже, у вас есть фильтрация в подпапках так, как вы этого хотите.
Вот некоторая необработанная информация о том, как я реализовал, 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>