Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6 7   вперед  Ctrl      все
 Re: Ещё один редактор.  [new]
hVostt
Member

Откуда:
Сообщений: 15397
Arm79
если хранить только позиции начала строк и их окончаний - индекс очень компактный :-)


А такой текст?

безумие.тхт
К
У
К
У
Б
Л
Э
Д
...


29 янв 18, 05:01    [21145926]     Ответить | Цитировать Сообщить модератору
 Re: Ещё один редактор.  [new]
hVostt
Member

Откуда:
Сообщений: 15397
mayton
1) Не обязательно хранить смещения всех строк. Можно индексировать страницы (грубо - 25 строк)
2) Смещения тоже можно складывать в двоичный файл. Над ним - сверху построить LRU-кеш.
3) Если отказаться от мгновенной фиксации вставок строк или удалений - то можно логгировать
изменения.


ну короч, мозги не колупать, и положить весь текстовый файл в базу данных
29 янв 18, 05:05    [21145927]     Ответить | Цитировать Сообщить модератору
 Re: Ещё один редактор.  [new]
Alibek B.
Member

Откуда:
Сообщений: 3067
EditPlus
29 янв 18, 08:36    [21146021]     Ответить | Цитировать Сообщить модератору
 Re: Ещё один редактор.  [new]
mikron
Member

Откуда: Germany / Stuttgart
Сообщений: 790
Не надо гадать, можно просто посмотреть.

И учесть, что иногда там где стоит "Может"
на практике нужно читать "теории - может"
29 янв 18, 12:24    [21146795]     Ответить | Цитировать Сообщить модератору
 Re: Ещё один редактор.  [new]
mikron
Member

Откуда: Germany / Stuttgart
Сообщений: 790
Неспеша вношу новые улучшения.
Добавил возможность вставлять контент других файлов.
Drag&Drop и ранше позволял открывать файл.
Теперь с нажатым Контролом вставляет контент.
Также и через меню.

Следующий пункт в плане: сделать полноценную поддержку буфера обмена.
Сейчас текст ограничен размером буфера и поместит в буфер
большой фрагмент текста не получится, да и работает не эффективно.
В плане привести это в порядок.
Ещё один момент заставляет призадуматься - постоянно возрастающая сложность
и как следсвие возрастающее время реакции на нажатие клавиш.
В немецкой прессе была статека об одном дядке, который замерил
время реакции на нажатие кнопки клавиатуры.
Результат был отрезвляющий - победил 20 летний древний Commodore:)
Ну а свременные копутеры на виндовсах - последние.
Вобщем, сложность растёт и время реакции тоже, но как с этим боротся пока непонятно.
2 мар 18, 10:39    [21231410]     Ответить | Цитировать Сообщить модератору
 Re: Ещё один редактор.  [new]
mayton
Member

Откуда: loopback
Сообщений: 40809
mikron

Ещё один момент заставляет призадуматься - постоянно возрастающая сложность
и как следсвие возрастающее время реакции на нажатие клавиш.

Это проблему надо решать сразу. Никому из пользователей не понравится редактор
который замедляет свою работу.
14 мар 18, 23:26    [21257222]     Ответить | Цитировать Сообщить модератору
 Re: Ещё один редактор.  [new]
д0kХ
Guest
mikron
Dima T,
Верю, и less показывает. А редактировать может?


sed
15 мар 18, 10:41    [21257762]     Ответить | Цитировать Сообщить модератору
 Re: Ещё один редактор.  [new]
mikron
Member

Откуда: Germany / Stuttgart
Сообщений: 790
mayton
mikron

Ещё один момент заставляет призадуматься - постоянно возрастающая сложность
и как следсвие возрастающее время реакции на нажатие клавиш.

Это проблему надо решать сразу. Никому из пользователей не понравится редактор
который замедляет свою работу.

Он не замедляет работу, он работает константно относително "медленно".
Медленность расёт с ростом версии и сложности кода.

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

Сомтрю на то что имею:
Нажатие клавиши приводит к добавлению новой задачи на изменеие буфера в очередь.
Буфер не простой. И в следствии его изменения - инвалидация кешей, логирование, изменения в закладках. В конечном итоге перестроение отображаемой модели и на её основе определение региона окна для перерисовки.
И это ещё далеко не все детали.

Как с этим боротся - без понятия.
15 мар 18, 14:56    [21258960]     Ответить | Цитировать Сообщить модератору
 Re: Ещё один редактор.  [new]
tchingiz
Member

Откуда:
Сообщений: 32769
автор
большой текстовый файл и пока все знакомые редактор с проблемой не справлялись

sed справляется, кстати
16 мар 18, 08:46    [21260364]     Ответить | Цитировать Сообщить модератору
 Re: Ещё один редактор.  [new]
mikron
Member

Откуда: Germany / Stuttgart
Сообщений: 790
Продолжая тему

