|
Hi Is it possible to write C++ language service for VS 2005, which would replace only C++ default intellisense and keep everything else (for example syntax coloring) unchanged ? | | Klesk Thursday, October 15, 2009 9:23 AM | Unfortunately, this is not possible. The intellisense support is responsible for both the colorization and autocompletion functionality. Currently, language services are not architected to have extensibility points in them. It's pretty much an all or nothing thing. If you need to modify the autocompetion support, you have to replace the entire service.
Note, this is not a trivial operation. The language service is very tightly integrated with the project system, which in turn has to compile the project to provide symbols, macro expansion etc, along with the ability to chase down referenced headers and libraries.
With VS 2010 there are some new editor extensions that I believe will allow for this sort of thing. But for VS 2005/VS2008, it's not possible.
To clarify Chao's earlier response (something I do not recommend). I believe the FEACP.DLL is a specialized version of the front end of the VC++ compiler, responsible for building the projects .NCB file, which in turn is what the VC++ intellisense service uses to resolve the various types and definitions in the project sources.
Sincerely, Ed Dore- Proposed As Answer byEd DoreMSFT, ModeratorFriday, October 16, 2009 4:17 PM
- Marked As Answer byKlesk Saturday, October 17, 2009 6:53 AM
-
| | Ed Dore Friday, October 16, 2009 4:16 PM | Hello, Klesk May be this is possible for C++ language service developers. We could disable the C++ intellisense by renaming or deleting the feacp.dll in the <VS root path>\VC\vcpackages\ loaction. So the best way is to develop our own intellisence is create our own feacp.dll, but we don't know how to create it. There is no document on this Thanks Chao
| | Chao Kuo Friday, October 16, 2009 6:51 AM | Unfortunately, this is not possible. The intellisense support is responsible for both the colorization and autocompletion functionality. Currently, language services are not architected to have extensibility points in them. It's pretty much an all or nothing thing. If you need to modify the autocompetion support, you have to replace the entire service.
Note, this is not a trivial operation. The language service is very tightly integrated with the project system, which in turn has to compile the project to provide symbols, macro expansion etc, along with the ability to chase down referenced headers and libraries.
With VS 2010 there are some new editor extensions that I believe will allow for this sort of thing. But for VS 2005/VS2008, it's not possible.
To clarify Chao's earlier response (something I do not recommend). I believe the FEACP.DLL is a specialized version of the front end of the VC++ compiler, responsible for building the projects .NCB file, which in turn is what the VC++ intellisense service uses to resolve the various types and definitions in the project sources.
Sincerely, Ed Dore- Proposed As Answer byEd DoreMSFT, ModeratorFriday, October 16, 2009 4:17 PM
- Marked As Answer byKlesk Saturday, October 17, 2009 6:53 AM
-
| | Ed Dore Friday, October 16, 2009 4:16 PM |
|