紅孩兒編輯器的模組設計6
紅孩兒編輯器的模組設計6
編輯器的主顯示區域的檔案顯示的整體邏輯
配置資訊中的是否顯示行號,是否自動換行,對檔案在編輯器上的顯示有直接的影響。
所以分成了如下的四種情況進行描述:
1 顯示行號,自動換行
每行顯示的字元總數n=編輯器的寬度/字元的寬度-行號佔用的字元數
檔案中的一行在螢幕上佔用的行數=檔案中的一行字元數/每行顯示的字元的總數
顯示時按照螢幕上的一行行進行,例如檔案中的第一行佔三行,則第一行顯示第一到第n個字元。
第二行顯示第n+1到第2n個字元,第三行顯示剩餘的字元。
如果在第一行的某個位置添加了一個字元,則從這個字元之後的其它字元向後挪動一個位置。這時
如果第三行是滿的,也就是最後一個字元到了右邊界了,會有一個字元擠到了下一行。
這會造成,下面的所有的行都向下移動一行。
2 顯示行號,不自動換行
每行顯示的字元總數n=編輯器的寬度/字元的寬度-行號佔用的字元數
檔案中的一行在螢幕上佔用的行數=1
如果在第一行的某個位置添加了一個字元,則從這個字元之後的其它字元向後挪動一個位置。
如果這一行是滿的,會有一個字元被擠到了右邊界之外,而不再顯示。
3 不顯示行號,自動換行
每行顯示的字元總數n=編輯器的寬度/字元的寬度
檔案中的一行在螢幕上佔用的行數=檔案中的一行字元數/每行顯示的字元的總數
如果在第一行的某個位置刪除了一個字元,後面的字元向前挪動一個位置,如果檔案
的這一行佔用的最後一行只有一個字元,就意味著,最後一行取消了。
下面的各行向上挪動一行的位置。
4 不顯示行號,不自動換行
每行顯示的字元總數n=編輯器的寬度/字元的寬度
檔案中的一行在螢幕上佔用的行數=1
如果在第一行的某個位置刪除了一個字元,之後的每個字元向前挪動一個位置,如果右邊界外
有被擠出去的字元,移最前面的一個字元,顯示在右邊界的內部。