добавил:

  • Поддержка вставки файлов через буфер обмена.
  • Поддержку передачи больших регионов через буфера обмена.
  • Также поддержка вставки больших регионов. Здесь ешё есть потенциал для оптимизации но только если источник данных - сам редактор.
  • Так-же поддежка колоночного режима работы для болчич регионов.

  • Удаление строк (не-)удовлетворяюших кретерию поиска.

    Скачать можно здесь.
    Ну и конечно буду рад замечаниям / предложениям / критике.
  • 11 июн 18, 11:37    [21484428]     Ответить | Цитировать Сообщить модератору
     Re: Ещё один редактор.  [new]
    mikron
    Member

    Откуда: Germany / Stuttgart
    Сообщений: 790
    Добавил проверку на апдейты, исправил пару ошибок и внёс новые.
    Скачать здесь.
    Интересно, что ошибли вылезли только на ХП, на вин8 COM работа с буфером обмена очевидна реализована немного по другому.
    Теперь думаю какой функцинал внести после фазы стабилизации.
    Добавить многотабие, поддержку динамической подсветки "тэгов" пользователя или макросы. Или чего совершенно другого. Вопрос в зал, какой фукцинал наиболее востребован за пределами стандартного Notepad.
    Feedback is wellcome.
    15 июн 18, 13:49    [21493709]     Ответить | Цитировать Сообщить модератору
     Re: Ещё один редактор.  [new]
    hVostt
    Member

    Откуда:
    Сообщений: 15397
    mikron,

    вертикальное выделение
    + мультиредактор на вертикальном выделении

    tab выделенного блока перемещает весь блок, shift-tab в обратную сторону

    ctrl-up/down скролит текст, оставляя курсор на месте

    поиск/замена с регулярными выражениями

    ну и т.д. ))
    15 июн 18, 14:15    [21493846]     Ответить | Цитировать Сообщить модератору
     Re: Ещё один редактор.  [new]
    mikron
    Member

    Откуда: Germany / Stuttgart
    Сообщений: 790
    hVostt
    вертикальное выделение
    >> Уже есть.

    + мультиредактор на вертикальном выделении
    >> Что это и зачем это нужно?

    tab выделенного блока перемещает весь блок, shift-tab в обратную сторону
    >> Это можно, но предположительно только для программистов востребовано. Или есть другие случаи?

    ctrl-up/down скролит текст, оставляя курсор на месте
    >> Уже есть, толко с ALT+...

    поиск/замена с регулярными выражениями
    >> Уже.
    15 июн 18, 17:42    [21494681]     Ответить | Цитировать Сообщить модератору
     Re: Ещё один редактор.  [new]
    hVostt
    Member

    Откуда:
    Сообщений: 15397
    hVostt
    + мультиредактор на вертикальном выделении
    >> Что это и зачем это нужно?

    tab выделенного блока перемещает весь блок, shift-tab в обратную сторону
    >> Это можно, но предположительно только для программистов востребовано. Или есть другие случаи?


    Наверное нет, это больше актуально для разработки. Но часто очень не хватает, мне кажется, что перемещение блоков по табу должно быть по умолчанию во всех редакторах.
    15 июн 18, 20:23    [21495148]     Ответить | Цитировать Сообщить модератору
     Re: Ещё один редактор.  [new]
    mikron
    Member

    Откуда: Germany / Stuttgart
    Сообщений: 790
    Выложил очередную alpha-версию:
    — Добавил Auto indent,
    — улучшения в производительности некоторых операций,
    — переодическая проверка наличия новых версий (без автоматического update)

    Теперь думаю над добавлением табов / регистров. Собственно сама реализпция не сложна,
    а вот с usability одни неприятности:
    Однооконный интерфейс имеет однозночное и ожидаемое поведение.
    Одно окно - один файл. Хочешь ещё окно - команда ctl-n. Закрываеш окно - буфер удаляется.
    При открытии файла окно остаётся на месте и количество открытых файлов не меняется.
    и независимость процессов - убиваем процес и все остальные окна не страдают.
    И чёткое разделение обязанностей - виндовс управляет окнами и их переключением.
    Но есть и минусы: операции через буфер обмена не эффевны, просмотр одного буфера в двух окнах одновременно невозможен etc.

    С табами другие неприятности:
    Например просмотр нескольких регионов одного файла одновременно.для реализации этого всё равно потребутся создавать несколько окон.
    И тут начинаются неоднозначности - ctl-n открывает окно или таб? А что делает ctl-o если буфер уже открыт в соседнем окне?
    Вобшем полно неоднозначностей.
    14 авг 18, 09:45    [21641379]     Ответить | Цитировать Сообщить модератору
     Re: Ещё один редактор.  [new]
    hVostt
    Member

    Откуда:
    Сообщений: 15397
    mikron
    Вобшем полно неоднозначностей.


    Можно пойти по принципу реализации табов в Chrome. Каждый таб -- отдельный процесс. Сам видимый браузер с табами, не более чем переключалка табов :)
    14 авг 18, 12:06    [21641643]     Ответить | Цитировать Сообщить модератору
     Re: Ещё один редактор.  [new]
    mikron
    Member

    Откуда: Germany / Stuttgart
    Сообщений: 790
    hVostt
    mikron
    Вобшем полно неоднозначностей.


    Можно пойти по принципу реализации табов в Chrome. Каждый таб -- отдельный процесс. Сам видимый браузер с табами, не более чем переключалка табов :)


    Можно, не вижу как это можно "просто" реализовать.
    И главная проблема - usability не решается.

    Предположим у меня есть два окна
    Window1: fileA, fileB
    Window2: fileB, fileC

    И Window1 активно а Window2 свёрнуто.
    Ползователь открывает fileC (по закладке или просто через открыть файл).
    Что он ожидает:
    А) откроется ещё один таб с fileC в активном окне Window1
    Б) фокус переключится на fileC в Window2, которое развернётся из трея
    В) откроется ещё одно окно Window3 и в нём отобразится fileC
    Г) что то другое?

    Проблема в том что все варианты логичны.
    А) пользователь хочет просто увидеть буфер рабочем окне. (он не хочет других окон, по тому что расположение окон оптимально и возможно паралено он смотрит в другом приложении кино)
    Б1) ползователь просто забыл про буфер во втором окне. Возможно увидев его он получит то что хочет.
    Б2) ползователь знает про буфер во втором окне и перешёл по закладке (bookmark). Он ожидает иммено что фокус переключится но первое окно не изменится.
    В) что то по середине, но пользователь не хочет измененив текушем лайауте.

    Основная проблема как я её вижу в том что управление буфером и управление окном обединяются в одну операцию.

    В сингл документ - всё просто:
    Управление окном - (Control-N и Alt-F4)
    Всё осталное - управление буфером.


    У кого какие будут идеи?
    14 авг 18, 15:51    [21642062]     Ответить | Цитировать Сообщить модератору
     Re: Ещё один редактор.  [new]
    hVostt
    Member

    Откуда:
    Сообщений: 15397
    mikron,

    Не-не. Либо окна, либо вкладки. А если хочется и того и другого, то вкладки должны быть открепляемыми.

    И вообще, для редактора вкладки не нужны, если нет в планах из него делать IDE.
    А разработка IDE это вообще отдельный разговор.
    14 авг 18, 15:54    [21642069]     Ответить | Цитировать Сообщить модератору
     Re: Ещё один редактор.  [new]
    hVostt
    Member

    Откуда:
    Сообщений: 15397
    mikron
    У кого какие будут идеи?


    Сосредоточиться на главном. На редакторе одного файла в одном окне.
    Основная проблема большинства проектов -- распыление.
    И главное толком не сделали, и остальное пошло по п...е.
    14 авг 18, 15:56    [21642070]     Ответить | Цитировать Сообщить модератору
     Re: Ещё один редактор.  [new]
    mikron
    Member

    Откуда: Germany / Stuttgart
    Сообщений: 790
    Новейшая версия здесь
    14 авг 18, 23:50    [21642463]     Ответить | Цитировать Сообщить модератору
     Re: Ещё один редактор.  [new]
    Roman Mejtes
    Member

    Откуда: г. Пермь
    Сообщений: 3351
    лицензионный ключ для профессионала 0000-0000-0000-0000 :D
    15 авг 18, 13:39    [21643002]     Ответить | Цитировать Сообщить модератору
     Re: Ещё один редактор.  [new]
    mikron
    Member

    Откуда: Germany / Stuttgart
    Сообщений: 790
    Roman Mejtes
    лицензионный ключ для профессионала 0000-0000-0000-0000 :D

    Да пожалуйста. :)
    15 авг 18, 14:20    [21643124]     Ответить | Цитировать Сообщить модератору
     Re: Ещё один редактор.  [new]
    Areostar
    Member

    Откуда:
    Сообщений: 3332
    mikron,

    FAR к примеру хорошо справляется. Поднлку сейчас гляну.
    19 авг 18, 16:28    [21647249]     Ответить | Цитировать Сообщить модератору
     Re: Ещё один редактор.  [new]
    Areostar
    Member

    Откуда:
    Сообщений: 3332
    mikron,


    Ссылка не работает.
    19 авг 18, 16:29    [21647251]     Ответить | Цитировать Сообщить модератору
     Re: Ещё один редактор.  [new]
    mikron
    Member

    Откуда: Germany / Stuttgart
    Сообщений: 790
    mikron
    Новейшая версия здесь
    19 авг 18, 18:50    [21647304]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6 7   вперед  Ctrl      все
    Все форумы / Программирование Ответить