• M
    Add experimental setting to use separate server to compute project level diagnostics · f0942786
    Matt Bierner 提交于
    For #13953
    
    **Problem**
    We'd like to show project wide diagnostics, however at the moment TS server is single threaded. This means that computing all these diagnostics would interrupt other user operations such as completions.
    
    Right now, our advice is to use tasks to get around this limitation (since tasks always run as separate process) however few people actually use tasks.
    
    **Change**
    This change adds an experimental `tsserver.experimental.enableProjectDiagnostics` setting (default false) that makes VS Code spawn a separate TS Server that is only used for computing diagnostics. This should help keep the primary syntax server responsive while letting the diagnostics server churn away at project level diagnostics
    
    **Why experimental?**
    
    - We are comporting too many diagnostics. This is bad for larger projects. I don't think TS provides the right APIs to know which files we actually need to request diagnostics on when a file changes.
    
    - This hasn't been fully extensively tested to make sure it plays nicely with feature such as automatic type acquisition or in complex workspace with multiple projects
    f0942786
spawner.ts 8.2 KB