Vscode: Estranheza de dobramento de código com linhas subsequentes recuadas

Criado em 10 abr. 2016  ·  3Comentários  ·  Fonte: microsoft/vscode

  • Versão VSCode: 0.10.11
  • Versão do sistema operacional: Mac OS X El Capitan (10.11.4)

Passos para reproduzir: Sinceramente, não tenho certeza de como reproduzi-lo porque tentei e não conseguiu. Então, acabei de tirar uma série de screenshots para que talvez vocês pudessem descobrir o padrão. Não tem causado nenhum problema para mim, exceto por parecer estranho. Espero que isso não afete o código de ninguém, mas sei que às vezes um problema aparentemente pequeno pode se transformar em um balão mais tarde, então eu só queria ajudá-lo a pegá-lo caso isso aconteça! :)

Problema: ao recolher blocos de código (neste caso, a linha # 253), o da foto se fecha, mas depois me oferece um "sinal de menos" para recolher uma linha que não pode ser recolhida (# 273). Parece reduzir a linha de espaço em branco após (# 274), e é isso. Mas é uma chave de fechamento.

Hipótese: Como tenho um bloco de código recuado (começando na linha 275) abaixo da propriedade que estou definindo na linha 253, acredito que ele está tentando me alertar de que posso fechá-lo. Nesse caso, e se o problema for um recurso e não um bug, esse recurso é muito confuso / pouco claro. (veja a imagem 4)

Se de fato minha hipótese estiver correta, posso sugerir o uso de um ícone diferente para indicar a capacidade de recolher linhas recuadas abaixo de um objeto (o que realmente faz sentido, mas, novamente, não está claro no contexto de recolher os blocos de código acima dele), uma vez que não é tecnicamente um bloco de código encapsulado que está sendo recolhido.

Imagem 1
code folding 1

Imagem 2
code folding 2

Imagem 3
code folding 3

Imagem 4
code folding 4

IDE incrível e ótimo trabalho, pessoal! =)

*question

Todos 3 comentários

Muito obrigado pelas muitas imagens. Acho que o que é especial em seu código é que o colchete de fechamento na linha 273 tem um recuo maior do que o código seguinte na linha 275.
A estratégia de dobra implementada atualmente olha apenas para o recuo das linhas. Uma região de dobra começa quando uma linha tem um recuo menor do que uma ou mais linhas seguintes e termina quando há uma linha com o mesmo recuo ou menor. Linhas vazias são ignoradas.
Meu palpite é que se você reduzir o recuo entre as linhas 275 e 416 por um para ser o mesmo que na linha 273, você verá um comportamento mais normal. Você pode verificar isso?

Para ficar mais inteligente aqui, precisamos adicionar conhecimento de idioma à estratégia de recuo. Por exemplo, o conhecimento de que a} é o fim de um bloco, mas nunca o início.
Temos o problema # 3422 para isso.

fechando, assumindo que minha suposição estava certa. Por favor, comente se não ...

@aeschli você está correto. Desculpe por uma resposta tão tardia sobre isso! Basicamente, pareceu-me que estava dobrando com base no conhecimento de que eu estava implicitamente transformando essas propriedades em subpropriedades da propriedade definida na linha 253-273. Acho que funciona conforme o esperado com base no que você disse, mas certamente seria confuso para quem não entende o que está fazendo. Honestamente, funciona bem para quando eu indento blocos assim, porque então posso recolher o sub-código implícito.

Também concordo com você que o conhecimento do idioma também ajudaria.

Obrigado!

Esta página foi útil?
0 / 5 - 0 avaliações