Vscode: Code Folding Oddity avec des lignes subséquentes en retrait

Créé le 10 avr. 2016  ·  3Commentaires  ·  Source: microsoft/vscode

  • Version VSCode: 0.10.11
  • Version du système d'exploitation: Mac OS X El Capitan (10.11.4)

Étapes à suivre pour reproduire: Honnêtement, je ne suis pas sûr de savoir comment le reproduire car j'ai essayé et ce n'est pas le cas. J'ai donc pris une série de captures d'écran pour que vous puissiez peut-être comprendre le motif. Cela ne m'a causé aucun problème, sauf pour avoir l'air bizarre. J'espère que cela n'affectera le code de personne, mais je sais que parfois un problème apparemment mineur peut se révéler plus tard, alors je voulais juste vous aider à le détecter au cas où cela arriverait! :)

Problème: Lors de la réduction de blocs de code (dans ce cas, la ligne # 253), celui de la photo se réduit, mais m'offre ensuite un "signe moins" pour réduire une ligne non compressible (# 273). Il semble réduire la ligne d'espace blanc après (# 274), et c'est tout. Mais c'est une accolade de fermeture.

Hypothèse: comme j'ai un bloc de code indenté (ligne de départ # 275) sous la propriété que je définis à la ligne # 253, je crois qu'il essaie de m'alerter que je peux le fermer. Si tel est le cas, et si le problème est une fonctionnalité et non un bogue, cette fonctionnalité est très déroutante / peu claire. (voir image 4)

Si en fait mon hypothèse est correcte, puis-je suggérer d'utiliser une icône différente pour indiquer la possibilité de réduire les lignes en retrait sous un objet (ce qui a vraiment du sens, mais encore une fois, n'est pas clair dans le contexte de la réduction des blocs de code au-dessus), car ce n'est pas techniquement un bloc de code encapsulé qui est en train d'être réduit.

Image 1
code folding 1

Image 2
code folding 2

Image 3
code folding 3

Image 4
code folding 4

Un IDE génial et des gens formidables! =)

*question

Tous les 3 commentaires

Merci beaucoup pour les nombreuses captures d'écran. Je pense que ce qui est spécial dans votre code, c'est que le crochet fermant à la ligne 273 a un retrait plus grand que le code suivant à la ligne 275.
La stratégie de pliage actuellement mise en œuvre ne porte que sur l'indentation des lignes. Une région de pliage commence lorsqu'une ligne a un retrait plus petit qu'une ou plusieurs lignes suivantes et se termine lorsqu'il y a une ligne avec le même retrait ou plus petit. Les lignes vides sont ignorées.
Je suppose que si vous réécrivez l'indentation entre les lignes 275 et 416 par un pour qu'elle soit la même qu'à la ligne 273, vous verrez un comportement plus normal. Pouvez-vous vérifier cela?

Pour devenir plus intelligent ici, nous devons ajouter des connaissances linguistiques à la stratégie d'indentation. Par exemple, la connaissance que a} est la fin d'un bloc, mais jamais le début.
Nous avons le numéro 3422 pour cela.

fermeture, en supposant que mon hypothèse était juste. S'il vous plaît commenter si non ...

@aeschli vous avez raison. Désolé pour une réponse si tardive à ce sujet! Fondamentalement, il me semblait qu'il se repliait en sachant que je transformais implicitement ces propriétés en sous-propriétés de la propriété définie à la ligne 253-273. Je pense que cela fonctionne comme prévu d'après ce que vous avez dit, mais ce serait certainement déroutant pour quiconque ne comprend pas ce que cela fait. Cela fonctionne honnêtement bien lorsque j'indente des blocs comme ça, car alors je peux réduire le sous-code implicite.

Je conviens également avec vous que la connaissance de la langue serait également utile.

Merci!

Cette page vous a été utile?
0 / 5 - 0 notes