TODO:
- need to not wait for connections
- language server shuts down and kills our process when the extension is closed
- handle the case where parcel is started after the extension is running
- handle the case where extension is started while parcel is running
- support multiple parcels
- show prior diagnostics on connection
- only connect to parcels that match the workspace
- show parcel diagnostic hints
- implement quick fixes (requires Parcel changes?)