Intellisense always assumes c++14

Sysprogs forums Forums VisualGDB Intellisense always assumes c++14

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #35715
    Timo
    Participant

    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

    #35717
    support
    Keymaster

    Hi,

    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?

    #35718
    Timo
    Participant

    Im 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.

    #35719
    support
    Keymaster

    Hi,

    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.

    #35725
    Timo
    Participant

    Sorry for that, didn’t realize i was out of support. Should be renewed now.

    I would very much like to go ahead and try.

    #35728
    support
    Keymaster

    Hi,

    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.

     

    #35729
    Timo
    Participant

    Hi,

    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😃

Viewing 7 posts - 1 through 7 (of 7 total)
  • You must be logged in to reply to this topic.