缩进代码算法

时间:2011-02-11 13:21:08

标签: indentation

我需要编写一个程序来缩小代码块,就像visual studio一样。 我需要这背后的逻辑。 感谢

我不需要程序..我需要逻辑

3 个答案:

答案 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),然后遍历这些行并在它们前面添加一些制表符或空格。