Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
fdf79f0
Add `unsorted` expected completions (#1351)
gabritto Jul 2, 2025
6faf496
Update copilot instructions and setup steps with new stuff (#1350)
Copilot Jul 2, 2025
af0fe4a
Bump github/codeql-action from 3.29.0 to 3.29.1 in the github-actions…
dependabot[bot] Jul 2, 2025
104aea5
Implement tryLoadInputFileForPath, file loader diags (#1302)
jakebailey Jul 3, 2025
15def02
Make `projecttestutil.Setup` generic, avoid casts. (#1353)
DanielRosenwasser Jul 3, 2025
69a1fc5
Fixed some completions close to end of files (#1356)
Andarist Jul 3, 2025
f156cc3
Add `goTo....` functions to fourslash (#1357)
gabritto Jul 4, 2025
76d4e43
Handle LSP textDocument/documentSymbol requests (#1363)
ahejlsberg Jul 6, 2025
2fe47a5
Add script to update list of failing generated fourslash tests (#1361)
gabritto Jul 7, 2025
7919c9a
Add CFA regression test for while loop with continue statements (#1325)
Copilot Jul 7, 2025
b7f1b49
Don't allocate empty slice for named members (#1312)
jakebailey Jul 7, 2025
09e7953
Clean up host related code (#1354)
jakebailey Jul 7, 2025
e092266
Temporarily work around GetLineMap CPU usage (#1368)
jakebailey Jul 8, 2025
9953b71
Clear out checker-level stacks on pop (#1369)
jakebailey Jul 8, 2025
1f1dd93
Port TS PR 61505 - Cache mapper instantiations (#1358)
jakebailey Jul 8, 2025
7347bf4
fourslash baselines and `VerifyBaselinefindAllReferences` (#1274)
iisaduan Jul 8, 2025
7b92fe5
Fix no-file cases (#1370)
jakebailey Jul 8, 2025
bc8d29c
Fix panic when hovering over functions with JSDoc links (#1339)
Copilot Jul 8, 2025
7c32d84
Various memory allocation improvements (#1366)
jakebailey Jul 8, 2025
36d9e06
Avoid holding on to NodeBuilder in checker (#1289)
jakebailey Jul 8, 2025
b630b33
Port ES2016 transform (#1371)
weswigham Jul 8, 2025
742fcd2
Port es2021 transform (#1372)
weswigham Jul 8, 2025
685faad
Allow duplicate names in package.json parsing (#1321)
jakebailey Jul 9, 2025
a076c17
Port `??` binary operator emit (#1375)
weswigham Jul 9, 2025
ff64032
Use update failing tests script in CI (#1378)
gabritto Jul 9, 2025
dec0b9d
Better formatting for generated fourslash tests (#1377)
gabritto Jul 9, 2025
48799f0
Handle `completionItem/resolve` (#1384)
gabritto Jul 10, 2025
a942c19
fix(1379): add return type support to construct signature declaration…
a-tarasyuk Jul 11, 2025
678ab6f
Port verifyCompilerOptions, error on things removed from this repo (#…
jakebailey Jul 11, 2025
5f0157e
Ignore go/allocation-size-overflow in codeql (#1392)
jakebailey Jul 11, 2025
23aad64
Keep reusing caches from previous runs for copilot runs (#1390)
jakebailey Jul 11, 2025
19c1578
Port some more truncation check related code (#1373)
jakebailey Jul 11, 2025
3195e8e
fix(1342): adjust node ranges to ignore trivia (#1355)
a-tarasyuk Jul 11, 2025
fba8b25
Port TS PR 61764 (for (using of = is incorrectly parsed) (#1307)
a-tarasyuk Jul 11, 2025
6e77150
Small fixes to fourslash tests conversion script (#1393)
gabritto Jul 11, 2025
83d4f30
Fix setup-go restore key (#1394)
jakebailey Jul 11, 2025
b0107af
Undo my CI caching changes (#1395)
jakebailey Jul 11, 2025
2b82831
lsp: Check diagnostic refresh capabilities against nil values & suppo…
osiewicz Jul 12, 2025
6c17bea
Port `?.` emit (#1385)
weswigham Jul 14, 2025
f9ca2a1
Fix `completionItem/resolve` keyword and hover crashes (#1403)
gabritto Jul 14, 2025
e62a044
Port `isInComment` (#1397)
gabritto Jul 15, 2025
256441c
Completions fixes (#1404)
gabritto Jul 15, 2025
eb83c1c
Fix invalid URI for untitled references/definitions (#1344)
Copilot Jul 15, 2025
2342d77
Obtain target type before calling getBaseTypes (#1409)
ahejlsberg Jul 16, 2025
d0520d8
Add issue templates (#1410)
andrewbranch Jul 17, 2025
4fd6eb1
Improve go-to-definition and implement go-to-type-definition (#1405)
ahejlsberg Jul 17, 2025
96c0688
Deep clone JSDoc (#1412)
sandersn Jul 18, 2025
d222dd8
support `@type` on parameters (#1427)
sandersn Jul 21, 2025
a9b6a77
Improve destructured `@param` tag matching (#1428)
sandersn Jul 21, 2025
aaa79ed
Remove leftover log statement in verifyCompilerOptions (#1424)
jakebailey Jul 21, 2025
2c5f228
Override diagnostic about baseUrl path checks (#1407)
jakebailey Jul 21, 2025
d9f6961
Simplify `filterText` computation + fixes (#1414)
gabritto Jul 22, 2025
f616d7f
Fix crash in completions following call expressions (#1417)
Copilot Jul 22, 2025
2ff976e
Stop getFlowTypeOfProperty overwriting with base class property (#1432)
sandersn Jul 22, 2025
675fd75
Fix comment formatting bug that mangled `*/` tokens (#1401)
Copilot Jul 22, 2025
53e5c70
Fourslash: open all test files (#1422)
gabritto Jul 22, 2025
82c0a79
remove JS exception for constructor type parameter arity match (#1434)
sandersn Jul 22, 2025
7c16fa3
Verify required properties in generated LSP code (#1433)
jakebailey Jul 22, 2025
88e95c9
Implement Go To Implementations command (#1430)
ahejlsberg Jul 22, 2025
79d0450
Convert LSP generator to mts with strip types (#1436)
jakebailey Jul 22, 2025
46ccafb
Add modifiers on reparsed signature from `@overload` (#1438)
sandersn Jul 23, 2025
b780b19
Always include spelling suggestions in name errors (#1440)
ahejlsberg Jul 23, 2025
f0484dd
Port go-to-definition baseline tests (#1437)
DanielRosenwasser Jul 24, 2025
5e6bd1e
Incremental port (#1322)
sheetalkamat Jul 24, 2025
295ce6c
Special-case JSDocVariadicType in JSDocSignature (#1444)
sandersn Jul 24, 2025
6104a31
Update dependencies (#1443)
jakebailey Jul 24, 2025
c72f1ea
Consistently use len(x) != 0 checks for Signature.typeParameters (#1449)
ahejlsberg Jul 24, 2025
2e8b060
Implement `MarkerNames()` in fourslash (#1450)
DanielRosenwasser Jul 24, 2025
b0ee8b4
Generate LSP response types, redo nullable, delete aliases, staticall…
jakebailey Jul 24, 2025
5ab1364
Fix nil host with watch and incremental (#1455)
sheetalkamat Jul 24, 2025
36fc3e5
Ignore empty params, fix cancellation errors (#1459)
jakebailey Jul 25, 2025
833a67c
Fix more LSP related issues (#1460)
jakebailey Jul 25, 2025
8811de4
Support `@satisfies` on same nodes as `@type` (#1454)
sandersn Jul 25, 2025
c05da65
Propagate context in LS more, stop nil checking ctx (#1463)
jakebailey Jul 25, 2025
623088c
Bump github/codeql-action from 3.29.1 to 3.29.2 in the github-actions…
dependabot[bot] Jul 28, 2025
2cbbe52
Flatten LSP structures (#1469)
jakebailey Jul 29, 2025
eaeb708
Fix for Signature help crash (#1472)
navya9singh Jul 29, 2025
cb8428d
Add times for changes compute and buildinfo read time (#1474)
sheetalkamat Jul 29, 2025
a9efe52
Move fourslash test utils into imported package (#1473)
gabritto Jul 29, 2025
6d19ac2
Adding manual tests list (#1446)
navya9singh Jul 29, 2025
5cdf239
Fix type parameter constraint check in comparable relation (#1471)
ahejlsberg Jul 29, 2025
5d60697
Fix parameter-property with default value emitting `T | undefined` in…
Copilot Jul 30, 2025
ca3a056
Add guidance to use @strict: true by default in new compiler tests (#…
Copilot Jul 30, 2025
e68e226
Port over some baselined hover/quick info tests (#1476)
DanielRosenwasser Jul 30, 2025
008942f
Full-signature types for JSDoc (#1468)
sandersn Jul 30, 2025
62a8b89
Add locale-sensitive sorting + completion fixes (#1456)
gabritto Jul 30, 2025
b0ee841
Don't use a regex in IsImplicitGlob (#1482)
jakebailey Jul 30, 2025
e4e03ca
Switch to jsonv2 wholesale (#1486)
jakebailey Jul 31, 2025
6f385fd
fix: emit end of file comments (#1491)
chengcyber Jul 31, 2025
ec1a434
Port `verify.quickInfo...` tests (#1494)
gabritto Aug 1, 2025
644bde2
Optimize LSP marshalling via jsonv2 methods (#1502)
jakebailey Aug 1, 2025
d9b8f4c
Bump github/codeql-action from 3.29.4 to 3.29.5 in the github-actions…
dependabot[bot] Aug 4, 2025
62d310a
Switch to xxhash for tsbuildinfo hashing (#1511)
jakebailey Aug 4, 2025
fc4f203
Use json v2 directly, move utils to new jsonutil package (#1504)
jakebailey Aug 4, 2025
f188316
Use a single shared cache for all CI workflows (#1506)
jakebailey Aug 4, 2025
c018483
Add baseline tests from signature help (#1485)
DanielRosenwasser Aug 4, 2025
57f8f04
Enable long paths for windows in new create-cache workflow (#1513)
jakebailey Aug 4, 2025
0060df5
Regenerate NOTICE.txt file (#1512)
jakebailey Aug 4, 2025
a149911
Fix module cache (#1514)
jakebailey Aug 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 1 addition & 1 deletion .custom-gcl.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# yaml-language-server: $schema=https://golangci-lint.run/jsonschema/custom-gcl.jsonschema.json

version: v2.0.2
version: v2.3.0

destination: ./_tools

Expand Down
2 changes: 1 addition & 1 deletion .dprint.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
// Note: if adding new languages, make sure settings.template.json is updated too.
// Also, if updating typescript, update the one in package.json.
"plugins": [
"https://plugins.dprint.dev/typescript-0.95.7.wasm",
"https://plugins.dprint.dev/typescript-0.95.8.wasm",
"https://plugins.dprint.dev/json-0.20.0.wasm",
"https://plugins.dprint.dev/g-plane/pretty_yaml-v0.5.1.wasm",
"https://plugins.dprint.dev/exec-0.5.1.json@492414e39dea4dccc07b4af796d2f4efdb89e84bae2bd4e1e924c0cc050855bf"
Expand Down
18 changes: 18 additions & 0 deletions .github/ISSUE_TEMPLATE/01-crash.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: Crash
about: Using tsgo or the language server caused a panic
title: ''
labels: Crash
assignees: ''

---

## Stack trace

```
[paste stack trace here]
```

## Steps to reproduce

1.
16 changes: 16 additions & 0 deletions .github/ISSUE_TEMPLATE/02-behavior-difference.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: Behavior Difference
about: tsgo produces different results than TypeScript 5.8
title: ''
labels: ''
assignees: ''

---

## Steps to reproduce

<!-- Share a repository link or a code sample -->

## Behavior with `[email protected]`

## Behavior with `tsgo`
10 changes: 10 additions & 0 deletions .github/ISSUE_TEMPLATE/03-other.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
name: Other
about: Something else
title: ''
labels: ''
assignees: ''

---


26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/04-copilot-pr-porting.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
name: '[TypeScript Team Use] Copilot PR porting'
about: Instructions for Copilot to port a PR from microsoft/TypeScript
title: 'Port TypeScript PR #[NNNNN]'
labels: Porting PR
assignees: ''

---

This repository is a port of microsoft/TypeScript from TypeScript to Go. Since the port began, the following pull request was applied to microsoft/TypeScript. An equivalent change now needs to be applied here.

## PR to port

- PR link: <!-- https://github.com/microsoft/TypeScript/pull/NNNNN -->
- Squash commit diff: <!-- Copy the squash commit link and append ".patch", e.g. https://github.com/microsoft/TypeScript/commit/a271797c1a95494e5f7aa8075c01941ad25cad08.patch -->

## Instructions

1. Use `playwright` to view the PR listed above
2. Apply the edits made in that PR to this codebase, translating them from TypeScript to Go.
- The change may or may not be applicable. It may have already been ported. Do not make any significant changes outside the scope of the diff. If the change cannot be applied without significant out-of-scope changes, explain why and stop working.
- Tip: search for functions and identifiers from the diff to find the right location to apply edits. Some files in microsoft/TypeScript have been split into multiple.
- Tip: some changes have already been ported, like changes to diagnostic message text. Tests do not need to be ported as they are imported from the submodule.
3. Refer to your copilot_instructions.md for guidance on how to build and test your change. Note the following differences to the typical development workflow:
- Since you are porting the implementation for a behavior that already has tests in the submodule, you don't need to add new tests. Instead, your change should change existing baselines.
- If done correctly, you should see removals in `.diff` baselines. These `.diff` removals are your ultimate source of truth: your change is not correct unless diffs are reduced.
116 changes: 105 additions & 11 deletions .github/actions/setup-go/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,16 @@ inputs:
go-version:
description: Go version range to set up.
default: '>=1.24.0'
cache-name:
description: Name of scoped cache for this set up.
default: 'cache'
create:
description: Create the cache
default: 'false'
lint-cache:
description: Restore the golangci-lint cache
default: 'false'

runs:
using: composite

steps:
- name: Install Go
id: install-go
Expand All @@ -19,17 +23,107 @@ runs:
go-version: ${{ inputs.go-version }}
cache: false

- name: Go cache
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
# Avoid hardcoding the cache keys more than once.
- name: Get cache info
shell: bash
id: cache-info
env:
MODULES_KEY: go-modules-${{ runner.os }}-${{ steps.install-go.outputs.go-version }}-${{ hashFiles('**/go.sum', '**/.custom-gcl.yml') }}
LINT_KEY: golangci-lint-${{ runner.os }}-${{ steps.install-go.outputs.go-version }}-${{ hashFiles('**/go.sum', '**/.custom-gcl.yml') }}
BUILD_KEY: go-build-cache-${{ runner.os }}-${{ steps.install-go.outputs.go-version }}
run: |
echo "modules-key=$MODULES_KEY" >> $GITHUB_OUTPUT
echo "lint-key=$LINT_KEY" >> $GITHUB_OUTPUT
echo "build-key=$BUILD_KEY" >> $GITHUB_OUTPUT
echo "GOLANGCI_LINT_CACHE=$RUNNER_TEMP/golangci-lint-cache" >> $GITHUB_ENV

- if: ${{ inputs.create != 'true' }}
name: Restore Go modules
uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
key: ${{ steps.cache-info.outputs.modules-key }}
path: |
~/go/pkg/mod

- if: ${{ inputs.create != 'true' }}
name: Restore Go build cache
uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
key: unused-key-${{ github.run_id }}
restore-keys: ${{ steps.cache-info.outputs.build-key }}-
path: |
~/.cache/go-build
~/Library/Caches/go-build
~/AppData/Local/go-build

- if: ${{ inputs.create != 'true' && inputs.lint-cache == 'true' }}
name: Restore golangci-lint cache
uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
key: unused-key-${{ github.run_id }}
restore-keys: ${{ steps.cache-info.outputs.lint-key }}-
path: ${{ env.GOLANGCI_LINT_CACHE }}

- name: Set mtimes
shell: bash
run: |
find . -type f ! -path ./.git/\*\* | go run github.com/slsyy/mtimehash/cmd/[email protected] || true
find . -type d ! -path ./.git/\*\* -exec touch -d '1970-01-01T00:00:01Z' {} + || true

# All steps below are only run if the cache is being created.

- if: ${{ inputs.create == 'true' }}
shell: bash
run: npm ci

- if: ${{ inputs.create == 'true' }}
shell: bash
run: |
go mod download
cd _tools
go mod download

- if: ${{ inputs.create == 'true' }}
shell: bash
run: npx hereby build

- if: ${{ inputs.create == 'true' }}
shell: bash
run: npx hereby test

- if: ${{ inputs.create == 'true' }}
shell: bash
run: npx hereby lint

- if: ${{ inputs.create == 'true' }}
shell: bash
run: npx hereby lint --noembed

- if: ${{ inputs.create == 'true' }}
shell: bash
run: npx dprint check

- if: ${{ inputs.create == 'true' }}
name: Save Go modules
uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
# There is more code downloaded and built than is covered by '**/go.sum',
# so give each job its own cache to try and not end up sharing the wrong
# cache between jobs.
key: ts-setup-go-${{ runner.os }}-${{ steps.install-go.outputs.go-version }}-${{ hashFiles('**/go.sum', '**/Herebyfile.mjs', '**/.custom-gcl.yml') }}-${{ github.workflow }}-${{ inputs.cache-name }}
restore-keys: |
ts-setup-go-${{ runner.os }}-${{ steps.install-go.outputs.go-version }}-${{ hashFiles('**/go.sum', '**/Herebyfile.mjs', '**/.custom-gcl.yml') }}
key: ${{ steps.cache-info.outputs.modules-key }}
path: |
~/go/pkg/mod

- if: ${{ inputs.create == 'true' }}
name: Save Go build cache
uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
key: ${{ steps.cache-info.outputs.build-key }}-${{ github.run_id }}
path: |
~/.cache/go-build
~/Library/Caches/go-build
~/AppData/Local/go-build

- if: ${{ inputs.create == 'true' }}
name: Save golangci-lint cache
uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
key: ${{ steps.cache-info.outputs.lint-key }}-${{ github.run_id }}
path: ${{ env.GOLANGCI_LINT_CACHE }}
3 changes: 3 additions & 0 deletions .github/codeql/codeql-configuration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,6 @@ query-filters:
# This query takes too long on complicated string manipulations
- exclude:
id: go/unsafe-quoting
# Times out in our code.
- exclude:
id: go/allocation-size-overflow
32 changes: 23 additions & 9 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,29 @@ Most of our development takes place in the `internal` directory, and most behavi

Most development on the codebase is in Go.
Standard Go commands and practices apply, but we primarily use a tool called `hereby` to build, run tests, and other tasks.
Feel free to install `hereby` globally (`npm install -g hereby`) if it is easier, and run `hereby --list` to see all available commands.
Run `npx hereby --list` to see all available commands.

```sh
hereby build # Build the project
hereby test # Run tests
hereby format # Format the code
hereby lint # Run linters
npx hereby build # Build the project
npx hereby test # Run tests
npx hereby format # Format the code
npx hereby lint # Run linters

# To run a specific compiler test:
go test -run='TestSubmodule/<test name>' ./internal/testrunner # For submodule tests in _submodules/TypeScript
go test -run='TestLocal/<test name>' ./internal/testrunner # For local tests in testdata/tests/cases
```

Always make sure code is formatted, linted, and tested before sending a pull request.
Always make sure code is formatted, linted, and tested before sending a pull request.

## Compiler Features, Fixes, and Tests

When fixing a bug or implementing a new feature, at least one minimal test case should always be added in advance to verify the fix.
This project primarily uses snapshot/baseline/golden tests rather than unit tests.
New compiler tests are written in `.ts`/`.tsx` files in the directory `testdata/tests/cases/compiler/`, and are written in the following format:

**Note:** Issues with editor features cannot be tested with compiler tests in `testdata/tests/cases/`. Editor functionality requires integration testing with the language server.

```ts
// @target: esnext
// @module: preserve
Expand All @@ -50,8 +56,10 @@ export interface Person {
function greet(person) {
console.log(`Hello, ${person.name}!`);
}
```

```

**New compiler tests should always enable strict mode (`@strict: true`) unless the bug specifically involves non-strict mode behavior.**

Tests don't always need the above `@option`s specified, but they are common to specify or modify.
Tests can be run with multiple settings for a given option by using a comma-separated list (e.g. `@option: settingA,settingB`).
`@filename` is only required when a test has multiple files, or when writing a test for a single JavaScript file (where `allowJs` or `checkJs` is enabled).
Expand Down Expand Up @@ -79,6 +87,12 @@ It is ideal to implement features and fixes in the following order, and commit c

It is fine to implement more and more of a feature across commits, but be sure to update baselines every time so that reviewers can measure progress.

## Code Porting Reference

The code in `internal` is ported from the code in `_submodules/TypeScript`.
When implementing features or fixing bugs, those files should be searched for similar functions when code is either missing or potentially wrong.
The TypeScript submodule serves as the reference implementation for behavior and functionality.

# Other Instructions

- Do not add or change existing dependencies unless asked to.
Expand Down
29 changes: 5 additions & 24 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@ jobs:
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
- uses: dtolnay/rust-toolchain@fcf085fcb4b4b8f63f96906cd713eb52181b5ea4 # stable
- uses: ./.github/actions/setup-go
with:
cache-name: build

# Avoid duplicate PR annotations.
- name: Disable PR annotations
Expand Down Expand Up @@ -112,8 +110,6 @@ jobs:
node-version: 'lts/*'
- uses: dtolnay/rust-toolchain@fcf085fcb4b4b8f63f96906cd713eb52181b5ea4 # stable
- uses: ./.github/actions/setup-go
with:
cache-name: test

# Avoid duplicate PR annotations.
- if: ${{ ! matrix.config.main }}
Expand Down Expand Up @@ -200,7 +196,7 @@ jobs:
- uses: dtolnay/rust-toolchain@fcf085fcb4b4b8f63f96906cd713eb52181b5ea4 # stable
- uses: ./.github/actions/setup-go
with:
cache-name: lint${{ (matrix.config.noembed && '-noembed') || ''}}
lint-cache: 'true'

# Avoid duplicate PR annotations.
- if: ${{ ! matrix.config.main }}
Expand All @@ -222,8 +218,6 @@ jobs:
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
- uses: dtolnay/rust-toolchain@fcf085fcb4b4b8f63f96906cd713eb52181b5ea4 # stable
- uses: ./.github/actions/setup-go
with:
cache-name: format

- run: npm ci

Expand All @@ -240,21 +234,16 @@ jobs:
node-version: '>=22.16.0'
- uses: dtolnay/rust-toolchain@fcf085fcb4b4b8f63f96906cd713eb52181b5ea4 # stable
- uses: ./.github/actions/setup-go
with:
cache-name: generate

- run: npm ci

- run: npx hereby generate

- run: node ./internal/lsp/lsproto/_generate/fetchModel.mjs
- run: node ./internal/lsp/lsproto/_generate/generate.mjs

- name: Remove all converted fourslash tests
run: rm -rf internal/fourslash/tests/gen
- run: node --experimental-strip-types ./internal/lsp/lsproto/_generate/fetchModel.mts
- run: node --experimental-strip-types ./internal/lsp/lsproto/_generate/generate.mts

- name: Regenerate fourslash tests
run: npm run convertfourslash
- name: Regenerate fourslash tests and update failing test list
run: npm run updatefailing

- run: git add .
- run: git diff --staged --exit-code --stat
Expand All @@ -264,8 +253,6 @@ jobs:
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: ./.github/actions/setup-go
with:
cache-name: tidy

- run: go mod tidy -diff
- run: go -C ./_tools mod tidy -diff
Expand All @@ -279,8 +266,6 @@ jobs:
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
- uses: dtolnay/rust-toolchain@fcf085fcb4b4b8f63f96906cd713eb52181b5ea4 # stable
- uses: ./.github/actions/setup-go
with:
cache-name: smoke

# Avoid duplicate PR annotations.
- name: Disable PR annotations
Expand All @@ -305,8 +290,6 @@ jobs:
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: ./.github/actions/setup-go
with:
cache-name: misc

- run: go -C ./_tools run ./cmd/checkmodpaths $PWD

Expand All @@ -319,8 +302,6 @@ jobs:
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
- uses: dtolnay/rust-toolchain@fcf085fcb4b4b8f63f96906cd713eb52181b5ea4 # stable
- uses: ./.github/actions/setup-go
with:
cache-name: baselines

- run: npm ci

Expand Down
Loading