我需要编写一个程序来缩小代码块,就像visual studio一样。 我需要这背后的逻辑。 感谢
我不需要程序..我需要逻辑
答案 0 :(得分:1)
将scintilla放入您的程序中,您就完成了。
答案 1 :(得分:1)
基本逻辑是找到块。例如,如果你有:
for(int i = 0; i < 10; i++){
print i
for(int j = 0; j < 10; j++){
print j
}
}
通过看{,你会发现一个块将开始。您可以使用堆栈来跟踪块。例如,如果你看到{,将它推入堆栈。堆栈中元素的数量表示缩进的大小,因为如果将3推入堆栈,则表示您位于第三个嵌套块中,因此必须使用3个制表符进行缩进。现在,如果你看到任何},只需弹出最后一个{来自堆栈。这意味着您的块已完成。
这适用于使用{和}的块。您也可以将相同的想法用于其他情况。例如,如果您找到for语法并且没有{跟随它,则意味着它是循环的单行。
答案 2 :(得分:0)
您是指在选择代码块时按“TAB”触发的“增加缩进”功能吗?
这可以使用简单的字符串选项构建:在换行符字符处拆分代码(例如,在C#中使用Envirnoment.NewLine),然后遍历这些行并在它们前面添加一些制表符或空格。