Так я ж сейчас не про идеал... А про грамотное проектирование систем. Например Native Oberon. Если посмотреть исходный код, то в принципе понимаешь, что и как там грамотно всё спроектировано. С учётом на будущее. При этом, учитывая, что он писался 20 лет назад. При этом, тогда и понятия никто не имел про FAT32-NTFS и т.д. а вкрутить можно очень запросто. Да и вообще, если изучать как работают операционные системы, то проще, легче и приятнее на Оберонах, чем на Никсах...
Добавлено спустя 10 минут 29 секунд:Re: Базовый шаблон для создания редактора, с поддержкой вкладокНу вот например, про Lazarus и SynEdit... Ну почему не сделать изначально как то так...
- Код: Выделить всё
TSynItem = class
srt: string;
left,right,prev: TSynItem;
expanded: boolean;
charwidth: array [0..255] of integer;
.......
end;
Вот уже тебе и фолдинг в будущем, и бегай по строчкам туда-сюда. И код в 2000 строк. Понять можно за два часа как что работает.
При изменении шрифта -
for i:=0 to 255 do charwidth[i]:=Canvas.TextWidth(char(i));вот и прорисовка любого шрифта в любой системе.
И это учитывая, что я не архитектор и не планировщик, а просто логически продумал что надо от текстового отображения!