Sysprogs forums › Forums › VisualGDB › Intellisense always assumes c++14
- This topic has 6 replies, 2 voices, and was last updated 5 months, 2 weeks ago by Timo.
-
AuthorPosts
-
June 10, 2024 at 04:48 #35715TimoParticipant
I’m trying to get VisualGDB to work with a Microchip PIC32MX Device.
I have gotten far enough to be able to compile a program, program the device, and debug it properly. The only thing missing now is proper syntax highlighting.
I would like to use the Regular VC++ Intellisense over its clang variants, specifically because the other variants dont support Template-Intellisense
However, the regular intellisense settings seem to always only parse c++14 code.
Whenever i use a c++17 feature, it will be marked as an error, which can quickly spiral out of control for things like template deduction guides.
The project is an MSBuild project and was set to c++17. It compiles and runs fine. The clang based intellisense also doesn’t have this problem, its just the regular VC++ Intellisense that breaks in this way.
Is there any setting or option im missing?
Regards,
Timo
June 10, 2024 at 08:54 #35717supportKeymasterHi,
The regular IntelliSense is managed directly by VS and might not support C++17 if you are using an older Visual Studio. Even the latest Visual Studio might not support some variants of GCC extensions.
Does IntelliSense work as expected with similar code on a regular Win32 project (non-VisualGDB based) and the same VS version?
June 10, 2024 at 10:26 #35718TimoParticipantIm on VS 17.9.6.
I created a Win32 Project, and the syntax highlighting worked as expected.
I also created a different VisualGDB project (this time for an ARM-Based device), and the same problem appeared.
June 10, 2024 at 10:36 #35719supportKeymasterHi,
Thanks for confirming this. In general, the VS IntelliSense is not directly controlled by VisualGDB. We can show you where it looks for settings like language standard and how to try manually applying them to a VisualGDB project, however it may still not work if it expects something specific to regular VC++ projects. If you would like to go ahead and try it, we would kindly ask you to renew your support first.
June 11, 2024 at 09:16 #35725TimoParticipantSorry for that, didn’t realize i was out of support. Should be renewed now.
I would very much like to go ahead and try.
June 11, 2024 at 20:41 #35728supportKeymasterHi,
Thanks for renewing your license.
The VC++ IntelliSense takes the language standard version from the ClCompile/LanguageStandard element in the .vcxproj file (note the condition attribute). You can try changing it via the VS project properties for the non-VisualGDB project and observe how the value changes (e.g. to stdcpp17).
VisualGDB uses separate language standard settings for C and C++ files (CLanguageStandard/CPPLanguageStandard), so the native VC++ IntelliSense does not pick them up automatically.
You can try manually copying the LanguageStandard element into the VisualGDB’s .vcxproj file (also under ItemDefinitionGroup/ClCompile) and reloading the solution. VisualGDB should ignore it, but the VC++ IntelliSense should pick it up.
June 12, 2024 at 05:53 #35729TimoParticipantHi,
I copied the LanguageStandard attribute from a regular project and it worked like a charm.
It even keeps the tags when you change project settings.
Thank you very much for the swift assistance😃
-
AuthorPosts
- You must be logged in to reply to this topic.