Редактор TextEdit

...
  • Я часто использую TEDIT. Реже, чем TinyPad, но все равно часто.
    Есть несколько пожеланий по текстовому редактору:
    1. номеров строк:
    - сделать размер шрифта такой же, как и текста
    - убрать нолики (визуальный мусор)
    - сделать номера строк менее заметными, менее контрастными http://prntscr.com/kxufmd
    2. убрать панель сверху, данные в ней постоянно меняются при любом движении курсора и она постоянно притягивает внимание, в то время как информация в ней не самая важная; лучше ее вынести куда-то в статус бар
    3. внопка "инвертировать символы в строке" - нужна редако, лучше ее убрать и оставить только в меню
    4. добавить меню операций
    Attachments
    tedit.png
    tedit.png (30.5 KiB)
    Viewed 9649 times
    Из хаоса в космос
  • Из всего перечисленного легче всего сделать:
    номера строк менее заметными, менее контрастными
    ...
    кнопка "инвертировать символы в строке" - нужна редако, лучше ее убрать
    немного сложнее будет с этим:
    - сделать размер шрифта такой же, как и текста
    - убрать нолики (визуальный мусор)
    остальное требует большего внимания
  • Заметил, что символы в TextEdit разреженны.
    Нужно бы исправить.
    Attachments
    tedit_letter_spacing.png
    tedit_letter_spacing.png (9.1 KiB)
    Viewed 9571 times
    Из хаоса в космос
  • Такое ощущение, что перерисовывается по нескольку раз одно и то же.
    Например
    1:
    • Нажимаем кнопку открытия
      Выбираем в OpenDialog example.asm
      После загрузки отображаемый из файла текст перерисовался 3 раза
    2:
    • Нажимаем PgDown — после скроллинга текст перерисовался (так и должно быть)
      Теперь просто перемещаем указатель мыши — текст перерисовался ещё 2 раза

    3:
    • При активации окна мышью происходит перерисовка 3 раза


    При нажатии Enter, BackSpace и Delete перерисовывается полностью всё.
    Но перерисовывать полностью нужно не всегда.
    Иногда достаточно только текущую строку для BackSpace и Delete.
    Для Enter необязательно перерисовывать то, что было выше.
    Аналогично и для cut\paste из буфера обмена.

    Было бы удобно, если после Ctrl+F фокус сразу был бы в текстовом поле поиска.
    Ещё чтобы по нажатию Enter в этом поле происходил бы поиск, как при нажатии на кнопку "Найти".

    Цвет выделения, думаю, лучше более контрастный. На тёмном фоне, например, такой #1F4FD0.

    Не хватает некоторых функций, которые есть в TinyPad, например
    • замена текста
      компилировать\запустить
    Хорошо бы уметь переходить на строку, например, по Ctrl+G.

    Было бы очень удобно иметь возможность вставки шаблонов кода.
    Например, таких для C
    Spoiler:
    • while ( ) {

      }
      -------------------------------
      do {

      } while ( )
      -------------------------------
      if ( ) {

      }
      -------------------------------
      if ( ) {

      } else {

      }
      -------------------------------
      for (int i = 0; i < ; i++) {

      }
    И таких для FASM
    Spoiler:
    • macro
      {

      }
      -------------------------------
      struc
      {

      }
      -------------------------------
      rept
      {

      }
      -------------------------------
      repeat

      end repeat
      -------------------------------
      if

      end if
      -------------------------------
      if

      else if

      else

      end if
      -------------------------------
      while

      end while
      -------------------------------
      virtual at

      end virtual
  • Leency wrote:Заметил, что символы в TextEdit разреженны.
    Нужно бы исправить.
    Это в t_edit.ini файле можно исправить:
    symbol_w=9
    symbol_h=16
    0CodErr wrote:Такое ощущение, что перерисовывается по нескольку раз одно и то же.
    Там много что перерисовывается по несколько раз. Лучше всего сделать вывод через временный буфер изображения в памяти. Тогда не будет видно перерисовок, но это очень нужно долго делать.
    0CodErr wrote:При нажатии Enter, BackSpace и Delete перерисовывается полностью всё.
    Но перерисовывать полностью нужно не всегда.
    Иногда достаточно только текущую строку для BackSpace и Delete.
    Для Enter необязательно перерисовывать то, что было выше.
    В самом текстовом редакторе есть 2 функции по перерисовке, одна перерисовывает строку а другая все окно. Для перерисовывания того что ниже строки прийдеться лепить еще одну функцию перерисовки. Но при нажатии на enter все-же бывает нужно перерисовать все окно, при условии что выше есть выделенный фрагмент текста или если курсор стоит внизу окна, то нужно сдвигать все окно вверх на одну строку. Так что так однозначно.
    0CodErr wrote:Цвет выделения, думаю, лучше более контрастный. На тёмном фоне, например, такой #1F4FD0.
    В файлах синтаксиса .../t_edit/info/*.asm есть строка на подобие этой:

    Code: Select all

    color_select dd 0xc0c0c0
    в ней задается цвет выделения, можно поменять просто я не совсем понял в каком синтаксисе это делать, файлов с синтаксисом много
  • Исправил разреженноть символов.
    Image

    Сжал изображения без потери качества так, что размер бинарника t_edit уменьшился с 11558 до 9237 байт.

    Обновил цветовую схему INI:
    - добавил стиль для комментариев начинающихся с ';'
    - сделал номера строк менее контастными
    - заменил цветовую схему на Monokai

    Поменял ассоциацию INI с Tinypad на TextEdit.
    Attachments
    tedit_ini.png
    tedit_ini.png (35.37 KiB)
    Viewed 9431 times
    Из хаоса в космос
  • rev 7488
    добавлены новые параметры для кнопок панели:

    Code: Select all

    but_new=1
    but_open=1
    but_save=1
    but_select=1
    but_cut=1
    but_copy=1
    but_paste=1
    but_find=1
    but_replace=0
    but_key_words=1
    but_upper=1
    but_lower=1
    but_reverse=0
    but_undo=1
    but_redo=1
    but_invisible=1
    but_syntax_list=1
    but_syntax_mode=1
    but_convert_1251_866=1
    but_convert_866_1251=1
    если 1 - кнопка есть на панели, если 0 - то нет. Теперь можно через ini файл включать или отключать любые кнопки, не лазя в код программы. Пока выключил 2 кнопки, одна не сделанный поиск, вторая редко используемая реверсия букв.
  • Спасибо. Я заметил, что Ctrl+X не работает как вырезание.
    Поидее должно.

    Кстати, как тебе новая иконка?)
    Из хаоса в космос
  • Leency wrote:Я заметил, что Ctrl+X не работает как вырезание.
    Нужно будет в boxlib добавить вызов функции вырезания. Т.е. это не в редакторе правится.
    Leency wrote:Кстати, как тебе новая иконка?)
    Иконка понравилась.
  • У меня уже открыт файл, почему при его сохранении Ctrl+S у меня спрашивает куда сохранить??
    Сюда же, в него. Я же не нажимал Ctrl+Shift+S чтобы "Сохранить как..."
    Attachments
    download.png
    download.png (59.68 KiB)
    Viewed 9168 times
    Из хаоса в космос
  • Сохранение по Ctrl+S так действует потому что вызывается стандартная функция сохранения, которая работает и от панели. Потому программа не отличает что нажали кнопку на панели или Ctrl+S и всегда сунет диалог сохранения файлов.

    Исправлено в rev 7570.
  • rev 7576
    Доработан поиск текста, добавлены опции выбора направления поиска: Вверх, Вниз, С начала файла. Исправлен цвет надписей на кнопке [Найти далее], подправлен код.
    find.png
    find.png (9.08 KiB)
    Viewed 8980 times
  • rev 7577
    Сделана замена текста. Исправлены некоторые ошибки в программе.
    Можно протестировать замену текста на ошибки, если будут сообщить.
  • IgorA
    Проверил. Работает!

    При нажатии "Заменить все" неплохо бы показывать сообщение сколько замен произведено.
    Неплохо бы иметь галочку "Без учета регистра" при поиске.
    Из хаоса в космос
  • Who is online

    Users browsing this forum: No registered users and 2 guests