Re: Реализация редактора
От: eaglus Россия  
Дата: 20.09.06 13:09
Оценка:
Здравствуйте, Praetor, Вы писали:

P>Необходимо сделать редактор кода скриптового языка. Используемая библиотека — wxWidgets. Будет подстветка, автокомплишн и т п. Вопрос — как лучше реализовать окно редактора? Реализовывать все с нуля (выводить текст с помощью API-функций Windows) или есть какоая-нибудь библиотечка, где реализована редактирование текстовых файлов?


Очень качественный и понятный код для хранилища текста, отмен, меток, для всего документа, и подсветки — это в Jedit-е.
Я по нему свой редактор пишу.

Правда, визуальная часть запутанная порядком.
Зато он на Яве написан — загрузишь проект в Эклипс — красота!
Понимается легко.
Вот Сцинтилла сложнее, она на сях...
Re: Древняя реализация курсора
От: Erop Россия  
Дата: 20.09.06 19:21
Оценка:
Есть такая вот мулька.

Если хочется хранить текст в одном буыере, то надо аллокировать буфер с запасом, и при этот хранить тот тексст что до курсора в начале буыера, а тот, что после -- в конце.

А курсор -- это будет такое место в середине буфера, куда можно добавлять новые данные.

Правда на совсременных компах это уже наверное не к чему, но когда-то во времена ТОРа и MSX-2 это было очень даже в тему
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Реализация редактора
От: Praetor  
Дата: 26.09.06 16:06
Оценка:
P>Почему же, если использовать не вектор строк, а вектор указателей на строки, то таких переалллокаций быть не должно, точнее, переаллокации конечно будут, ведь это вектор, но там будут колбасится уже указатели на строки, а не сами строки. Современные процы перемолотят это дело с такой скоростью что не заметишь. С точки зрения уменьшения таких переаллокаций подойдет любой список указателей, не обязательно даже хешированный, просто мапы, как ты говоришь, удобно использовать для создания меток и пр. идентификации строк.


Ну что ж, анонимы, любящие похихикать втихомолку, может, скажете, где тут смеяться? Если хранить в векторе объекты string, они будут идти в памяти последовательно и при удалении любой строки вектор сместит строки, идущие за удаленной строкой, т е будут потери при копировании. Если же хранить указатели на строки, то при удалении строки просто выкидывается указатель на char*, а память, выделенную под строку, уничтожаем. По-моему, все очевидно. ЕСли я в чем-то ошибаюсь, так поправьте по-человечески, вместо того, чтобы ставить идиотские улыбочки.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.