vscode-cpptools icon indicating copy to clipboard operation
vscode-cpptools copied to clipboard

add option to hide declarations in 'Outline'

Open mrx23dot opened this issue 1 year ago • 4 comments
trafficstars

Type: Feature Request

In C code every prototype is also listed in Outline not just the function itself, which is just annoying.

image

I tried to hide them with

    "outline.showEnums": false,
    "outline.showClasses": false,
    "outline.showFields": false,
    "outline.showTypeParameters": false,
    "outline.showObjects": false,
    "outline.showConstructors": false,
    "outline.showPackages": false,

but none of them worked

Extension version: 1.17.5 VS Code version: Code 1.73.1 (6261075646f055b99068d3688932416f2346dd3b, 2022-11-09T04:27:29.066Z) OS version: Windows_NT x64 10.0.19045 Modes: Unsupported Sandboxed: No

mrx23dot avatar Jun 28 '24 11:06 mrx23dot

This is currently "by design", but we can treat this as a enhancement request. This occurs only if the declaration and definition are in the same file (a potential "workaround" would be to put the declarations in a header file). And the function declarations don't need to be declared if you're able to put the definitions used by later definitions before they're used if there's no mutual dependency.

sean-mcmanus avatar Jun 28 '24 22:06 sean-mcmanus

If there are already so many options to hide different objects I would assume adding a new one would be max 3 lines of code, since object type already has a label "declaration"

    "outline.showEnums": false,
    "outline.showClasses": false,
    "outline.showFields": false,
    "outline.showTypeParameters": false,
    "outline.showObjects": false,
    "outline.showConstructors": false,
    "outline.showPackages": false,

My point is that in simple C I don't see much benefit listing any prototypes, thus it would always be noise. As refecence, Eclipse IDE has an option to hide prototypes too.

About workaround, critical sw requires explicit prototypes before function definitions. And most code base is already legacy code, so we cannot just freely move things around.

mrx23dot avatar Jun 29 '24 10:06 mrx23dot

This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog.

github-actions[bot] avatar Aug 28 '24 12:08 github-actions[bot]

This feature request has received enough votes to be added to our backlog.

github-actions[bot] avatar May 22 '25 11:05 github-actions[bot]