Базовый шаблон для создания редактора, с поддержкой вкладок
Модератор: Модераторы
Надо было docmanager обозвать... Это типа менеджер работы с документами... Ну... я видал и dokumentprovodnik название...
А монолит... Там практически все связан, toolbar только отдельно, но по ходу для 1300 строк кода это не критично?
А монолит... Там практически все связан, toolbar только отдельно, но по ходу для 1300 строк кода это не критично?
>>Это типа менеджер работы с документами...
понял
>>но по ходу для 1300 строк кода это не критично?
Не думаю что это зависит от колва строк. Если это "базовый шаблон" - должно предпологаться легкое расширение функционала без правки кода "базы"
Допустим возьму я ваш код, но мне нужен поиск по шаблону и замена... переформошлепывать?
понял
>>но по ходу для 1300 строк кода это не критично?
Не думаю что это зависит от колва строк. Если это "базовый шаблон" - должно предпологаться легкое расширение функционала без правки кода "базы"
Допустим возьму я ваш код, но мне нужен поиск по шаблону и замена... переформошлепывать?
Так это не "базовый шаблон" - это "до кучи"...
То есть взяли "базовый шаблон" и воткнули туда из "до кучи", благо что посмотреть можно не напрягаясь в 20000 строк...
Например сохранение, открытие и закрытие файлов...
Добавлено спустя 16 минут 53 секунды:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
К стати для шаблонных решений нужен архитектор кода. Иначе получим попку с ручками закостылинную под определённое решение. Ну... вроде SynEdit-а.
С неимоверно раздутым кодом который можно было впихнуть строчек в 3000-5000!
То есть взяли "базовый шаблон" и воткнули туда из "до кучи", благо что посмотреть можно не напрягаясь в 20000 строк...
Например сохранение, открытие и закрытие файлов...
Добавлено спустя 16 минут 53 секунды:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
К стати для шаблонных решений нужен архитектор кода. Иначе получим попку с ручками закостылинную под определённое решение. Ну... вроде SynEdit-а.
С неимоверно раздутым кодом который можно было впихнуть строчек в 3000-5000!
Где он этот архитектор... ато куда не глянь везде жопа с ручкой((
sa_t_an писал(а):для шаблонных решений нужен архитектор кода
Простите мое незнание... О чем идет речь?
Wiki
Добавлено спустя 15 минут 23 секунды:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
Это да... Поэтому лучше стараться писать минимум кода с максимумом отдачи.
Если бы в своё время Mike Lischke оттолкнулся от того, что редактор - это представление дерева, то всё было бы в порядке с архитектурой! И фолдинг и строки.
А уж если бы он в своё время высчитывал пиксели отталкиваясь от величины глифа... Оооо...
Шрифт Arial в SynEdit-е был бы похож на шрифт Arial!!! 
Добавлено спустя 15 минут 23 секунды:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
zub писал(а):Где он этот архитектор... ато куда не глянь везде жопа с ручкой((
Это да... Поэтому лучше стараться писать минимум кода с максимумом отдачи.
Если бы в своё время Mike Lischke оттолкнулся от того, что редактор - это представление дерева, то всё было бы в порядке с архитектурой! И фолдинг и строки.
А уж если бы он в своё время высчитывал пиксели отталкиваясь от величины глифа... Оооо...
sa_t_an писал(а):Wiki
Это понятно и самому найти не сложно )
Можно посмотреть пример толковой реализации для простого шаблона? Если-вдруг есть у кого...
ато куда не глянь везде жопа с ручкой((
Добавлено спустя 5 минут 16 секунд:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
выбор структурных элементов и их интерфейсов, с помощью которых составлена система, а также их поведения в рамках сотрудничества структурных элементов;
соединение выбранных элементов структуры и поведения во всё более крупные системы;
архитектурный стиль, который направляет всю организацию — все элементы, их интерфейсы, их сотрудничество и их соединение
Например это, которое из вики... Утверждать, доподлинно, я не в праве, но мне кажется, что нечто подобное есть в одной майкросовфте с их подходами к созданию Осей... Ну может в яблоках тоже... Но в никсах ни разу не видел... Любопытствует конкретный простенький пример ))) Который выходит за рамки "ШАЯ" (если о нем кто помнит)...
Добавлено спустя 3 минуты 54 секунды:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
sa_t_an писал(а):Иначе получим попку с ручками закостылинную под определённое решение.
99% современного софта написаны именно так... я ошибаюсь?
Deimos писал(а):одной майкросовфте с их подходами к созданию Осей
Не... это поделка...
Пример архитектурного проектирования операционных систем - эээ... Ну это Николай Вольдемарович во всей красе тут Оберон
В нативном Обероне множество подобных шаблонов расширяемых систем!
Добавлено спустя 1 минуту 10 секунд:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
sa_t_an писал(а):99% современного софта написаны именно так... я ошибаюсь?
Ага, ошибочка, не 99% а 99.999%
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
sa_t_an, боюсь, это тоже ошибка. Идеально правильных расширяемых систем единицы. И, к сожалению, кроссплатформенность только увеличивает хаос.
Так я ж сейчас не про идеал... А про грамотное проектирование систем. Например Native Oberon. Если посмотреть исходный код, то в принципе понимаешь, что и как там грамотно всё спроектировано. С учётом на будущее. При этом, учитывая, что он писался 20 лет назад. При этом, тогда и понятия никто не имел про FAT32-NTFS и т.д. а вкрутить можно очень запросто. Да и вообще, если изучать как работают операционные системы, то проще, легче и приятнее на Оберонах, чем на Никсах...
Добавлено спустя 10 минут 29 секунд:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
Ну вот например, про Lazarus и SynEdit... Ну почему не сделать изначально как то так...
Вот уже тебе и фолдинг в будущем, и бегай по строчкам туда-сюда. И код в 2000 строк. Понять можно за два часа как что работает.
При изменении шрифта - for i:=0 to 255 do charwidth[i]:=Canvas.TextWidth(char(i));
вот и прорисовка любого шрифта в любой системе.
И это учитывая, что я не архитектор и не планировщик, а просто логически продумал что надо от текстового отображения!
Добавлено спустя 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));
вот и прорисовка любого шрифта в любой системе.
И это учитывая, что я не архитектор и не планировщик, а просто логически продумал что надо от текстового отображения!
>>Ну почему не сделать изначально как то так...
Я не понял про что это но почему у вас всего 256 букв? их чуток побольше))
Я не понял про что это но почему у вас всего 256 букв? их чуток побольше))
Ну... я ж про изначально... Utf8 и т.д. только грузят систему...
Вы любите читать комментарии на китайском?
А если учитывать и Utf то символов отображения все равно 256... Так вот устроен контроллер клавиатуры...
Добавлено спустя 5 минут 48 секунд:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
Но строку charwidth: array [0..255] of integer; заменить в одном месте на charwidth: array [0..255,0..codebase] of integer проще намного
Добавлено спустя 2 минуты 8 секунд:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
Я вообще не могу до конца понять прелестей utf? Мож кто разъяснит поподробнее...?
Вы любите читать комментарии на китайском?
А если учитывать и Utf то символов отображения все равно 256... Так вот устроен контроллер клавиатуры...
Добавлено спустя 5 минут 48 секунд:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
Но строку charwidth: array [0..255] of integer; заменить в одном месте на charwidth: array [0..255,0..codebase] of integer проще намного
Добавлено спустя 2 минуты 8 секунд:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
Я вообще не могу до конца понять прелестей utf? Мож кто разъяснит поподробнее...?
>>Вы любите читать комментарии на китайском?
А вы писать на русском?
>>А если учитывать и Utf то символов отображения все равно 256... Так вот устроен контроллер клавиатуры...
Вы изобрели машину времени и пишете из девяностых? при чем тут клавиатура?
>>Но строку charwidth: array [0..255] of integer; заменить в одном месте на charwidth: array [0..255,0..codebase] of integer проще намного
проще не использовать массив для этого. экономней. и о "все равно 256" можно будет забыть
>>Ну почему не сделать изначально как то так...
а как там сделано изначально?
А вы писать на русском?
>>А если учитывать и Utf то символов отображения все равно 256... Так вот устроен контроллер клавиатуры...
Вы изобрели машину времени и пишете из девяностых? при чем тут клавиатура?
>>Но строку charwidth: array [0..255] of integer; заменить в одном месте на charwidth: array [0..255,0..codebase] of integer проще намного
проще не использовать массив для этого. экономней. и о "все равно 256" можно будет забыть
>>Ну почему не сделать изначально как то так...
а как там сделано изначально?
zub писал(а):при чем тут клавиатура?
Потому, что средством отображения информации является терминал (как бы он не выглядел, в этом случае SynEdit) а устройством ввода (как бы оно не выглядело) является клавиатура.
zub писал(а):проще не использовать массив для этого. экономней.
Так проще или экономней? И что использовать для экономии? Проще массива только одиночная переменная?
И чем отличается программирование 90-х и 16-х? Алгоритмы всегда одинаковы.
К стати Брезенхейм от времени не стареет почему-то!
sa_t_an писал(а):Потому, что средством отображения информации является терминал (как бы он не выглядел, в этом случае SynEdit) а устройством ввода (как бы оно не выглядело) является клавиатура.
Не уловил, ну да ладно
sa_t_an писал(а):Так проще или экономней? И что использовать для экономии? Проще массива только одиночная переменная?
И чем отличается программирование 90-х и 16-х? Алгоритмы всегда одинаковы.
Отличается размерами - pаньше 640кб хватало всем. 255 байтов хватало на описание ширин всех знаков.
Сейчас и проще и экономнее использовать чтонибудь вроде TMap для этого
sa_t_an писал(а):К стати Брезенхейм от времени не стареет почему-то!
Нифига, сейчас всем с алиасингом подавай. И вытянулся он конкретно - осваивал я его га экране 256×192 сейчас не использую на 2560x1440))
