11 pontos por xguru 2021-09-30 | 4 comentários | Compartilhar no WhatsApp
  • A extensão Bracket Pair Colorizer, desenvolvida em 2016, teve 6 milhões de instalações

  • A versão 2, com desempenho aprimorado, também teve 3 milhões de instalações

  • Mas, devido às limitações da VS Code Decoration API e à impossibilidade de acessar informações de tokens, ela ainda é lenta em arquivos grandes

→ Um arquivo de 42k usa 100% da CPU por 10 segundos, fazendo com que todas as outras ações parem de funcionar

  • A partir da versão 1.60, essa extensão passou a ser implementada no core do VS Code, melhorando a velocidade em 10 mil vezes (em um exemplo específico)

"editor.bracketPairColorization.enabled": true

  • Também aplicado ao VS Code for Web e ao Monaco
  • Isso mostra que esse recurso em si é difícil de implementar rapidamente em extensões sem uma grande mudança de API

  • (O artigo original inclui detalhes do algoritmo, mas são longos demais para reproduzir aqui.)

4 comentários

 
joyfui 2021-10-01

Eu usava o Bracket Pair Colorizer 2 há bastante tempo, mas ao entrar novamente na página da extensão vi que a manutenção já havia sido encerrada.

Removi a extensão e ativei a opção editor.bracketPairColorization.enabled.

 
nicewook 2021-09-30

Eu sabia que tinha sido atualizado, mas

  1. não fazia ideia de que o desempenho tinha melhorado tanto assim

  2. eu estava usando a extensão 1

  3. apaguei a extensão e ativei esse recurso nas configurações. :)

 
xguru 2021-09-30

À primeira vista, parece que o problema é o VSCode ter implementado internamente uma extensão famosa,

https://github.com/microsoft/vscode/…

O autor original do Bracket Pair Colorizer também está acompanhando essa questão de desempenho e,

ele mesmo diz que a extensão já ficou difícil de manter a ponto de ser complicado para ele continuar mexendo nela.

Ou seja, no fim das contas, é melhor para os dois lados que o VS Code implemente isso internamente de forma rápida.

 
tkwlsrl 2021-09-30

Eu também pensei a mesma coisa, então acabou sendo uma situação em que todos saíram ganhando ^_^ ( o desenvolvedor original agora... não precisa mais cuidar disso. hehe )