microsoft / microsoft/TypeScript-TmLanguage

VSCode Syntax highlighting broken when using TypeScript multiline generics in ES6 object function shorthand syntax

Open
#894 0 comments 0 reactions 0 assignees View on GitHub

@mjbvz is already working on this.

Since Dec 1, 2021.

Dominant language
TypeScript
Stars
471
Forks
149
PR merge metrics
No merged PRs in 30d

Description

Does this issue occur when all extensions are disabled?: Yes

  • VS Code Version: 1.62.3
  • OS Version: macOS 11.6.1

Steps to Reproduce:

  1. Create a typescript file with the following code:
const obj = {
	fn<
		K extends string
	>(_: K) {
		const a = 'a';

		function _f() {
			const b = 'b';
			return b;
		}

		return a;
	},
};

const obj2 = {
	fn<K extends string>(_: K) {
		const a = 'a';

		function _f() {
			const b = 'b';
			return b;
		}

		return a;
	},
};
  1. Notice how the syntax highlighting is broken in the first object declaration:
image

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue in VS Code with the TypeScript snippet, comparing the multiline generic with the single-line form. Then inspect the repository's TypeScript TextMate grammar files to find the rule handling object function shorthand and multiline generics. Done means both forms receive correct syntax highlighting without affecting the surrounding function body.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript, vscode
Domain
developer-experience, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.