Avoid computing unused values in lsif#54831
Conversation
dibarbet
left a comment
There was a problem hiding this comment.
I know in the hover handler we call build qi without navigation bits.
https://sourceroslyn.io/#Microsoft.CodeAnalysis.LanguageServer.Protocol/Handler/Hover/HoverHandler.cs,71
This eventually ends up here (where streamingPreseneter is null) - https://sourceroslyn.io/#Microsoft.CodeAnalysis.EditorFeatures/Implementation/IntelliSense/Helpers.cs,139 and doesn't include navigation actions.
Should that code be using this option instead, or is this doing something different?
dibarbet
left a comment
There was a problem hiding this comment.
Looks OK to me, I'll just echo what we discussed offline here - it would be nicer if lsif could directly use documents and this could become a document option (and then unify the lsp impl to just use that option). But that ship has probably already sailed.
I actually agree. Paging @mavasani @jasonmalinowski to get their thoughts on why we didn't go that route. I get that we might not have a "real" workspace. But it feels not crazy that we could synthesize a reasonable one out of the compilation info we've been given. |
This speeds up production of lsif information on my machine for projects from 86 seconds to 29 seconds (down to 33% of the time).