Page 1 of 9

Еще один текстовый редактор

Posted: Fri Apr 02, 2021 11:44 pm
by akron1
Spoiler:11-mar-2021
начало

02-apr-2021
Пока неюзабельно.
Нет скроллов, нет поиска/замены, нет отмены изменения, нет настройки отображения.
Не всё хорошо с производительностью.
Повышенный расход оперативной памяти, т. к. программа работает с фиксированными строками 1000 символов UTF16.
Открытие текстов только в кодировке UTF-8 с BOM или без, конец строки - CR/LF/CR+LF.
Сохранение в UTF-8 с BOM, конец строки - CR+LF.
Символы табуляции заменяются пробелами.
Буфер обмена работает с кодировкой CP866.
Подсветка синтаксиса пока только для Оберона, но нет проблем сделать для Си, Паскаля и т. д.

Работают все основные функции редактирования текста.
Выделение текста клавиатурой и мышью, прокрутка колесом мыши.
специальные клавиши:

ctrl+A -- выделить всё
ctrl+C -- копировать
ctrl+V -- вставить
ctrl+X -- вырезать
ctrl+Y -- удалить текущую строку

ctrl+S -- сохранить
ctrl+O -- открыть
ctrl+N -- создать новый

также:

(ctrl+)Home, (ctrl+)End, (ctrl+)PageUp, (ctrl+)PageDown

06-apr-2021
Поддержка кодировки CP866.
Подсветка для C
Подсветка для Pascal

08-apr-2021
Скроллы, мелкие исправления.

09-apr-2021
- отключение нумерации строк (ctrl+F1)
- настройка цветов (ini-файл)
- вопрос о сохранении файла при закрытии
- мелкие исправления

12-apr-2021
добавлен поиск, замена пока не работает

14-apr-2021
Замена, мелкие исправления.

17-apr-2021
- изменено поведение: курсор можно поставить только туда, где есть текст
- снято ограничение на длину строки
- уменьшено использование оперативной памяти
- мелкие улучшения

20-apr-2021
- Многократная отмена:
F5 - отменить (undo)
ctrl+F5 - вернуть (redo)
- Подсветка для FASM

23-apr-2021
сделано контекстное меню

24-apr-2021
- панель поиск/замена перенесена в левую часть окна
- добавлена функция "перейти на строку..."

01-may-2021
сделано главное меню

03-may-2021
- иконки на кнопки
- функция "изменить регистр" для выделенного текста
- поиск без учета регистра для русских букв
- некоторые улучшения интерфейса

05-may-2021
мелкие исправления

06-may-2021
подсветка для Lua

08-may-2021
выбор подсветки синтаксиса

09-may-2021
мелкие исправления

11-may-2021
- выбор и исполнение скриптов (.sh) для компиляции и выполнения программы
- автоопределение кодировки на вход, выбор кодировки на выход

14-may-2021
- мелкие исправления
- подсветка для .ini

17-may-2021
- меню tools
- пункт меню program->debug
- группировка кнопок тулбара

18-may-2021
- кнопки "компилировать" и "выполнить"
- выбор цветовой схемы
- загрузка ключевых слов из файла
- подсветка директив для Pascal

20-may-2021
- третья группа ключевых слов
- уточнение подсветки для Pascal
- мелкие исправления

24-may-2021
- исправлен путь к файлу icons16.png

31-may-2021
- подсветка #-комментариев для INI

03-jun-2021
системные цвета

06-jun-2021
- Esc -- скрыть панель поиска
- Shift-F3 -- найти предыдущий
- увеличен размер окна
- добавлен пункт меню view->x2 (увеличить шрифт)

14-jun-2021
мелкие исправления

15-jun-2021
мелкие исправления

06-jul-2021
- дублирование (ctrl+d), удаление (ctrl+del), перемещение (ctrl+up, ctrl+down) строк
- путь к скриптам по умолчанию
- выделение одинаковых слов

10-jul-2021
- вкладки
- file->save all
- file->close

12-jul-2021
- улучшенный дизайн
- метки: ctrl+F2 -- поставить/снять; F2 -- перейти к метке ниже; shift+F2 -- перейти к метке выше
- закрыть вкладку: ctrl+W или средней кнопкой мыши
- ctrl+Tab -- переключиться на следующую

16-jul-2021
- разные исправления
- улучшена работа функций "отменить" и "вернуть"
- пункт меню tools->board
- кнопка "свернуть панель поиска"

17-jul-2021
мелкие исправления

07-aug-2021
поддержка символов табуляции

08-aug-2021
мелкие исправления

10-aug-2021
мелкие исправления

11-aug-2021
Изменение отступа для выделенного текста:
Tab - увеличить
shift+Backspace - уменьшить

17-aug-2021
- подсветка для JSON
- исправлены ошибки

18-aug-2021
мигающий курсор

20-aug-2021
мелкие исправления

25-aug-2021
исправлена ошибка

28-aug-2021
вложенные меню
02-sep-2021
новые скроллы

03-sep-2021
мелкие исправления

06-sep-2021
выбор символа перевода строки (CRLF/LF/CR)

