Начал писать месяц назад компонент для Lazarus, который бы мог заменить обычный SynEdit (это единственный серьезный компонент редактирования для Лазарус). Для своих целей. Мне бы хотелось написать «что-то типа Sublime Text». Но не совсем клон. Точнее, совсем не такой же редактор. Я бы хотел перенять многое из ST3, но на SynEdit это сделать вообще нельзя. Там нет переноса слов. Что уж говорить про все остальное.


Код пишется, называется ATSynEdit и он на гитхабе.

ATSynEdit

Уже есть версия 0.2, которая может довольно много но без подсветок — базовый код, который может редактировать, выделять, копировать в буфер, делать авто-отступы, скроллить и т.п.

Подсветки будут сильно позже. Хочется взять подсветки от SynWrite (их уже что-то типа 60-90 штук). Может кто и захочет написать адаптер для подсветок ST3, можно будет. Может кто и напишет адаптер для лексеров SynEdit. Все будет можно.

Контрол много-кареточный от рождения. Можно выставлять мультикаретки, делать штуки из рекламных картинок ST3. Все как у людей. Многие визуальные фичи — wrapped indent, показ пробелов и концов строк и т.п., можете собрать демо и запустить — там диалог Опции — все опции видны. Все колонки gutter настраиваются. И это версия 0.2.

Все это уже сейчас под Win, Linux, MacOS. Принимаются репорты.

Комментарии (11)


  1. Magister7
    28.04.2015 23:18

    А не проще было бы SynEdit доработать? Патчи там вполне принимают.


    1. Alex222 Автор
      29.04.2015 01:33
      +1

      Конечно я смотрел Synedit, там как бы сказать, все очень кисло.

      Я сделал там 2 патча,
      — один показывает непечатаемые концы строк,
      — другой добавляет новые формы каретки,
      оба раза все было медленно и делать, и ждать когда же автор (Мартин Ф.) найдет время…

      Там очень запутанный код (для меня)…

      Надеюсь, кому-то тут мой synedit пригодится


      1. Magister7
        29.04.2015 23:22

        Ну так одна из задач — этот код распутать, сделать компонент более модульным. Только у Мартина нет на это времени, как всегда :)
        Но всё равно не уверен, что сделать редактор «с нуля» быстрее, чем доработать существующий (и довольно неплохой).
        Впрочем, вам виднее.


        1. Alex222 Автор
          29.04.2015 23:45

          Вы как бы правы, есть отличный компонент, лучше доработать,… а практически… я пытался понять, что там делают 4 или 6 markup классов, что там поправить чтобы вывести значок на месте конца строки.
          Именно проще делать свое — сразу с word wrap


          1. Magister7
            29.04.2015 23:55
            +1

            Ну я вообще-то знакомился немного с внутренностями, т.к. писал свой Highlighter с поддержкой сворачивания + минимальный автоформаттер (автоотступ, ещё вроде что-то такое). Там есть ещё некоторое количество багов при работе с чем-то отличным от латиницы, есть жестко заданные символы разделителя слов, но общее моё впечатление — разобраться и пофиксить можно.
            Кстати, как по мне — необходимость word wrap в редакторе кода (а именно так и позиционируется SynEdit) очень сомнительна. Никогда не возникало желания включить.


    1. augur
      29.04.2015 10:52
      +2

      По-видимому у SynEdit есть фатальный недостаток (sic!).


      1. Magister7
        29.04.2015 23:24

        Ну, как минимум один недостаток есть — он by design не умеет работать с текстом, где разные строки имеют разный тип окончания строки (часть CR/LF, часть просто LF). Такие тексты преобразуются в какой-то один формат.
        Правда насколько это нужная возможность не скажу :)


  1. zw0rk
    29.04.2015 00:38
    -4

    Это какой-то пост в личном блоге, зачем на хабр?


  1. Error1024
    29.04.2015 02:05
    +2

    RAD Studio будет поддерживаться в будущем?


    1. Alex222 Автор
      29.04.2015 12:30

      У меня нет Студио, и вообще, порт мне не нужен…


      1. Error1024
        29.04.2015 16:14

        Жалко, очень полезный компонент :(
        * В хабы Dephi добавьте пожалуйста, иначе не найти нормально эту статью *