This extension integrates TypeScript v7's native Go-based compiler and language server into the Zed editor, delivering enhanced performance and efficiency for TypeScript development.
With TypeScript 7, Microsoft shipped the TypeScript compiler as a native version written in Go, with significant performance improvements:
- Faster Compilation: Achieves up to 10x speed improvements in large projects.
- Reduced Memory Usage: Optimized memory handling in native execution.
- Improved Editor Performance: Faster IntelliSense and language services.
- Scalability: Better handling of large codebases.
Example Benchmarks:
- VS Code: 77.8s → 7.5s (10.4x speedup)
- Playwright: 11.1s → 1.1s (10.1x speedup)
- TypeORM: 17.5s → 1.3s (13.5x speedup)
Source: Microsoft Developer Blog
- Open Zed's Extensions page.
- Search for
TypeScript Language Serverand install the extension.
Enable typescript-ls in your Zed settings:
You can also use typescript-ls in tandem with other language servers (e.g. typescript-language-server or vtsls). Zed will use typescript-ls for features it supports and fallback to the next language server in the list for unsupported features.
To do that with vtsls, use:
{
"languages": {
"TypeScript": {
"language_servers": [
"typescript-ls",
"vtsls",
"!typescript-language-server",
"...",
],
},
"TSX": {
"language_servers": [
"typescript-ls",
"vtsls",
"!typescript-language-server",
"...",
],
},
},
}By default, the extension installs and uses the latest version of the typescript npm package. To pin a specific version (must be >= 7.0.0, older versions have no native language server):
{
"lsp": {
"typescript-ls": {
"settings": {
"package_version": "7.0.2"
}
}
}
}This is useful for:
- Ensuring consistent behavior across the project
- Testing specific versions
- Avoiding automatic updates that might introduce issues
{ "languages": { "TypeScript": { "language_servers": [ "typescript-ls", "!vtsls", "!typescript-language-server", "...", ], }, "TSX": { "language_servers": [ "typescript-ls", "!vtsls", "!typescript-language-server", "...", ], }, }, }