07-sep-2021
улучшенный таймер, мелкие исправления

08-sep-2021
новые чекбоксы

11-sep-2021
доступ к главному меню с клавиатуры (F10 - Esc)

14-sep-2021
некоторые изменения в главном меню

15-sep-2021
возможная подсветка операторов и разделителей

17-sep-2021
исправлена ошибка

21-sep-2021
поиск выделенного текста

24-sep-2021
мелкие исправления

Re: Еще один текстовый редактор

Posted: Thu Apr 08, 2021 1:14 am
by Leency
Супер! Это очень хорошая новость!
Текстовый редактор в топе того, что нужно Колибри.

Ещё отлично что мне не придется делать это все в Quark)))
С таблицами в браузере я уже обломался, с полноценным IDE наверное было бы тоже самое, ведь за 10 лет у меня лишь в 3 раза больше скиллов и в 7 раз меньше упорства)))

Re: Еще один текстовый редактор

Posted: Thu Apr 08, 2021 3:43 pm
by GerdtR
Легко изменяемая подсветка синтаксиса... и привлекательнее textedit. Неплохо, это однозначно есть смысл пилить. И круто будет возможность делать плагины. Ну хотя бы в целом структура проги была бы годная для будущей прикрутки плагинов. Эдакий маленький notepad++.

Re: Еще один текстовый редактор

Posted: Thu Apr 08, 2021 5:34 pm
by akron1
Пока, у меня задача -- сделать простой редактор с подсветкой синтаксиса, не более того. А дальше посмотрим...

Re: Еще один текстовый редактор

Posted: Mon May 03, 2021 7:54 am
by akron1
Подведу промежуточные итоги.
До полноценного редактора кода еще далеко, но кое-что уже есть:

- все основные функции текстового редактора
- автоотступ
- подсветка синтаксиса для C, Oberon, Pascal, Fasm
- нумерация строк
- поиск/замена
- переход на строку
- многократная отмена изменений
- изменение регистра для выделенного текста

Написано менее чем за два месяца (давно уже можно было сделать!) -- у меня было не очень много свободного времени, но много энергии. При этом, последний месяц я обходился без кросскомпиляции -- писал редактор в самой KolibriOS и в нём самом же.
На данный момент мне больше всего не хватает многостраничности, также, хорошо бы иметь возможность компиляции/запуска прямо из редактора.
Пока сделаю паузу, а потом подумаю куда и как пилить дальше.

Сейчас, выглядит так:
Spoiler:
1.png
1.png (30.16 KiB)
Viewed 12317 times
Обновление архива в первом сообщении.

Re: Еще один текстовый редактор

Posted: Mon May 03, 2021 4:56 pm
by Doczom
Очень хороший редактор, простой и понятный, интерфейс не перегружен, работает стабильно, редактировать код очень удобно.
из недостатков: не хватает комбинации клавиш ctrl+z , и кнопки компиляции, её можно сделать как запуск скрипта build.sh ,
иногда может понадобиться переключение кодировки текста, для меню открытия файла было бы неплохо сделать два варианта(открыть в новой вкладке, открыть в новом окне), ручной выбор синтаксиса, или возможность ассоциировать файлы с разным расширением к одному типу синтаксиса, например у паскаля файлы имеют расширение .pp, .pas .inc, .lpr , ну и небольшой вопрос: почему программа при запуске занимает в ОЗУ 4(5) мб, можно ли уменьшить данный объем, например до 2-3 мб?

Re: Еще один текстовый редактор

Posted: Mon May 03, 2021 7:47 pm
by akron1
Doczom wrote:не хватает комбинации клавиш ctrl+z , и кнопки компиляции
Если сделать "undo" на ctrl-z, то "redo" должно быть на ctrl-y. Но ctrl-y уже занято -- "удалить текущую строку" и я часто пользуюсь этой функцией. Поэтому "undo" (временно) сделано на F5, а "redo" -- ctrl-F5. Потом, может быть, переделаю.
Doczom wrote:почему программа при запуске занимает в ОЗУ 4(5) мб, можно ли уменьшить данный объем, например до 2-3 мб?
1 Мб занимает графический буфер -- это необходимо, чтобы не было мерцания; 1 Мб стэк главного потока (это минимально возможный размер стэка при текущем состоянии компилятора); 1 Мб забирает менеджер памяти для выделения малых блоков (при исчерпании этого мегабайта, менеджер памяти запросит следующий мегабайт).

Остальное принял к сведению, спасибо.

P. S.
Исправлена ошибка, архив обновлен.

Re: Еще один текстовый редактор

Posted: Wed May 05, 2021 5:14 pm
by Leency
Все поля по дефолту имеют фокус, что не ок https://prnt.sc/12izcf7
Окно на 1px меньше чем контент https://prnt.sc/12izhr3

Чтобы кнопки скролла выглядели ня, их надо рисовать кастопно - геморно, зато красиво https://prnt.sc/12izt3g (в скине есть цвета work_light и work_dark для придания оъема)
Или можно совсем по-хипстерски - без них, т.к. используют их редко. Эти кнопки хорошо реаизованы в Эолайт - эффект нажатия, реация на зажатие, но кода ушло много. В браузере и Quark я вообще от них отказался, вроде ок.

