Skip to content

Request cancellation for language server#2523

Merged
L0r3m1p5um merged 4 commits intonickel-lang:masterfrom
L0r3m1p5um:request-cancellation
Feb 26, 2026
Merged

Request cancellation for language server#2523
L0r3m1p5um merged 4 commits intonickel-lang:masterfrom
L0r3m1p5um:request-cancellation

Conversation

@L0r3m1p5um
Copy link
Collaborator

This implements client cancellation of language server requests via the $/cancelRequest notification. There's a limitation on what requests can be canceled. The request has to be waiting in the queue. If handling of the request has already begun, that request will be completed normally even if a cancellation notification is received. The server will never proactively cancel a request, this only cancels requests when requested by the client.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 21, 2026

🐰 Bencher Report

Branchrequest-cancellation
Testbedubuntu-latest
Click to view all benchmark results
BenchmarkLatencymicroseconds (µs)
diagnostics-benches/inputs/goto-perf.ncl📈 view plot
🚷 view threshold
11,064.00 µs
diagnostics-benches/inputs/large-record-tree.ncl📈 view plot
🚷 view threshold
188,620.00 µs
diagnostics-benches/inputs/redis-replication-controller.ncl📈 view plot
🚷 view threshold
381.35 µs
diagnostics-benches/inputs/small-record-tree.ncl📈 view plot
🚷 view threshold
533.75 µs
fibonacci 10📈 view plot
🚷 view threshold
222.14 µs
foldl arrays 50📈 view plot
🚷 view threshold
377.84 µs
foldl arrays 500📈 view plot
🚷 view threshold
2,694.90 µs
foldr strings 50📈 view plot
🚷 view threshold
2,906.40 µs
foldr strings 500📈 view plot
🚷 view threshold
27,676.00 µs
generate normal 250📈 view plot
🚷 view threshold
14,846.00 µs
generate normal 50📈 view plot
🚷 view threshold
1,000.50 µs
generate normal unchecked 1000📈 view plot
🚷 view threshold
1,675.10 µs
generate normal unchecked 200📈 view plot
🚷 view threshold
345.19 µs
init-diagnostics-benches/inputs/goto-perf.ncl📈 view plot
🚷 view threshold
55,208.00 µs
init-diagnostics-benches/inputs/large-record-tree.ncl📈 view plot
🚷 view threshold
209,370.00 µs
init-diagnostics-benches/inputs/redis-replication-controller.ncl📈 view plot
🚷 view threshold
49,990.00 µs
init-diagnostics-benches/inputs/small-record-tree.ncl📈 view plot
🚷 view threshold
50,306.00 µs
pidigits 100📈 view plot
🚷 view threshold
1,912.90 µs
pipe normal 20📈 view plot
🚷 view threshold
594.24 µs
pipe normal 200📈 view plot
🚷 view threshold
4,477.60 µs
product 30📈 view plot
🚷 view threshold
257.03 µs
requests-benches/inputs/goto-perf.ncl-000📈 view plot
🚷 view threshold
3,021.30 µs
requests-benches/inputs/large-record-tree.ncl-000📈 view plot
🚷 view threshold
613,440.00 µs
requests-benches/inputs/large-record-tree.ncl-001📈 view plot
🚷 view threshold
116.20 µs
scalar 10📈 view plot
🚷 view threshold
518.27 µs
sum 30📈 view plot
🚷 view threshold
268.28 µs
🐰 View full continuous benchmarking report in Bencher

@L0r3m1p5um L0r3m1p5um added this pull request to the merge queue Feb 26, 2026
Merged via the queue into nickel-lang:master with commit 183ac0f Feb 26, 2026
4 checks passed
@L0r3m1p5um L0r3m1p5um deleted the request-cancellation branch February 26, 2026 06:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants