1. 程式人生 > >紅孩兒編輯器的模組設計6

紅孩兒編輯器的模組設計6

紅孩兒編輯器的模組設計6

編輯器的主顯示區域的檔案顯示的整體邏輯

配置資訊中的是否顯示行號,是否自動換行,對檔案在編輯器上的顯示有直接的影響。
所以分成了如下的四種情況進行描述:

1  顯示行號,自動換行
    每行顯示的字元總數n=編輯器的寬度/字元的寬度-行號佔用的字元數
    檔案中的一行在螢幕上佔用的行數=檔案中的一行字元數/每行顯示的字元的總數
   顯示時按照螢幕上的一行行進行,例如檔案中的第一行佔三行,則第一行顯示第一到第n個字元。
  第二行顯示第n+1到第2n個字元,第三行顯示剩餘的字元。
   如果在第一行的某個位置添加了一個字元,則從這個字元之後的其它字元向後挪動一個位置。這時
如果第三行是滿的,也就是最後一個字元到了右邊界了,會有一個字元擠到了下一行。
  這會造成,下面的所有的行都向下移動一行。

2  顯示行號,不自動換行
     每行顯示的字元總數n=編輯器的寬度/字元的寬度-行號佔用的字元數
    檔案中的一行在螢幕上佔用的行數=1

    如果在第一行的某個位置添加了一個字元,則從這個字元之後的其它字元向後挪動一個位置。
    如果這一行是滿的,會有一個字元被擠到了右邊界之外,而不再顯示。

3  不顯示行號,自動換行
     每行顯示的字元總數n=編輯器的寬度/字元的寬度
     檔案中的一行在螢幕上佔用的行數=檔案中的一行字元數/每行顯示的字元的總數
    
     如果在第一行的某個位置刪除了一個字元,後面的字元向前挪動一個位置,如果檔案
    的這一行佔用的最後一行只有一個字元,就意味著,最後一行取消了。
    下面的各行向上挪動一行的位置。

4  不顯示行號,不自動換行
    每行顯示的字元總數n=編輯器的寬度/字元的寬度
    檔案中的一行在螢幕上佔用的行數=1
    如果在第一行的某個位置刪除了一個字元,之後的每個字元向前挪動一個位置,如果右邊界外
   有被擠出去的字元,移最前面的一個字元,顯示在右邊界的內部。