microsoft / microsoft/TypeScript
Shorten error spans for missing key errors reported on object literals
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 111k
- Forks
- 14.4k
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 117
Description
🔍 Search Terms
object literal, error span, squigglies, highlight, decoration, editor, range
✅ Viability Checklist
- This wouldn't be a breaking change in existing TypeScript/JavaScript code
- This wouldn't change the runtime behavior of existing JavaScript code
- This could be implemented without emitting different JS based on the types of the expressions
- This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
- This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
- This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals
⭐ Suggestion
When defining an object literal with a missing key, e.g. as a function input, highlight only the first line of the object literal as opposed to the entire node.
📃 Motivating Example
Current behavior (one parameter with missing key):
Suggested behavior (one parameter with missing key):
Current behavior (two parameters with missing keys):
Suggested behavior(two parameters with missing keys):
Here's a TS playground link with the original source:
💻 Use Cases
This would make errors clearer and less jarring when defining large objects as function inputs.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked TS Playground example and reproduce the missing-key diagnostics for one and two object-literal parameters. Trace where the diagnostic range is selected for these errors, then verify that each highlight stops at the first line of the object literal rather than covering the entire node.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100