allegro / allegro/typescript-strict-plugin

Idea: Proxy strict/non-strict semantics requests to two child tsserver instances?

Open
#40 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
TypeScript
Stars
397
Forks
34
PR merge metrics
PR metrics pending

Description

## Description

We've been looking at adopting this plugin in our very large project and noticed that switching between files which are marked as strict and files which are not can be very slow (in the order of 10s of seconds). That seems to be because the plugin needs to switch `strict` on and off in the language server based on the presence of the `@ts-strict-ignore` comments. This slowness makes the plugin very disruptive to use on a day-to-day basis, at least until most of our codebase has been made strict and we don't need to switch `strict` on/off so often.

## Idea

Maybe this occurred to you as well but the following came to mind: could we run two tsserver instances in parallel, one with `strict` enabled and the other one with it disabled? If possible, it should avoid the cost of switching a single tsserver between strict and non-strict mode in very large codebases (those which typically are harder to make strict).

I suppose to make this happen one would have to create a custom tsserver which would start two child tsserver processes and proxy any requests from the IDE to the right child process based on the presence (or lack) of the `@ts-strict-ignore` comment.

What do you think? Have you maybe tried going down this route?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.