Files
vscode/extensions/typescript-basics/syntaxes
Matt Bierner dbeeecbaed Refactoring to create TS Server object
Rebase of a number of incremental changes listed below

Move first level dispatchMessage into ForkedTsServerProcess

Goal is to move callbacks and other per-server state into `ForkedTsServerProcess`

Create forked ts server object syncrounously

There is no reason for this to be async anymore. Making this object sync reduces complexity and makes the code easier to reason about

Moving server relate functions into ForkedTSServer object

The goal here is to have a single "server" object that keeps track of all its relevant state. The service client would manage one of these servers at a time, starting new ones if needed and dispatching to old ones

Split server into own file

Use switch case instead of conditionals

Make pendingResponses readonly

Add typings for callback item

Improve naming

- Use more descriptive names
- Preview private vars with _

Use passed in version for getting command line args

Attach webview click handler to window instead of to document body

Fixes #48926

Change error handling for ts server exit and error

- Don't fire twice on error (once for the `once` and once for the `onError`)
- Flush callbacks on both exit and error.

Remove cancellationPipeName as state

Remove obsolete comment

Move all env generation into generatePatchedEnv

Extract server spawn into static method

Move spawn from static to be own factory class

Move providers from arguments to state on the spawner

Update js/ts grammar

Remove duplicate error handler

Cleaning up server fork

- Standarize names
- Extract methods
- Move some function to be private statics
- Move logging out of electron and into server.ts

Use undefined instead of null for optional value
2018-09-13 11:55:44 -07:00
..

The file TypeScript.tmLanguage.json and TypeScriptReact.tmLanguage.json are derived from TypeScript.tmLanguage and TypeScriptReact.tmLanguage.

To update to the latest version:

  • cd extensions/typescript and run npm run update-grammars
  • don't forget to run the integration tests at ./scripts/test-integration.sh

Migration notes and todos:

  • differentiate variable and function declarations from references

    • I suggest we use a new scope segment 'function-call' to signal a function reference, and 'definition' to the declaration. An alternative is to use 'support.function' everywhere.
    • I suggest we use a new scope segment 'definition' to the variable declarations. Haven't yet found a scope for references that other grammars use.
  • rename scope to return.type to return-type, which is already used in other grammars

  • rename entity.name.class to entity.name.type.class which is used in all other grammars I've seen

  • do we really want to have the list of all the 'library' types (Math, Dom...). It adds a lot of size to the grammar, lots of special rules and is not really correct as it depends on the JavaScript runtime which types are present.