IntelliSense & custom file type
От: kiv2k  
Дата: 22.10.07 04:38
Оценка:
Здравствуйте.
Имеем Visual Studio 2005 SP1.
В проект включены файлы с раширением *.g — файлы грамматик.
Эти файлы содержат блоки кода на языке С++.
Мне очень хотелось бы включить поддержку IntelliSense для файлов с расширением *.g
Иду Tools\Options\Text Editor\File Extension, добавляю новое расширение .g и определяю для него редактор Microsoft Visual C++.
Подсветка начинает работать, но не фичи IntelliSense (List Members, Parameter Info, Quick Info, Complete Word).
Читаю в хелпе топики "When IntelliSense Is Unavailable", "IntelliSense Support in Visual C++".
Просто добавляю к файлу расширение .c (получается имя file.g.c). Сразу включается IntelliSense и начинает работать.
Прихожу к выводу, что Text Editor вызывает интерфейс IntelliSense, исходя из расширения файла, значит мне нужно зарегистрировать расширение *.g таким образом, чтобы Text Editor вызывал Visual C++ IntelliSense Parser тогда, когда я работаю с файлом *.g.
К сожаление нигде не нашел решения как это сделать.
Вопрос: прав я в своих рассуждениях? В любом случае, есть ли решение моего вопроса?
Re: IntelliSense & custom file type
От: kiv2k  
Дата: 29.10.07 06:51
Оценка:

http://support.microsoft.com/kb/839287


How do I specify a different file extension for C++ files to be used by the editor and IntelliSense?
To get a file of a non-standard extension viewed as a C++ file in the VS editor:

In VS .NET 2002, locate the registry key:
HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\7.0\Languages\FileExtensions

In VS .NET 2003, locate the registry key:
HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\7.1\Languages\FileExtensions

Search for the ".cpp" folder under "FileExtensions" and copy the value for the "(Default)" key.Add a new folder under "FileExtensions" for your desired extension and set the value of the "(Default)" key to the one you just copied.

To get C++ IntelliSense information on a file of a non-standard extension in the VS editor, you need to add the extension to the string in the following registry key:

For VS .NET 2002:
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\7.0\Languages\Language Services\C/C++\NCB

Default C/C++ ExtensionsFor VS .NET 2003:
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\7.1\Languages\Language Services\C/C++\NCB Default C/C++ Extensions

Так уже лучше.
Но все равно ИнтелиСенс не работает так, как если бы я просто добавил к имени файла расширение .cpp .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.