2011-02-11 88 views
-3

我需要編寫一個像visual studio一樣縮進代碼塊的程序。 我需要這背後的邏輯。 感謝縮進代碼算法

我不需要的程序..我所需要的邏輯

+0

縮進取決於編程語言和任何編碼風格指南。 – 2011-02-11 13:25:01

+0

就像我說的...我需要的邏輯...我的意思是怎麼做的嗎? – abbas 2011-02-11 13:25:02

回答

1

scintilla到你的程序,你就大功告成了。

0

您的意思是選擇代碼塊時按「TAB」觸發的「增加縮進」功能嗎?

這可以使用簡單的字符串選項來構建:將代碼拆分爲換行符char(例如,C#中的Envirnoment.NewLine),然後遍歷行並在它們前面添加一些製表符或空格。

1

基本邏輯是找到塊。例如,如果你有:

for(int i = 0; i < 10; i++){ 
    print i 
    for(int j = 0; j < 10; j++){ 
     print j 
    } 
} 

通過看{,你會發現一個塊將開始。您可以使用堆棧來跟蹤塊。例如,如果你看到{,推它到堆棧。堆棧中元素的數量表示縮進的大小,因爲如果將3 {插入到堆棧中,這意味着您處於第三個嵌套塊中,因此您必須使用3個製表符來縮進。現在,如果你看到任何},只需彈出最後{從堆棧中。這意味着你的塊完成了。

這將適用於使用{和}的塊。您也可以對其他情況使用相同的想法。例如,如果您找到for語法,並且沒有{遵循它,這意味着它是循環的單行。