Добавил подсветку парных фигурных скобок, несогласованных фигурных скобок.
scintilla_mav_2.zip
Пытался оживить onChange, но пока безуспешно. ScintillaEvents отлавливает сообщение SCN_MODIFIED, но как это дело связать с Control.OnChange .
зы; c API scintilla гораздо проще разобраться чем с кубикостроением .
Этот топик читают: Гость
Ответов: 1304
Рейтинг: 405
|
|||
карма: 3 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 10 раз(а), последний 2022-09-19 23:44:04 |
|||
карма: 0 |
|
Ответов: 5227
Рейтинг: 587
|
|||
MAV писал(а): Пытался оживить onChange, но пока безуспешно.MAV, мне кажется достаточно перенаправить сообщение в процедуре THIScintilla.ScintillaEvents через SendMessage(Control.Handle далее смотри win.pas что он ловит и меняем на эту мессагу . p.s Вроде сам так хотел делать но забыл уже |
|||
карма: 4 |
|
Ответов: 2059
Рейтинг: 132
|
|||
г. Ном писал(а): на предмет улучшения его поддержки в Forth системе Win32ForthДля общей картины, можно посмотреть примеры подключения Scintilla в SP-Forth. В каком-от из примеров есть автозавершение. [flood]Закончил строительные работы. [/flood] Хочу тоже приложить руку к Scintilla, но прежде, хотелось-бы оговорить коллеги, что и как делаем. 1. Делаем с dll, или без? 2. Какие свойства и точки выводим? 2.1 (свойство) цвет шрифта и цвет фона - (точки не выводим) 2.2 (свойство) цвет нумирации строк и цвет фона + (точка включения\отключения режима) 2.3 (свойство) цвет выделения (шрифт и фон) - (точку не выводим) 2.4 (свойство) цвет текущей строки - (точку не выводим) 2.5 (точка и свойство) перенос по словам. (или только свойство?) 2.6 (точка) автозавершение вкл\откл 2.7 (точка) поиск + (точка вкл\откл регистр?) 2.8 (точка) поиск-замена По ходу пьесы, чего-то обязательно будет всплывать... Если будем пользоваться одной болванкой, то можно будет без труда всё свести в одну кучу. andrestudio подрихтует (но надо постараться нам, чтобы из телодвижений было только - одобрямс) и получится - конфетка. |
|||
карма: 6 |
|
Ответов: 5227
Рейтинг: 587
|
|||
flint2, привет
flint2 писал(а): andrestudio подрихтуетНе ребята я пас Я В ОТПУСКЕ!!! MAV, я тут тоже попытался оживить (хотя сам чуть живой ) Но в документацию не лез хотя пологаю что SCN_MODIFIED соответствует действительности но не как onChange hiscintilla.zip Дальше можно по аналогии |
|||
карма: 4 |
| ||
файлы: 1 | hiscintilla.zip [5.8KB] [555] | ||
Голосовали: | MAV |
Ответов: 2059
Рейтинг: 132
|
|||
andrestudio, привет andrestudio писал(а): тут начальство хоТит меня отпуска лишить и я очень злой, пока отПисками занимаюсьЗлые и не благодарные люди! [flood]С кем вообще затеяли отПисками меряться?![/flood] andrestudio писал(а): а отпуск только в конце июняandrestudio писал(а): Не ребята я пас Я В ОТПУСКЕ!!!Мужик сказал, мужик сделал! Приятного отпуска!!! [flood]В отпуске - не бери тяжелей стакана в руки, а дурного в голову! Но после отпуска...[/flood] MAV писал(а): c API scintilla гораздо проще разобраться чем с кубикостроением Согласен, куда гораздей просто писать - и руки развязаны, и компактней, и много чего... Excusez-moi! Мы должны приносить людям пользу! (...из кинофильма Его звали Роберт) ------------ Дoбавленo в 19.32: Поскольку на все случаи жизни соломку не подстелить (по причине - глупо выводить точки на каждый чих), то предлагаю убрать множество (все не получится) точек. Начальные установки - несколько свойств, всё-таки нужны. (не точки) Поставить одну большую, жирную точку, которая парсит входной поток и либо пересылает команду Лексеру, либо чего-то сама копошится и оказывая знаки внимания Лексеру выводит их продукт любви в правую часть. Подобно чтению списка стиля редактора и подсветки синтаксиса, только по одной команде или скрипту из потока. Все команды состоящие на службе Лексера - писать без изменения(для прозрачности), а новые, где присутствует алгоритм, или задействовано несколько команд Лексера, - где-то надо описывать по мере их появления. Имеется ввиду комментировать. case ...; и постепенно пишем, кто во что гаразд; ...; Только добавляя в ini выходные точки, при необходимости. |
|||
карма: 6 |
|
Ответов: 1304
Рейтинг: 405
|
|||
andrestudio, спасибо за помощь.
andrestudio писал(а): SCN_MODIFIED соответствует действительности но не как onChangeflint2, из означенных организационных вопросов, я бы оставил dll, тем более её можно использовать в комерческих проектах. Почему именно dll, потому что библиотека обновляется и есть возможность задействовать новые функции + устраняются баги, а так придётся постоянно пересобирать дополнительный модуль. Насчёт излишества точек, вопрос спорный - сможет ли рядовой пользователь разобраться в куче параметров которые надо передать в потоке. Минимальный набор думаю нужен. Да и пока функционала у нас маловато что бы думать об избытке точек . Кстати с фолдингом пока ни как одни рунтаймы. |
|||
карма: 3 |
|
Ответов: 2059
Рейтинг: 132
|
|||
MAV, спасибо, всё понял.
|
|||
карма: 6 |
|
Ответов: 1304
Рейтинг: 405
|
|||
MAV писал(а): из означенных организационных вопросов, я бы оставил dll, тем более её можно использовать в комерческих проектах. Почему именно dll, потому что библиотека обновляется и есть возможность задействовать новые функции + устраняются баги, а так придётся постоянно пересобирать дополнительный модульЭто с одной стороны, а с другой очередной баян, "у мяня пышет нет dll". flint2 писал(а): Поставить одну большую, жирную точку, которая парсит входной поток и либо пересылает команду Лексеру, либо чего-то сама копошится и оказывая знаки внимания Лексеру выводит их продукт любви в правую часть.Подобно чтению списка стиля редактора и подсветки синтаксиса, только по одной команде или скрипту из потока.Можно кстати расширить уже существующий парсер и загнать туда все цветовые параметры и настройки. После помощи andrestudio активировал onChange, и ещё ряд незначительных правок и изменений, убрал точку метода doBraceLight за ненадобностью. далее посмотреть в архиве. scintilla_mav_3.zip |
|||
карма: 3 |
|
Ответов: 2059
Рейтинг: 132
|
|||
MAV писал(а): Можно кстати расширить уже существующий парсер и загнать туда все цветовые параметры и настройки.Я почти так и хотел потом сделать, но пока не дошел до этого. Пока пробую разные варианты - как удобней. Вообще мысль такая была - сделать такую точку параллельно остальным точкам, чтобы была возможность сделать какие-то настройки, которые не реализованы в компоненте. далее посмотреть в архиве. Хорошо. Возьму за основу.scintilla_mav_3.zip MAV писал(а): "у мяня пышет нет dll"В каком смысле? Вроде всё нормально в твоих всех вариантах. Может чехарда с директориями? [flood]Совершенно невозможно ничего делать! 33 градуса в тени! Хоть-бы дождик прошел. [/flood] |
|||
карма: 6 |
|
Ответов: 1304
Рейтинг: 405
|
|||
flint2 писал(а): MAV писал(а) "у мяня пышет нет dll"В каком смысле?Вроде всё нормально в твоих всех вариантах.Может чехарда с директориями?это я представил по аналогии с bass.dll, каждый второй плеерописатель спрашивает почему у меня не работает плеер . В параметрах элемента как то всё в кучу свалено, надо бы будет вынести AddType, ScrollBars, ReadOnly, UserPoupMenu к основным параметрам а Options разделить на параметры стиля(подсветки), параметры автозавершения, и тд. [flood]да жарковато у вас, у нас в тени +32 , только зашёл с улицы, чуть фолдинг мозга не наступил от жары[/flood] |
|||
карма: 3 |
|
Ответов: 2059
Рейтинг: 132
|
|||
MAV писал(а): каждый второй плеерописатель спрашивает почему у меня не работает плеерПонял MAV писал(а): В параметрах элемента как то всё в кучу свалено, надо бы будет вынести...Этим и занимаюсь. [flood] да жарковато у вас, у нас в тени +32 , только зашёл с улицы, чуть фолдинг мозга не наступил от жары Я вообще ничего не могу делать. Даже приготовить ничего не могу. Сижу на сигаретах и квасе из холодильника. Вечером займусь. Выложу только завтра наверное. [/flood] |
|||
карма: 6 |
|
Ответов: 1304
Рейтинг: 405
|
|||
flint2, во время борьбы с фолдингом нашёл полезную настройку, визуализацию отступов линией, можно думаю добавить.
setindent_.png Теперь о компиляторе D4, он меня просто вымораживает без этой строчки фолдинга не будет .
строчку вставляем в Init с вот таким прицепом,чтобы что то увидеть активируем нужные поля
Скомпилировать удалось на пакете FPC2(компилятор 2.6.4), без всяких проблем. [flood]Эх, так и хочется соскочить на FPC тем более что системные библиотеки там подключены. Ладно не буду злобно и воинственно проповедовать антинаучный образ мыслей посмотрю лучше кино для успокоения нервов.[/flood] |
|||
карма: 3 |
| ||
файлы: 1 | setindent_.png [27.3KB] [886] |
Ответов: 2059
Рейтинг: 132
|
|||
MAV, я тоже замучился.
Ну что ещё не так? Завтра посмотрю на свежую голову. Сегодня выдохся. Сегодня с ini боролся. Чтобы красиво всё было, пришлось совсем чуть-чуть WinControl.ini переделать - назвал WinControlS.ini MAV Подскажи пожалуйста, как установить цвет шрифта и задний фон шрифта? (SCI_STYLESETFORE и SCI_STYLESETBACK) Т.е. всего! сейчас у меня получается отдельно, либо буквы, либо знаки, либо цифры. Сегодня без особых усилий получилось, но затёр в ходе экспериментов. CP(SCI_STYLESETBACK, STYLE_DEFAULT,Integer( _prop_Color)); //глобальный задний фон CP(SCI_STYLESETBACK, 0,Integer( _prop_Color)); //знаки и пробелы CP(SCI_STYLESETBACK, 1,Integer( _prop_Color)); // буквы А цифры как? |
|||
карма: 6 |
|
Ответов: 1304
Рейтинг: 405
|
|||
flint2, вкратце моё понимание всей всей цветовой кухни Синтилии. Есть лексический анализатор с его помощью разбирается код на запчасти и определяет поведением подсветки, то-есть чтобы подсветить код на Паскале мы должны выбрать синтаксис с которым будем работать.
соответственно мы можем каждый параметр настроить конкретно под себя. Пример настройки для цифр
пример настроек лексера на пуребасике code_37417.txt |
|||
карма: 3 |
| ||
файлы: 1 | code_37417.txt [5.1KB] [822] |