From 7efe6dda39fc329e546e8f58d290cb30b62d9dc7 Mon Sep 17 00:00:00 2001
From: Jake Bailey <5341706+jakebailey@users.noreply.github.com>
Date: Fri, 22 Aug 2025 09:46:37 -0700
Subject: [PATCH 1/3] Fix table
---
README.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index c78595c90c..3aa1641b4d 100644
--- a/README.md
+++ b/README.md
@@ -79,7 +79,7 @@ This is still a work in progress and is not yet at full feature parity with Type
|---------|--------|-------|
| Program creation | done | Same files and module resolution as TS5.8. Not all resolution modes supported yet. |
| Parsing/scanning | done | Exact same syntax errors as TS5.8 |
-| Commandline and `tsconfig.json` parsing | mostly done | Entry point slightly different for now |
+| Commandline and `tsconfig.json` parsing | mostly done | Missing --help, --init. |
| Type resolution | done | Same types as TS5.8 |
| Type checking | done | Same errors, locations, and messages as TS5.8. Types printback in errors may display differently (in progress) |
| JavaScript-specific inference and JS Doc | not ready | - |
@@ -87,9 +87,9 @@ This is still a work in progress and is not yet at full feature parity with Type
| Declaration emit | in progress | Most common features are in place, but some edge cases and feature flags are still unhandled |
| Emit (JS output) | in progress | `target: esnext` well-supported, other targets may have gaps |
| Watch mode | prototype | Watches files and rebuilds, but no incremental rechecking |
-| Build mode / project references | not ready | - |
-| Incremental build | not ready | - |
-| Language service (LSP) | prototype | Minimal functionality (errors, hover, go to def). More features coming soon |
+| Build mode / project references | done | - |
+| Incremental build | done | - |
+| Language service (LSP) | in progress | Some functionality (errors, hover, go to def, refs, sig help). More features coming soon |
| API | not ready | - |
Definitions:
From 6e51f13a444a6bb988b2a6dc8cbc7364204c32c3 Mon Sep 17 00:00:00 2001
From: Jake Bailey <5341706+jakebailey@users.noreply.github.com>
Date: Fri, 22 Aug 2025 09:51:42 -0700
Subject: [PATCH 2/3] move contributing and update
---
CONTRIBUTING.md | 50 ++++++++++++++++++++++++++++++++++++
README.md | 68 +++++++------------------------------------------
2 files changed, 59 insertions(+), 59 deletions(-)
create mode 100644 CONTRIBUTING.md
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000000..dd1c822f8d
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,50 @@
+# Contributing
+
+## How to Build and Run
+
+This repo uses [Go 1.25 or higher](https://go.dev/dl/), [Rust 1.85 or higher](https://www.rust-lang.org/tools/install), [Node.js with npm](https://nodejs.org/), and [`hereby`](https://www.npmjs.com/package/hereby).
+
+For tests and code generation, this repo contains a git submodule to the main TypeScript repo pointing to the commit being ported.
+When cloning, you'll want to clone with submodules:
+
+```sh
+git clone --recurse-submodules https://github.com/microsoft/typescript-go.git
+```
+
+If you have already cloned the repo, you can initialize the submodule with:
+
+```sh
+git submodule update --init --recursive
+```
+
+With the submodule in place and `npm ci`, you can run tasks via `hereby`, similar to the TypeScript repo:
+
+```sh
+hereby build # Build the tsgo binary (not required for tests)
+hereby test # Run tests
+hereby format # Format the code
+hereby lint # Run linters
+hereby install-tools # Install additional tools such as linters
+hereby generate # Generate all Go code (e.g. diagnostics, committed to repo)
+```
+
+Additional tasks are a work in progress.
+
+`hereby` is not required to work on the repo; the regular `go` tooling (e.g., `go build`, `go test ./...`) will work as expected.
+`hereby` tasks are provided as a convenience for those familiar with the TypeScript repo.
+
+### Running `tsgo`
+
+After running `hereby build`, you can run `built/local/tsgo`, which behaves mostly the same as `tsc`.
+
+### LSP Server
+
+To debug and run the VS Code extension without installing it globally:
+
+* Run VS Code in the repo workspace (`code .`)
+* Copy `.vscode/launch.template.json` to `.vscode/launch.json`
+* F5 (or `Debug: Start Debugging` from the command palette)
+
+This will launch a new VS Code instance which uses the Corsa LS as the backend. If correctly set up, you should see "tsgo" in the status bar when a TypeScript or JavaScript file is open:
+
+
diff --git a/README.md b/README.md
index 3aa1641b4d..fc957dd2f5 100644
--- a/README.md
+++ b/README.md
@@ -21,75 +21,25 @@ To use this, set this in your VS Code settings:
}
```
-## How to Build and Run
-
-This repo uses [Go 1.25 or higher](https://go.dev/dl/), [Rust 1.85 or higher](https://www.rust-lang.org/tools/install), [Node.js with npm](https://nodejs.org/), and [`hereby`](https://www.npmjs.com/package/hereby).
-
-For tests and code generation, this repo contains a git submodule to the main TypeScript repo pointing to the commit being ported.
-When cloning, you'll want to clone with submodules:
-
-```sh
-git clone --recurse-submodules https://github.com/microsoft/typescript-go.git
-```
-
-If you have already cloned the repo, you can initialize the submodule with:
-
-```sh
-git submodule update --init --recursive
-```
-
-With the submodule in place and `npm ci`, you can run tasks via `hereby`, similar to the TypeScript repo:
-
-```sh
-hereby build # Verify that the project builds
-hereby test # Run all tests
-hereby install-tools # Install additional tools such as linters
-hereby lint # Run all linters
-hereby format # Format all code
-hereby generate # Generate all Go code (e.g. diagnostics, committed to repo)
-```
-
-Additional tasks are a work in progress.
-
-`hereby` is not required to work on the repo; the regular `go` tooling (e.g., `go build`, `go test ./...`) will work as expected.
-`hereby` tasks are provided as a convenience for those familiar with the TypeScript repo.
-
-### Running `tsgo`
-
-After running `hereby build`, you can run `built/local/tsgo`, which behaves mostly the same as `tsc`.
-
-### Running LSP Prototype
-
-To debug and run the VS Code extension without installing it globally:
-
-* Run VS Code in the repo workspace (`code .`)
-* Copy `.vscode/launch.template.json` to `.vscode/launch.json`
-* F5 (or `Debug: Start Debugging` from the command palette)
-
-This will launch a new VS Code instance which uses the Corsa LS as the backend. If correctly set up, you should see "tsgo" in the status bar when a TypeScript or JavaScript file is open:
-
-
-
-
## What Works So Far?
This is still a work in progress and is not yet at full feature parity with TypeScript. Bugs may exist. Please check this list carefully before logging a new issue or assuming an intentional change.
| Feature | Status | Notes |
|---------|--------|-------|
-| Program creation | done | Same files and module resolution as TS5.8. Not all resolution modes supported yet. |
-| Parsing/scanning | done | Exact same syntax errors as TS5.8 |
+| Program creation | done | Same files and module resolution as TS 5.8. Not all resolution modes supported yet. |
+| Parsing/scanning | done | Exact same syntax errors as TS 5.8 |
| Commandline and `tsconfig.json` parsing | mostly done | Missing --help, --init. |
-| Type resolution | done | Same types as TS5.8 |
-| Type checking | done | Same errors, locations, and messages as TS5.8. Types printback in errors may display differently (in progress) |
-| JavaScript-specific inference and JS Doc | not ready | - |
+| Type resolution | done | Same types as TS 5.8. |
+| Type checking | done | Same errors, locations, and messages as TS 5.8. Types printback in errors may display differently. |
+| JavaScript-specific inference and JS Doc | in progress | Mostly complete, but intentionally lacking some features. Declaration emit not complete. |
| JSX | done | - |
-| Declaration emit | in progress | Most common features are in place, but some edge cases and feature flags are still unhandled |
-| Emit (JS output) | in progress | `target: esnext` well-supported, other targets may have gaps |
-| Watch mode | prototype | Watches files and rebuilds, but no incremental rechecking |
+| Declaration emit | in progress | Most common features are in place, but some edge cases and feature flags are still unhandled. |
+| Emit (JS output) | in progress | `target: esnext` well-supported, other targets may have gaps. |
+| Watch mode | prototype | Watches files and rebuilds, but no incremental rechecking. Not optimized. |
| Build mode / project references | done | - |
| Incremental build | done | - |
-| Language service (LSP) | in progress | Some functionality (errors, hover, go to def, refs, sig help). More features coming soon |
+| Language service (LSP) | in progress | Some functionality (errors, hover, go to def, refs, sig help). More features coming soon. |
| API | not ready | - |
Definitions:
From a4d99d4742215c001f1a1b580878221c29cc6603 Mon Sep 17 00:00:00 2001
From: Jake Bailey <5341706+jakebailey@users.noreply.github.com>
Date: Fri, 22 Aug 2025 09:59:53 -0700
Subject: [PATCH 3/3] Update README.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index fc957dd2f5..67c0887fc5 100644
--- a/README.md
+++ b/README.md
@@ -32,7 +32,7 @@ This is still a work in progress and is not yet at full feature parity with Type
| Commandline and `tsconfig.json` parsing | mostly done | Missing --help, --init. |
| Type resolution | done | Same types as TS 5.8. |
| Type checking | done | Same errors, locations, and messages as TS 5.8. Types printback in errors may display differently. |
-| JavaScript-specific inference and JS Doc | in progress | Mostly complete, but intentionally lacking some features. Declaration emit not complete. |
+| JavaScript-specific inference and JSDoc | in progress | Mostly complete, but intentionally lacking some features. Declaration emit not complete. |
| JSX | done | - |
| Declaration emit | in progress | Most common features are in place, but some edge cases and feature flags are still unhandled. |
| Emit (JS output) | in progress | `target: esnext` well-supported, other targets may have gaps. |