Page 1 of 1

Quark - Simple text viewer

Posted: Mon May 11, 2020 9:46 pm
by Leency
27 апреля 2020 года JohnXenox выложил первую версию своего текстового редактора NEON и меня унесло ваще. Дизайн и возможности меня потрясли - это была заготовка хорошего качественного продукта, которую правда еще нужно было довести до ума. У нас уже есть пара хороших редакторов, но которые как раз немного не допилены, что мешает их практическому применению.

Через три дня после этого 1 мая 2020 года в дев-чате ВК мы обсуждали чего хотелось бы в Колибри. Кроме прочего безусловно важного прозвучали Clang, GCC, Python.
На что я заметил, что "порт любого компилятора бесполезен если нет нормального редактора, правильно?" и все согласились. Я сам очень хочу вести разработку из самой Колибри, поэтому чтобы помочь развитию NEON я написал JohnXenox с предложением помочь и получил вежливый отказ.

На тот момент не было понятно будет ли NEON открытым или нет, и будет ли он закончен вообще.

2.5 года назад я создал тему "Теория разработки текстового редактора с подсветкой синтаксиса" и похоже пришло время воспользоваться советами из нее. Спасибо akron1 и theonlymirage за наиболее развернутые ответы.

...Сказано - сделано.

Re: Quark - Code editor

Posted: Mon May 11, 2020 10:11 pm
by Leency
Название Quark новому редухтору дал rgimad, в переводе это кварк и ВНЕЗАПНО творог. Другим неплохим названием было Codepad--.
Разработка идет уже 10 дней. Конечно я отвлекался и на другие проекты, особенно на исправление багов.

День 1-2. Я взял TxtReader и перевел его на моноширные шрифты.
День 3-4. Переделал тулбар под системные иконки, добавил статус бар из WebView.
День 5-6. Перевод ядра с массива строк на массив указателей. Структура Dictionary от paulcodeman/pavel_yakov оказалась бажной, пришлось доработать свою collection_int.
День 7. Редактирование заменой (Insert mode on). Базовая система ивентов для кнопок и хоткеев.
День 8-9. Добавление курсора в программу, я думал будет сложно, но благо оказалось, что в моем элементе "список"(/cmm/lib/list_box.h) 90% кода уже было.
День 10-11. Разработка выделения - еще в процессе. Честно говоря - это хардкор тот еще, в основном, потому что я еще никогда такого не делал.

Сделать надо еще тонну всего: собственно редактирование, закончить выделение, переделать поиск, сделать замену, номера строк, табы, сборку, горизонтальный скролл, подсветку - самый минимум.
Дополнительно: поиск по исходникам, отображение содержимого открытой папки.

В общем, пожелайте мне успеха :)

Я же желаю успеха NEON'у - давайте иметь еще два отличных редактора в Колибри!

Re: Quark - Code editor

Posted: Tue May 12, 2020 1:43 pm
by Pathoswithin
Когда-то ныли, что в tinypad нет функций undo/redo, но там внутри такая архитектура, что добавить их пожалуй не реально. Не знаю, как ты делаешь редактирование, потому скажу что для реализации данных функций существующий текст лучше вообще не трогать, а отредактированные строки записывать на новом месте со сменой указателя на строку. А если вместо массива указателей использовать многосвязный список структур, то при добавлении новых строк с ним можно поступать так же. Для этого в структурах должны быть поля: указатель на строку, указатель на следующую структуру, указатель на предыдущую структуру, старый указатель следующей структуры, старый указатель предыдущей структуры. Порядком строк в тексте будет цепочка указателей, а порядком изменений будет физический порядок структур.

Re: Quark - Code editor

Posted: Tue May 12, 2020 2:30 pm
by AgentM
Удачи!)

Re: Quark - Code editor

Posted: Thu May 14, 2020 9:37 pm
by Leency
День 12-13. Осознание сколько всего нужно сделать. Отрицание, депрессия. Возможно еще и отходняк от бифрена.
День 14. Урезание функционала до уровня TextReader. Не хочется получить второй мертворожденный проект, как Aelia, потому пусть это пока будет просто TextReader с возможностью выделения текста.

Итого: сейчас багфистинг и релиз программы с функционалом: TxtRead с системным шрифтом и выделением.

Re: Quark - Code editor

Posted: Fri May 15, 2020 1:19 pm
by Pathoswithin
Типичный итог работы без предварительного планирования архитектуры. Лично я сначала планирую алгоритмы. И в итоге нихера не делаю... 8)

Re: Quark - Code editor

Posted: Sat May 16, 2020 1:03 am
by Leency
Я не был бы столь пессимистичным, все пока движется хорошо. Немного шишечек, но не более :)

День 15. Закончил выделение, добавил рекцию выделения на клавиши. Теперь буффер алокается не для всей страницы, а только для видимой области. Добавил открытие файлов DOCPACK в Quark.

Re: Quark - Code editor

Posted: Mon May 18, 2020 1:53 pm
by Leency
Quark теперь в IMG.
Из запланированного минимума осталось доделать поиск (он не работает).

Re: Quark - Code editor

Posted: Thu Oct 22, 2020 11:28 pm
by maxcodehack
Leency wrote: На тот момент не было понятно будет ли NEON открытым или нет.
JohnXenox wrote:Разработка пока что временно приостановлена.
Сейчас совсем нет времени заниматься Neon.
Продолжу, как только освобожусь.
Исходники выложу, как только буду уверен, что дальше разрабатывать Neon не буду.
Из ЛС

Re: Quark - Code editor

Posted: Mon Jan 11, 2021 12:02 pm
by maxcodehack
Создал в textedit файл, написал кое что. Открываю в quark - переводов строк нету. Проблема конечно из-за CR vs CRLF (или как там).

Re: Quark - Code editor

Posted: Tue Jun 22, 2021 12:36 am
by Leency
maxcodehack wrote:Создал в textedit файл, написал кое что. Открываю в quark - переводов строк нету. Проблема конечно из-за CR vs CRLF (или как там).
Исправлено в #8913. Тепрь Кварк умеет все line-endings, я ещё и код там переписал на нормальный :D