FsAutoComplete icon indicating copy to clipboard operation
FsAutoComplete copied to clipboard

More concise completion info with OptionalAttribute/DefaultParameterValueAttribute

Open ieviev opened this issue 1 year ago • 1 comments

Details

C# style optional arguments take up a lot of space in completions:

image

The full namespace is explicit to show that it expands when System.Runtime.InteropServices is not opened. This could be condensed to something like name : string, args : string = "", workDirectory: string = ""

Example of how it currently looks like in Rider:

image

I haven't checked how it looks like in Visual Studio, essentially the idea is it could display the constructor in System.Runtime.InteropServices.DefaultParameterValue() or the default type value

the snippet itself:

type Process() =
    static member inline wait
        (
            name: string,
            [<
                System.Runtime.InteropServices.Optional; 
                System.Runtime.InteropServices.DefaultParameterValue("")>] 
                args: string,
            [<
                System.Runtime.InteropServices.Optional; 
                System.Runtime.InteropServices.DefaultParameterValue("")
            >] 
                workDirectory: string
        ) =
        // ..
        ()

Checklist

  • [X] I have looked through existing issues to make sure that this feature has not been requested before
  • [X] I have provided a descriptive title for this issue
  • [X] I am aware that even valid feature requests may be rejected if they do not align with the project's goals
  • [ ] I or my company would be willing to contribute this feature

ieviev avatar Jul 09 '24 15:07 ieviev

This would be great - the current 'signature help' implementation is creating the output you see here and I'd love to see PRs here to fix this horrible layout!

baronfel avatar Jul 09 '24 15:07 baronfel