Начал писать месяц назад компонент для Lazarus, который бы мог заменить обычный SynEdit (это единственный серьезный компонент редактирования для Лазарус). Для своих целей. Мне бы хотелось написать «что-то типа Sublime Text». Но не совсем клон. Точнее, совсем не такой же редактор. Я бы хотел перенять многое из ST3, но на SynEdit это сделать вообще нельзя. Там нет переноса слов. Что уж говорить про все остальное.
Код пишется, называется ATSynEdit и он на гитхабе.
Уже есть версия 0.2, которая может довольно много но без подсветок — базовый код, который может редактировать, выделять, копировать в буфер, делать авто-отступы, скроллить и т.п.
Подсветки будут сильно позже. Хочется взять подсветки от SynWrite (их уже что-то типа 60-90 штук). Может кто и захочет написать адаптер для подсветок ST3, можно будет. Может кто и напишет адаптер для лексеров SynEdit. Все будет можно.
Контрол много-кареточный от рождения. Можно выставлять мультикаретки, делать штуки из рекламных картинок ST3. Все как у людей. Многие визуальные фичи — wrapped indent, показ пробелов и концов строк и т.п., можете собрать демо и запустить — там диалог Опции — все опции видны. Все колонки gutter настраиваются. И это версия 0.2.
Все это уже сейчас под Win, Linux, MacOS. Принимаются репорты.
Код пишется, называется ATSynEdit и он на гитхабе.
Уже есть версия 0.2, которая может довольно много но без подсветок — базовый код, который может редактировать, выделять, копировать в буфер, делать авто-отступы, скроллить и т.п.
Подсветки будут сильно позже. Хочется взять подсветки от SynWrite (их уже что-то типа 60-90 штук). Может кто и захочет написать адаптер для подсветок ST3, можно будет. Может кто и напишет адаптер для лексеров SynEdit. Все будет можно.
Контрол много-кареточный от рождения. Можно выставлять мультикаретки, делать штуки из рекламных картинок ST3. Все как у людей. Многие визуальные фичи — wrapped indent, показ пробелов и концов строк и т.п., можете собрать демо и запустить — там диалог Опции — все опции видны. Все колонки gutter настраиваются. И это версия 0.2.
Все это уже сейчас под Win, Linux, MacOS. Принимаются репорты.
Magister7
А не проще было бы SynEdit доработать? Патчи там вполне принимают.
Alex222 Автор
Конечно я смотрел Synedit, там как бы сказать, все очень кисло.
Я сделал там 2 патча,
— один показывает непечатаемые концы строк,
— другой добавляет новые формы каретки,
оба раза все было медленно и делать, и ждать когда же автор (Мартин Ф.) найдет время…
Там очень запутанный код (для меня)…
Надеюсь, кому-то тут мой synedit пригодится
Magister7
Ну так одна из задач — этот код распутать, сделать компонент более модульным. Только у Мартина нет на это времени, как всегда :)
Но всё равно не уверен, что сделать редактор «с нуля» быстрее, чем доработать существующий (и довольно неплохой).
Впрочем, вам виднее.
Alex222 Автор
Вы как бы правы, есть отличный компонент, лучше доработать,… а практически… я пытался понять, что там делают 4 или 6 markup классов, что там поправить чтобы вывести значок на месте конца строки.
Именно проще делать свое — сразу с word wrap
Magister7
Ну я вообще-то знакомился немного с внутренностями, т.к. писал свой Highlighter с поддержкой сворачивания + минимальный автоформаттер (автоотступ, ещё вроде что-то такое). Там есть ещё некоторое количество багов при работе с чем-то отличным от латиницы, есть жестко заданные символы разделителя слов, но общее моё впечатление — разобраться и пофиксить можно.
Кстати, как по мне — необходимость word wrap в редакторе кода (а именно так и позиционируется SynEdit) очень сомнительна. Никогда не возникало желания включить.
augur
По-видимому у SynEdit есть фатальный недостаток (sic!).
Magister7
Ну, как минимум один недостаток есть — он by design не умеет работать с текстом, где разные строки имеют разный тип окончания строки (часть CR/LF, часть просто LF). Такие тексты преобразуются в какой-то один формат.
Правда насколько это нужная возможность не скажу :)