Как реализовать подсветку синтаксиса и свертку
Модератор: Модераторы
Как реализовать подсветку синтаксиса и свертку
Необходимо написать компонент-текстовый редактор кода, с поддержкой подсветки синтаксиса и свертки блоков кода.
Очень желательно наличие возможности отрисовывать графику поверх текста, подсветку строк, которые бы синхронизировались с текстом при скролировании и вводе.
Есть ли подобные примеры с открытым кодом? На Lasarus или Delphi?
Очень желательно наличие возможности отрисовывать графику поверх текста, подсветку строк, которые бы синхронизировались с текстом при скролировании и вводе.
Есть ли подобные примеры с открытым кодом? На Lasarus или Delphi?
Mr.Smart писал(а):synedit
Там только текст подсвечивается, это можно и в memo сделать, а мне нужна свертка.
Но, спасибо
В самой IDE данный компонент доработан и в нём реализована свёртка.
Все равно не совсем то, что хотелось бы посмотреть. Нужна отрисовка графики поверх текста с синхронизацией перемещения, событие onEnter и т.п.
Я многого хочу?
Я многого хочу?
-
Tsukasa-mixer
- новенький
- Сообщения: 12
- Зарегистрирован: 06.04.2010 01:27:37
- Откуда: г.Киров
Timid писал(а):Я многого хочу?
Ну не мало
Мда, все плохо.
Будем искать сами.
Будем искать сами.
Timid писал(а):Все равно не совсем то, что хотелось бы посмотреть. Нужна отрисовка графики поверх текста с синхронизацией перемещения, событие onEnter и т.п.
Я многого хочу?
а ещё можно написать свой-готовый компонент
правка текста не такая уж и хитрая штука...
пока дело не доходит до шрифтов с проивзольной шириной символов, различными лигатурами, и разнонаправленным текстом
имхо, проще с SynEdit-ом разобраться. В котором есть OnPaint и в этом onPaint рисовать нужно графику "поверх текста"
скалогрыз писал(а):имхо, проще с SynEdit-ом разобраться.
есть где нибудь наглядный пример использования компонента, мне нужно подсветить свои определенные ключевые слова, как это сделать?
такой покатит или нужно что-нить покруче?!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось скалогрыз 12.04.2010 11:51:02, всего редактировалось 1 раз.
скалогрыз писал(а):такой покатит или нужно что-нить покруче?!
это то что надо, СПАСИБО.
эм... только скрин не соответствует вложенному примеру в архиве...
alaken писал(а):эм... только скрин не соответствует вложенному примеру в архиве...
действительно.
вот правильный проект.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
думаю мне нужно что-то по круче =)
мне нужно чтобы подсвечивались ключи вида "[data]" или "$data"
научным методом тыка пока ничего не получается...
мне нужно чтобы подсвечивались ключи вида "[data]" или "$data"
научным методом тыка пока ничего не получается...
alaken писал(а):думаю мне нужно что-то по круче =)
мне нужно чтобы подсвечивались ключи вида "[data]" или "$data"
научным методом тыка пока ничего не получается...
SQL парсер?!
можно ли в примерах?!
нет не SQL парсер, это будет софтина оповещающая о состоянии хостов, а в SynEdit будет шаблон отчета посылаемого по почте
не охота делать длинные ключевые слова типа CurrentDate, CurrentTime, MonitoringHostName и прочее...
думаю с квадратными скобками оптимальный вариант.
Добавлено спустя 1 час 10 минут 44 секунды:
параметр
со скобками пока ничего не получается...
и еще как убрать поле с номерами строк в TSynEdit?
Добавлено спустя 1 час 35 минут 15 секунд:
убрать поле с нумерацией строк удалось...
параметр
уточняю Lazarusу меня пересобран с ключем
у компонента TSynEdit есть возможность включить WordWrap?
и не работает TSynAutoComplete, TSynAutoComplete.Editor присвоил компонент TSynEdit и заполнил TSynAutoComplete.AutoCompleteList
но в TSynEdit ничего не завершается при нажатии комбинации выбранной в TSynAutoComplete.ShortCut
[hostname] ([host]) status was changed on [status] in [date] [time]
не охота делать длинные ключевые слова типа CurrentDate, CurrentTime, MonitoringHostName и прочее...
думаю с квадратными скобками оптимальный вариант.
Добавлено спустя 1 час 10 минут 44 секунды:
параметр
позволяет подсвечивать переменные со знаком "$" в начале имени переменной ($Date)TSynAnySyn.DollarVariables := True
со скобками пока ничего не получается...
и еще как убрать поле с номерами строк в TSynEdit?
Добавлено спустя 1 час 35 минут 15 секунд:
убрать поле с нумерацией строк удалось...
параметр
сработал не сразу, после нескольких компиляций случайно изменил параметрTSynEdit.Gutter.Visible := True
и нумерация строк исчезла...TSynEdit.Gutter.Autosize := False
уточняю Lazarusу меня пересобран с ключем
-dOldAutoSize
у компонента TSynEdit есть возможность включить WordWrap?
и не работает TSynAutoComplete, TSynAutoComplete.Editor присвоил компонент TSynEdit и заполнил TSynAutoComplete.AutoCompleteList
но в TSynEdit ничего не завершается при нажатии комбинации выбранной в TSynAutoComplete.ShortCut
