Can Intellisense in Visual Studio 2017 suggest C++ headers to include? - c++

Coming from a primarily C# background, I used ReSharper for many years. Being able to place my cursor on an unresolved reference, hit Alt+Enter, and select an option to add the appropriate using statement was invaluable. Now, Visual Studio 2017 has this capability natively! With this (and many other features added in VS2017) I got rid of ReSharper and am enjoying a very fast and responsive Visual Studio experience.
I've recently started doing some work in C++, and while I do get suggestions from Intellisense about fields and methods, when it comes to an unresolved reference it doesn't suggest any headers to #include.
My question is whether or not Visual Studio 2017 added the feature to suggest #include options for C++ or not? After scouring around, it seems Visual Assist X and ReSharper C++ have this feature, but I can find nothing detailing whether this feature is now available natively (and if it is, how do I enable it?) or whether it is still an extension exclusive.

It seems Intellisense does not, as of Visual Studio 2017, support suggesting headers to include for C++ types. As recommended by #Jack Zhai-MSFT, I have opened a user-voice issue for this request.

Related

Does Visual Studio 2017 use the Language Server Protocol?

Language Server Protocol was created for VS-Code (not the Visual Studio IDE).
It is a rather sensible idea about providing language services like various linting and code-completion (intillisense).
It is by no means the first-time that idea has been had,
but it has seen rather rapid and wide-scale support from a large number of languages.
Is it used by Visual Studio 2017?
I can't seem to find the creating extensions docs for 2017.
eg the 2015 docs here.
If not, is there an official language server plugin that allows LSP resources to be used?
Update (Feb 2019): support for the Language Server Protocol is now built in to Visual Studio 2017.
This question was not able to answer, as only Microsoft holds the key. But luckily after half a year, Microsoft did announce the fact that Visual Studio would support LSP,
https://blogs.msdn.microsoft.com/visualstudio/2017/11/21/announcing-language-server-protocol-preview-release/
The extension only works for Visual Studio Preview builds right now, and also lacks many important features,
https://marketplace.visualstudio.com/items?itemName=vsext.LanguageServerClientPreview
We can see that there is still a long way to go.

Visual Studio 2015 No C++ CLR Templates

I've been programming in android and have recently moved on to Visual C++ so I can make Computer Programs (Rather than apps), But when I create a C++/CLR emtpy Project in visual studio 2015, everything is fine at first but when I go to add a windows form, there are simply no templates, whatsoever. The 'installed' tab doesn't have ANYTHING under it, so thus I can't make a form to make my program. I have looked at other solutions but it seems, there is nothing for visual studio 2015, nothing else seems to work.
Any ideas would be greatly appreciated.
Thanks.
Setup Changes in Visual Studio 2015 Affecting C++ Developers - This ensures that non-C++ developers don’t have to pay the setup time and disk-space price for installing C++ bits that they don’t need. At the same time, C++ developers can still get the pieces they need.
source: entry about clr templates missing in Visual Studio 2015

Visual C++ 2010 native Intellisense settings

So, I started programming in C++ moving from Java, Eclipse IDE. I use VS 2010 proffessional, I have it for free from DreamSpark.
However, I am very unhappy with its Intellisense, beeing far far worse than Eclipse (its C++ version) has. But almost everywhere on the internet I read that VS has great, superior Intellisense for native C++. So I want to ask, is there any way, some settings to change to make VS intellisense behave simmiliar to Eclipse? Or is there any other functionality in VS intellisense that compensate that?
To be exact, Eclipse intellisense does much better job guessing what object I want to create, suggests includes, generate keywords, generate few common for cycles etc...
I would not even as this question, but I found somuch possitive feedback on native C++ VS 2010 intellisense, so I have feeling I am doing something wrong... Thanks.
If you are writing managed C++ (C++/CLI) there is a post explaining that intellisense is not currently implemented here
As for alternatives you may like visual assist X.
This question has also been answered before on Stackoverflow. Please see below for some alternative answers and suggestions:
No IntelliSense for C++/CLI in Visual Studio 2010?

Visual Studio environment alternative

I use Visual C++ (7.1 and 8.0) on huge C++ project. The solution contains thousands of files. Visual Assist helps in jumping to function and class definitions. The problem is that it sometimes becomes too slow. I just can't edit a single letter without delay.
Is there some alternative to this environment? I mean something that may read .sln and .vcproj files, use MSVC debugger, compile with MSVC compiler or even use IncrediBuild if necessary. I don't need any sophisticated features. It should be possible to find and open a file by name and jump to function/class definition from place where it is used.
May be Vim with some plugins? Or something else?
It seems there is no alternative to MS Visual studio. I've added separate HDD for source files and it works much better.
Currently i left Visual studio because c++ support just sucks (still using Visual studio 2013 but only for C# projects)
i use NetBeans right now, and really enjoy the refactoring part.
The visual C++ compiler support can be added using a free plugin (VCC4N - Visual C++ Compiler For NetBeans)
good luck

How visual studio intellisense recognize functions and properties in classes even though there is no reflection in C++?

I want to list properties and functions present in c++ classes. Is that functionality already implemented in any library ? Does visual studio intellisense use any library ? Is that library available publicly from Microsoft?
Visual Studio parses your code, so that's how it knows. You would need to do the same.
The Visual C++ team maintains a blog that has had several very nice articles about how IntelliSense has worked in the past and how it will work in the future:
IntelliSense History, Part 1
IntelliSense, Part 2 (The Future)
Visual C++ Code Model
Rebuilding Intellisense
Visual C++ Code Model in Visual Studio 2010
Essentially they build their own 'reflection' database (the .ncb file in current and past version sof VS, using a compact SQL database starting with VS2010) by parsing the headers and other source files - using both custom parsers and parsing that's done with the cooperation of the compiler.
Apparently at least some of that information is available in the VCCodeModel and related interfaces that the Visual Studio extensibility model provides. I have no idea how well the extensibility model works or how easy it is to use.
They use a propriety format to store intellisense information (they are saved as NCB files). You can delete these files to force VS to recreate its intellisense database if things go wrong.
They then scan header files for class information as well as dependencies, then build the NCB file for future reference.
No, this library is not available for personal use.
Intellisense in C# is lots better than the one in C++
VS2010 will see C++ have the same intellisense features as C# currently enjoys.
I would imagine that Visual Studio uses the header files to provide Intellisense.