- Rust 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
This PR updates the CI workflow files from the main Zed repository based on the commit zed-industries/zed@3183c04515 The update includes a new version of the extension CLI which adds validation for semantic token rules for languages Co-authored-by: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com> |
||
| .github/workflows | ||
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| extension.toml | ||
| LICENSE | ||
| README.md | ||
tsgo: Native TypeScript Compiler Integration for Zed
This extension integrates tsgo, Microsoft's native Go-based TypeScript compiler, into the Zed editor, delivering enhanced performance and efficiency for TypeScript development.
🚀 Why tsgo?
Microsoft is transitioning the TypeScript compiler from its JavaScript implementation to a native version written in Go, aiming for 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
🛠 Installation
- Open Zed's Extensions page.
- Search for
tsgoand install the extension.
⚙️ Configuration
Note: tsgo is currently in preview and may not support all features of the standard tsc compiler.
Basic Setup
Enable tsgo in your Zed settings:
{
"languages": {
"TypeScript": {
"language_servers": ["tsgo"]
}
}
}
You can also use tsgo in tandem with other language servers (e.g. typescript-language-server or vtsls). Zed will use tsgo 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": ["tsgo", "vtsls"]
}
}
}
Advanced Configuration
Specifying a Package Version
By default, the extension installs and uses the latest version of the @typescript/native-preview npm package. To pin a specific version:
{
"lsp": {
"tsgo": {
"settings": {
"package_version": "7.0.0-dev.20251029.1"
}
}
}
}
This is useful for:
- Ensuring consistent behavior across the project
- Testing specific versions
- Avoiding automatic updates that might introduce issues
🧪 Status
This extension is in early development stages. While it offers significant performance benefits, some features may be incomplete or unstable. Contributions and feedback are welcome to improve its functionality.