Vscode: 缩进的后续行的代码折叠奇数

创建于 2016-04-10  ·  3评论  ·  资料来源: microsoft/vscode

  • VSCode版本:0.10.11
  • 操作系统版本:Mac OS X El Capitan(10.11.4)

重现步骤:老实说,我不确定如何重现,因为我已经尝试过了,但是还没有。 因此,我仅拍摄了一系列屏幕截图,以便也许你们可以弄清楚这种模式。 除了看起来很奇怪之外,它根本没有对我造成任何问题。 希望它不会影响任何人的代码,但是我知道有时一个看似很小的问题可能会在以后引起广泛关注,所以我只是想帮助您赶上它,以防万一! :)

问题:当折叠代码块时(在本例中为第253行),照片中的那个折叠了,但随后给我一个“减号”以折叠一个不可折叠的行(#273)。 它似乎折叠了它后面的一行空白(#274),仅此而已。 但这是一个结尾括号。

假设:由于我在#253行中定义的属性下有一个缩进的代码块(第275行开始),因此我相信它试图警告我可以将其关闭。 如果是这样,并且问题不是功能而是错误,那么该功能将非常令人困惑/不清楚。 (参见图4)

如果实际上我的假设是正确的,我是否可以建议使用其他图标来表示将对象下方的缩进线折叠的能力(这确实是有道理的,但是在折叠其上方的代码块时尚不清楚),因为从技术上讲,它不是被折叠的封装代码块。

图片1
code folding 1

图片2
code folding 2

图片3
code folding 3

图片4
code folding 4

很棒的IDE和出色的工作人员! =)

*question

所有3条评论

非常感谢您提供的许多屏幕截图。 我认为您的代码中的特殊之处在于,第273行的右括号比第275行的代码具有更大的缩进量。
当前实施的折叠策略仅考虑线条的缩进。 当一条线的缩进小于一条或多条后续线时,折叠区域开始;当一条线的缩进相同或更小时,折叠区域结束。 空行将被忽略。
我的猜测是,如果您将275行和416行之间的缩进减少到与273行相同,则您会看到更正常的行为。 你能验证一下吗?

为了在这里变得更聪明,我们需要将语言知识添加到缩进策略中。 例如,知道}是块的结尾,但绝不是开始。
为此,我们有问题#3422。

最后,假设我的假设是正确的。 如果没有,请发表评论...

@aeschli,您是正确的。 抱歉,这么晚才回复! 基本上,在知道我将这些属性隐式地做成第253-273行定义的属性的子属性之后,它看起来像是在折叠。 我认为根据您的发言,它可以按预期运行,但是对于任何不了解其功能的人来说,肯定会造成混淆。 老实说,当我缩进这样的代码块时,它可以很好地工作,因为这样我就可以折叠隐含的子代码。

我也同意您的看法,即语言知识也将有所帮助。

谢谢!

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

ryan-wong picture ryan-wong  ·  3评论

rakkarage picture rakkarage  ·  3评论

curtw picture curtw  ·  3评论

lukehoban picture lukehoban  ·  3评论

omidgolparvar picture omidgolparvar  ·  3评论