Fsharp: When can CodeLens be out of experimentation?

Created on 8 Jun 2019  路  6Comments  路  Source: dotnet/fsharp

Is your feature request related to a problem? Please describe.
It's been a year. Is CodeLens going the path of Gmail which stayed in beta for years?

Describe the solution you'd like
Merge #5145, fix #4551, and ship CodeLens, then finally be on par with Ionide.

Describe alternatives you've considered
Keeping the status quo. Turn productivity features off by default. Make Ionide better at first glance.

Additional context
Please do #4087 asap as well.

Area-IDE Language Service Feature Request

All 6 comments

I think @realvictorprm is going to try getting the caching issue solved by bringing master into his prs so that they're in a position to merge.

Merge #5145, fix #4551, and ship CodeLens, then finally be on par with Ionide.

5145 has meanwhile been merged. I'm not sure about #4551 if that's still an issue. Would be great though to get this stable for F# 5.0, it's a great feature!

I am looking into doing the following:

  • Turning the feature on by default for everyone in 16.9 preview
  • Looking into if the text buffer can be drawn when a document is parsed rather than after it is typechecked, so that the space is "allocated" before it fills in with data. This would help make the screen look a little less jittery when applying lenses for the first time
  • Improving the artificial delays placed in there to see what all can be improved so it feels snappier
  • Improving code quality to make it easier for people to come in and contribute improvements
  • Moving the settings to "Advanced" instead of its own node in the text editor settings
  • Seeing what all (if anything) can be done about adjusting the font and font size; they currently derive from Editor Tooltips rather than CodeLens in the VS Fonts and Colors settings
  • Removing LineLenses (they simply annotate the source too poorly)
  • Adjusting the printed signature to optionally specify the name (foo: int rather than int)
  • Looking into anything that can be improved for the colorization option

I've been playing with them and there are two quirks that I noticed:

  • More tweaking in the artificial delays is necessary, the default is too slow
  • When doing inline rename sometimes the adornment gets weird before you scroll and it appears again

I think more will be noticed if I just turn it on by default in the 16.9 previews and await feedback to indicate it's ready/not ready

Okay, additional quirk related to renaming. Various edits that move lots of code around will keep old adornments that screw up the editor. The service needs to invalidate more frequently.

Another quirk I noticed in a new .NET 5 web app is that the lenses will sometimes stagger on when they come in, even though the document is typechecked and a lens is already available elsewhere in the document. Not fundamentally broken but clearly needs some tweaking

Another quirk, definitely broken behavior:

Create an ASP.NET Core app, modify the following method:

    [<HttpGet>]
    member _.Get() =
        let rng = System.Random()

        let x = 12
        let y = 13

        [|
            for index in 0..4 ->
                { Date = DateTime.Now.AddDays(float index)
                  TemperatureC = rng.Next(-20,55)
                  Summary = summaries.[rng.Next(summaries.Length)] }
        |]

Very, very slowly type out a new value binding let x =. At some point the textblock for the code lens will be empty, and any further typing will have it draw at the very top of the file.

image

Was this page helpful?
0 / 5 - 0 ratings