Visual Studio IDE

Announcement: Last fall, we migrated this forum to Visual Studio Developer Community to provide you one convenient and responsive system for all feedback. As the final step in the migration, this forum will be closed off completely on June 1st, 2019. We encourage you to visit Visual Studio Developer Community where you can now suggest new ideas, browse and vote on existing ideas, and engage with Visual Studio teams.

We’d like your suggestions and ideas to help us continuously improve future releases of Visual Studio, so we’ve partnered with UserVoice, a third-party service, to collect your feedback. Please do not send any novel or patentable ideas, copyrighted materials, samples or demos for which you do not want to grant a license to Microsoft.

This site is for feature suggestions; if you need to file a bug, you can visit our Developer Community website to get started.

Note: your use of the portal and your submission is subject to the UserVoice Terms of Service & Privacy Policy and license terms.

We look forward to hearing from you!
- The Visual Studio Team

I suggest you ...

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Internal linkage for symbols in unnamed namespace

    Symbols defined in a unnamed namespace should have internal linkage.
    As GCC and CLang compilers do.
    This will enable additional compiler optimizations applicable to internal linkage symbols (like custom function calling conventions, unused code/data elimination).

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  2. Include resolved C++ method signatures in Macro Expansion Quick Info Tooltip

    While https://blogs.msdn.microsoft.com/vcblog/2018/05/07/macro-expansions-in-quick-info-tooltips/ is a nice feature (and finally landed with the Visual Studio 2017 15.8 update), it fails on one of the most common cases:
    Method signatures.

    Try to call a winapi method like MessageBox, and the tooltip will graciously tell you that "#define MessageBox MessageBoxW
    Expands to: MessageBoxW"

    It should include the proper signature after expansion: "int MessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType)" to make this a lot more useful

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  3. Please fix IntelliSense for C++

    Please fix the bug with C++ comment discovery where sometimes the headers above a method's declaration are used and sometimes those above its definition are used. I would prefer not to place the same comment above both the declaration and the definition and keep both in sync manually. Thanks!

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  4. visual C++: When pressed ESC, please hide the OUTPUT tool window, When pressed ESC, please hide the OUTPUT tool window!

    When the build finished, the OUTPUT window is displayed, and might cursor is hover on it, It dose not hide, I can't see the code, please when I pressed ESC, hide the OUTPUT tool window!

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  5. Warn about #include with backslashes

    Provide a warning to the pre-processor that warns about the use of backslashes in the path specified by #include.

    This would make it easier to maintain cross-platform code bases.

    Additionally, provide a way to either opt-in or opt-out of this behaviour.

    2 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  6. Great Intellisense enhancements for C++/CLI

    Sorry, this is not an idea, just some positive feedback (I couldn't find the proper channel for this type of message). Great job improving Intellisense support in version 15.7.6. for C++/CLI. It was very broken (false squiggly lines everywhere), to the point I disabled it completely. It is now working great! Thanks!!!! =)

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  7. stdafx.h ?? is very peolpe maked angry and visual studio is very like ******* dog program

    i try debug,compile don t working anytjing v.s very peolpe maked angry and visual studio is very like ******* dog program

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  8. Missing formatting option for C++ pointers and references

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351714/missing-formatting-option-for-c-pointers-and-refer.html
    There seems to be no way to set the desired style for pointers and references in the C++ code formatting options, i.e. placing the asterisk or the ampersand next to the type, next to the variable or keep it as is.

    This seems like a basic code formatting option that should have been implemented from the beginning, especially with the new refactoring feature. The generate method implementation feature always put <Type> * <name> or <Type> & <name>, no matter how the user declared…

    13 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  9. Ability to auto format source files for saved files vs editing.

    I liked the idea to be able change code formatting. However it will be great to be able save all code by a special format regardless of the developer settings. A scenario will be like this:
    developer A has Visual Studio Formatting. Developer A opens a file and file gets formatted Visual Studio Style without changing under lying file. After he makes changes VS checks the code out from source control and formats on save as saved file format for the source code control or team settings. So while editing the code it is VS style all saved code on…

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  10. Please add midi file as Media content in Visual Studio for C++

    When image or sound files are added to a project, their properties are automatically set as Content "Yes", Item Type "Image" or "Media".
    But for MIDI files, we must manually set Content as "Yes", and Item Type as "Media" to include them in the UWP package.
    Please set these properties automatically when they are added. Thanks!

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  11. Provide enhanced Macro debugging capabilities (C++)

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351697/provide-enhanced-macro-debugging-capabilities-c.html
    Please consider providing enhanced Macro debugging capabilities.

    - When entering debug view, macros are automatically expanded (the source code is transformed in debug view and all line numbers are updated accordingly).

    - This will allow users to transparently step into macro code and understand what it is going on.

    - A huge quality of life boon could be attained by implementing this suggestion; macros are notoriously difficult to debug in part because of poor debugger support.

    - This should be optional; users who…

    4 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  12. VS2017 and ATL

    I propose not to forget about ATL and implement it qualitatively and without errors. At you in each version since VS2010 one and the same errors !!! That class is confused with the addition of an object. That in general about ATL a template have forgotten !!! This is the only thing that is valuable you have created in your VS.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  13. C++ Intellisense - better static class method support

    Currenty, in Visual Studio 15.7.5 the intellisense for static class members could be improved. For example static methods could have different icon on pop-up. There could also be on/off toggle for displaying non-static class members after typing "ClassName::" - picking one will lead to invalid completion and error that non-static method can not be called.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  14. Refactoring: Make "Create Declaration / Definition" work with static member variables

    This functionality currently only works for member functions but it would be nice if it also worked for static member variables that need to be defined in the .cpp file.

    2 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  15. One tab for header and src file

    it would be convienent if VS had one tab representing the header and source file. Perhaps it would slightly bigger due to it representing 2 files. perhaps double clicking it would open the source, single clicking the header, or maybe create two areas of the tab to represent each file. How ever its implemented, it would help to keep open c++ files organized and easy to get to.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  16. buy up whole tomato software and make Visual Assist a permanent part of VS.

    Whole Tomato has spent years working on ways to improve VS and that's their bread and butter. Those are a whole set of ideas that their customers swear by and use every day. JetBrains Resharper also applies here. IMHO, this would be a good investment for Microsoft.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  17. Improve C++ Core Check Rule (f.6) Implementation

    The following code generates warning C26440 (f.6):

    struct base
    {
    base() = default;
    virtual ~base() = default;

    virtual void foo() const noexcept(false)
    {
    }
    };

    struct derived : base
    {
    void foo() const noexcept(false) override
    {
    throw std::runtime_error("exception");
    }
    };

    It can be seen that the override of foo may throw exceptions but the base implementation will not. However, the warning (base::foo can be declared noexcept) is still generated. Virtual member functions should not be checked for f.6 as it cannot be guaranteed that a derived function will not throw exceptions.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  18. Improve C++ Core Check Rule (es.84) Implementation

    The following code generates warning C26444 (es.84):

    int main()
    {
    auto ints = std::vector<int>{ 1, 2, 3 };
    const auto triple = [](int a)
    {
    return 3 * a;
    };

    std::transform(
    ints.begin(),
    ints.end(),
    ints.begin(),
    triple);

    return 0;
    }

    As does:

    int main()
    {
    const auto source = std::vector<int>{ 1, 2, 3 };
    auto target = std::vector<int>{ 4, 5, 6 };

    target.insert(
    target.begin(),
    source.begin(),
    source.end());

    return 0;
    }

    This is standard usage of C++ algorithms and should not generate a warning.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  19. Apply focused autocomplete item on "enter" key press for C++

    Currently we have following confusing(it is not similar to other big IDEs like QtCreator or CLion) autocomplete behavior for C++:
    1. User enter "#incl"
    2. Visual Studio provide #include autocomplete.
    3. When user press enter Visual Studio enter new line instead of applying "#include" autocomplete.

    Could you please fix it.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  20. Enable highlighting for header files missing #pragma once.

    This may not be intentional and could be a bug with Visual Studio, but I've come to realize that Visual Studio will not provide any highlighting support for header files missing the #pragma once (e.g. if they have a header-guard and did not add the #pragma once).

    If this is intentional... May I ask, why?

    It doesn't bother me, but I don't see why the #pragma once not being present should affect whether the highlighting is supported or not in the header file.

    This is not explicit for C++ projects, it also applies for C projects. In fact, it even…

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →

Feedback and Knowledge Base