quarto-dev / quarto-dev/quarto
Outline panel stuck at "Loading document symbols..." for large .qmd files due to 10000ms LSP timeout (but Breadcrumbs work)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 645
- Forks
- 62
- Avg merge
- 17h 42m
- Merged PRs (30d)
- 13
Description
Bug description
When working with large Quarto documents (.qmd files with 4,000 to 9,000+ lines containing mixed Markdown and R code chunks), the left Outline panel in VS Code fork gets stuck indefinitely with the message: "Loading document symbols for 'xxx.qmd'...".
However, the top Breadcrumbs navigation successfully displays the document symbols and variables. This discrepancy indicates that the R Language Server is actively working and eventually returns the symbols, but the left Outline panel fails to render them, likely due to a hardcoded timeout in the Quarto extension.
Error Logs
When checking the Output panel (Quarto / Window), the following warning is consistently thrown:
[warning] [EmbeddedDiagnostics] Language server for r did not respond within 10000ms for scripts/AOP.qmd
Steps to reproduce
Create or open a massive .qmd file (e.g., 2000-3000 lines) with numerous ````{r}` chunks and data-heavy operations.
Enable r.lsp.enabled: true in the settings.
Open the file. The top Breadcrumbs will eventually parse and show the structure/variables.
Look at the left Outline panel; it spins endlessly with "Loading document symbols...".
Switch to another tab and switch back. The cache is flushed, and the Outline completely disappears, failing to reload again due to the 10-second timeout.
Actual behavior
No response
Expected behavior
The Outline panel should display the symbols successfully, just like the top Breadcrumbs do, even if it takes longer than 10 seconds.
The request for DocumentSymbols (which is lightweight) should not be blocked or canceled by the heavy EmbeddedDiagnostics checking.
Your environment
Editor: VS Code fork
OS: macOS (Apple Silicon)
Quarto Extension Version: [v1.133]
R Version: 4.5.2 (arm64)
Language Server: R languageserver package
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce with a large .qmd file and r.lsp.enabled: true, then inspect the Quarto / Window Output warning about the 10000ms EmbeddedDiagnostics timeout. Compare the DocumentSymbols request used by the Outline panel with the symbols shown in Breadcrumbs; done means the Outline loads and retains symbols for the affected large documents without being blocked by the timeout.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- r, typescript, vscode
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100