microsoft / microsoft/vscode-cpptools

Go to Definition on includes can get stuck due to hover or documentHighlight requests that are stuck on IntelliSense updating (from document switching)

Open
#8,885 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug Feature: Go to Definition Language Service performance verified
Dominant language
TypeScript
Stars
6.2k
Forks
1.7k
Avg merge
14h 46m
Merged PRs (30d)
61

Description

Discussed in https://github.com/microsoft/vscode-cpptools/discussions/8881

Originally posted by juxeii February 18, 2022
We have a very large code base.
One problem I have with Intellisense is that it reparses the active document although it has been parsed before.
Here is an example of how I cannot work in a smooth fashion:
I mark one include file A and click "Go to Definition".
The file A opens in an instant which is fine.
Now I go back to the original file from where I jumped from and browse to other include files.
Now I want to browse to file A again(no changes were made). It can take many seconds now to open the file A again.

I wonder why is that? Why is there no cache used which opens the file A again in an instant?
On the console for C/C++ I can see "idle loop: reparsing the active document".
Is there something I can do to improve the user experience here?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked discussion #8881 and the C/C++ extension's handling of IntelliSense hover, documentHighlight, and Go to Definition requests. Reproduce the document-switching sequence; done means these requests do not remain stuck while IntelliSense updates and repeated navigation no longer waits several seconds.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, typescript
Domain
developer-experience, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.