Есть странная задержка перед выделением.

Можно попробовать ctrl+z / ctrl+alt+z.
Лирическое отступление: по феншую, конечно, ctrl+shift+z, но ctrl+shift переключет язык в системе.
Сейчас уже все системы перешли на переключение языка по комбиналии Win+Space (Windows), Cmd+Space (MacOS), Ctrl+Space (ChromeOS/Linux) и нам надо.

В целом очень годно.

Re: Еще один текстовый редактор

Posted: Wed May 05, 2021 8:45 pm
by ArenElchinyan
Добавьте возможность изменять цветовую схему.
Также можно версию для тестов на SVN?

Re: Еще один текстовый редактор

Posted: Wed May 05, 2021 9:07 pm
by denius
Добрый вечер, Akron1! Моя просьба выложить тестовую версию Cedit в SVN для публичного тестирования и кодинга под KolibriOS! Нам очень нужен полный аналог виндового Notepad++. Мы c нашей командой по разработке приложений и библиотек под Kolibri будем очень благодарны вашим усилиям по выпуску Cedit! По крайней мере обновляйте пожалуйста программный редактор! Добра вам! :) :) :)

Re: Еще один текстовый редактор

Posted: Thu May 06, 2021 12:06 am
by akron1
Leency wrote:Все поля по дефолту имеют фокус, что не ок https://prnt.sc/12izcf7
исправлено
Leency wrote:Окно на 1px меньше чем контент https://prnt.sc/12izhr3
исправлено
Leency wrote: Чтобы кнопки скролла выглядели ня, их надо рисовать кастопно - геморно, зато красиво https://prnt.sc/12izt3g (в скине есть цвета work_light и work_dark для придания оъема)
Или можно совсем по-хипстерски - без них, т.к. используют их редко. Эти кнопки хорошо реаизованы в Эолайт - эффект нажатия, реация на зажатие, но кода ушло много. В браузере и Quark я вообще от них отказался, вроде ок.
Да, конечно, такие скроллы (кнопки) временно, чтобы хоть что-то было.
Leency wrote: Есть странная задержка перед выделением.
Это защита от случайного выделения, если левая кнопка нажата, чтобы поставить курсор в новое место, а мышь по инерции продолжает двигаться. Была задержка 160 мс, теперь уменьшена до 100 мс.
Leency wrote: Можно попробовать ctrl+z / ctrl+alt+z.
Лирическое отступление: по феншую, конечно, ctrl+shift+z, но ctrl+shift переключет язык в системе.
Сейчас уже все системы перешли на переключение языка по комбиналии Win+Space (Windows), Cmd+Space (MacOS), Ctrl+Space (ChromeOS/Linux) и нам надо.
ctrl+alt тоже не подходит -- это комбинация для переключения на хост в VMware. Я сделал "undo" на ctrl-z, "redo" на ctrl-y, а функцию "удалить строку" пока отключил, может потом подберу для нее какую-нибудь другую комбинацию.
ArenElchinyan wrote:Добавьте возможность изменять цветовую схему.
Частично, такая возможность есть, но только через ini-файл. Потом, конечно, сделаю специальное окно для настроек цветов и прочего. Но это будет позднее, сейчас я исправляю только мелкие недоработки и ошибки.
denius wrote:Добрый вечер, Akron1! Моя просьба выложить тестовую версию Cedit в SVN для публичного тестирования и кодинга под KolibriOS! Нам очень нужен полный аналог виндового Notepad++. Мы c нашей командой по разработке приложений и библиотек под Kolibri будем очень благодарны вашим усилиям по выпуску Cedit! По крайней мере обновляйте пожалуйста программный редактор! Добра вам! :) :) :)
На SVN пока не надо, последнюю версию вы всегда найдете здесь.

Re: Еще один текстовый редактор

Posted: Thu May 06, 2021 12:14 am
by Doczom
а можно ли подключить поддержку других ЯП, например Lua и сворачивания кода?

Re: Еще один текстовый редактор

Posted: Thu May 06, 2021 12:37 am
by akron1
Подсветка для Lua -- думаю легко, на днях сделаю. Сворачивание кода -- сложно, это оставлю на будущее.

upd
Подсветка для Lua сделана.
Spoiler:
1.png
1.png (19.41 KiB)
Viewed 12061 times

Re: Еще один текстовый редактор

Posted: Thu May 06, 2021 11:39 am
by Leency
Спасибо.

По подсветке луа имхо контраст недостаточный, т.к. шрифты тонкие.
Я использовал такие цвета https://prnt.sc/12kg9xh. Если слишком контрастно, то можно что-то среднее между цветами браузера и текущими...

Re: Еще один текстовый редактор

Posted: Thu May 06, 2021 11:47 am
by ArenElchinyan
Прогресс идет!
Может создадим полноценную среду разработки с компиляторами, встроенной документацией?
В беседе "вконтакте" было обсуждение на счет этого.