Regular expressions aren't properly highlighted in certain scenarios

Aberta
#853 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
42/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
javascript, typescript
Domínio
tooling

Direção de pesquisa

Comece reproduzindo os snippets de JavaScript fornecidos no VS Code e, em seguida, localize as regras da gramática TypeScript TextMate responsáveis pelos literais de expressões regulares. Compare o realce em cada contexto listado e no exemplo aninhado; considera-se concluído quando as expressões regulares e o código ao redor são realçados corretamente sem quebrar construções posteriores.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

in vscode 1.53.1

/foo/;
return /foo/;
throw /foo/;

yield* /foo/;
yield /foo/;
await /foo/;

export default /foo/;


if(_) /foo/;
else /foo/;

while(_) /foo/;

for(;;) /foo/;
for(_ in /foo/) /foo/;

with(_) /foo/;

do /foo/;
while(_);


void /foo/;
typeof /foo/;
/foo/ in /foo/;
/foo/ instanceof /foo/;
new /foo/;
!class extends /foo/ {};

/foo/[/foo/];
!/foo/;
~/foo/;
+/foo/;
-/foo/;
++/foo/;
--/foo/;
/foo/++;
/foo/--;

looks like this:

as can be seen, regular expressions aren't properly highlighted:

  • after throw/export default
  • after await/yield (but not yield*)
  • after while(), for(), with(), do, else (but not if())
  • after in/of (in for..in/for..of)
  • after void/typeof/new
  • as either operand of in/instanceof
  • after extends (in class)
  • after unary ++/--

worse yet, this can break the highlighting of surrounding code:

yield /[[]/;
if(1) {
	foo["bar"]();
	a: { break a; }
} else return 123;

Linguagem predominante
TypeScript
Estrelas
471
Forks
149
Métricas de merge de PRs
Nenhum PR com merge em 30d

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de microsoft/TypeScript-TmLanguage

Todas as issues de microsoft/TypeScript-TmLanguage

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.