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

...
  • Мне текущая реализация подходит, хоть она и отличатся от других текстовых редакторов.
    В них выделение прыгает так:

    Code: Select all

    Case 1:
    1. Hello| world
    2. [Ctrl+Right]
    Cedit result: Hello |world
    Other editors result: Hello world|
    
    Case 2:
    1. Hello |world
    2. [Ctrl+Left]
    Cedit result: Hello| world
    Other editors result: |Hello world
    
    Из хаоса в космос
  • Если окно CEdit свернуить в заголовок, то надпись на заголовке окна пропадает.
    Можно ли добавить в ini-файл для Си управляющие слова dword, byte и bool?
    Attachments
    Screenshot_1.png
    Screenshot_1.png (10.68 KiB)
    Viewed 4983 times
    Из хаоса в космос
  • Leency wrote:Можно ли добавить в ini-файл для Си управляющие слова dword, byte и bool?
    В Си dword и byte это не стандартные типы данных, вместо них uint32_t и uint8_t. Тогда уж надо подсветку для C- - делать (заодно подсветку EAX, EBX, и тд особенностей C- -)
    The best way to predict the future is to create it.
  • rgimad wrote:
    Leency wrote:Можно ли добавить в ini-файл для Си управляющие слова dword, byte и bool?
    В Си dword и byte это не стандартные типы данных, вместо них uint32_t и uint8_t. Тогда уж надо подсветку для C- - делать (заодно подсветку EAX, EBX, и тд особенностей C- -)
    В VC типы dword и byte такие-же стандартные как и uint32_t и uint8_t. Поэтому это не проблема.
    С четом того что в стандарте Си жо С11 или С18 нет bool, то вообще не вижу проблем.
    to infinity and beyond
  • Leency wrote:Можно ли добавить в ini-файл для Си управляющие слова dword, byte и bool?
    Думаю, лучше я сделаю отдельный парсер для C--. С-- отличается от C не только множеством ключевых слов, но и синтаксисом числовых констант:
    Примеры:
    0b11111111 // двоичное представление числа 255
    0x00F // шестнадцатеричное представление числа 15
    0o10 // восьмеричное представление числа 8
    1.234567E-20 // вещественное число

    C-- вместе с традиционным C-стилем шестнадцатеричных чисел понимает и
    числа записанные в стиле ассемблера. Для тех, кто вдруг не знает, сообщаю,
    что шестнадцатеричные числа в ассемблере имеют на конце символ h или H.
    Если первый символ шестнадцатеричного числа больше 9, то перед ним
    обязательно должен быть записан символ 0. Примеры:

    1234h
    0A000H

    К числовым константам можно писать суффиксы L, U и F. Фактически
    эти суффиксы в C-- не играют никакой роли, компилятор их просто
    проглатывает. Пример:

    #define DEF 1L
    #define DEF2 2Lu
    #define DEF3 3.0F
  • Думаю, лучше я сделаю отдельный парсер для C--.
    А как отличить С-- файл от Си?
    Ну если это возможно, было бы хорошо...
    Из хаоса в космос
  • 3.5 часа разработки в Колибри, это просто невероятно!
    Спасибо за чудесный редактор! Он действительно ощущается взрослой стабильной программой в которой удобно вести разработку. Ух, как давно я этого хотел :D

    По найденным недоработкам:
    1. Хотелось бы хоткей для выделения слова
    2. Реализовать Shit-tab для строки/выделения
    3. Массовое передвижение строк (выделения) не работает, только одна строка двигается
    4. Нет подсветки экранированных символов в строке, но это мелочь "\tBMP\0GIF\0ICO\0CUR\0JPEG\0JPG\n"
    Spoiler:
    SCR_1.PNG
    SCR_1.PNG (525.1 KiB)
    Viewed 4707 times
    Из хаоса в космос
  • Leency, спасибо за отзыв, а также за предложения по улучшению!

    По поводу C--: отличить C-- от C, конечно нельзя. Можно сделать переключение на C-- в меню language.
    Leency wrote: По найденным недоработкам:
    ...
    1. Какой именно хоткей сделать?
    2. Shift-tab почему-то не работает в режиме ascii, если включена русская раскладка. В этом можно убедиться, если открыть программу keyascii, переключиться на русскую раскладку и нажать shift-tab. Программа никак не отреагирует. Поэтому, мне пришлось использовать shift-bksp.
    3, 4. Это можно сделать, чуть позже, когда будет время.
  • Может не заморачиваться и сделать просто подсветку bool, NULL, dword, byte в Си? Не важно что это не стандарт, ведь это повсеместно используют, и это ничего не поламает.

    1. Ctl+E.
    5. Если слово выделено, что Ctrl+F не ставит курсор в поле ввода. Можно это убрать? Чтобы Ctrl+F всегда ставил курсор в поле ввода.
    (Если нет, то хоть чтобы Ctrl+F уже при открытой панели стали ставил курсор на поиск)
    Из хаоса в космос
  • Leency wrote: А как отличить С-- файл от Си?
    Можно изменить расширение, по аналогии с С++.
    C = .c
    C++ = ,cpp
    C-- = .cmm
    to infinity and beyond
  • Так оно и было C-- = .cmm, .c--, .h--
    Пока кто-то не сумев настроить подсветку в зависимости от расширения в своём редакторе не переименовал .c-- файлы в .c и .h
  • Ещё одно: было бы хорошо помечать как-то табы в которых есть несохраненные изменения.
    Из хаоса в космос
  • Появилось немного времени.

    r9410:
    Leency wrote:Если окно CEdit свернуть в заголовок, то надпись на заголовке окна пропадает.
    Исправлено. Также исправлен еще один, намного более серьезный баг.
    Leency wrote:Может не заморачиваться и сделать просто подсветку bool, NULL, dword, byte в Си?
    Ладно, пока так и сделал.
    Leency wrote:1. Хотелось бы хоткей для выделения слова
    Сделано (ctrl+E).
    Leency wrote:Если слово выделено, что Ctrl+F не ставит курсор в поле ввода
    Сделано. Курсор всегда ставится в поле "find".
    Leency wrote:Ещё одно: было бы хорошо помечать как-то табы в которых есть несохраненные изменения.
    Сделано, измененные тексты помечаются символом "*". Также, я убрал надпись "modified" в правом нижнем углу.
    Leency wrote: 3. Массовое передвижение строк (выделения) не работает, только одна строка двигается
    4. Нет подсветки экранированных символов в строке, но это мелочь "\tBMP\0GIF\0ICO\0CUR\0JPEG\0JPG\n"
    Это пока отложено, я решил не делать всё сразу. Сделаю позже.
  • r9413:
    Leency wrote:3. Массовое передвижение строк (выделения) не работает, только одна строка двигается
    Сделано.
    Leency wrote:4. Нет подсветки экранированных символов в строке, но это мелочь "\tBMP\0GIF\0ICO\0CUR\0JPEG\0JPG\n
    Сделано. Только я не стал подбирать цвет для выделения escape-последовательностей и оставил такой же, как для строк. Поэтому визуально \t, \n и т. п. сейчас не выделяются.

    cedit.ini:

    Code: Select all

    [color_Dark]
    ...
    string=245,238,162
    escape=245,238,162
    ...
    
    [color_Light]
    ...
    string=0,128,0
    escape=0,128,0
    ...
    Можешь сам подобрать цвет (escape=...) и закоммитить измененный cedit.ini.
  • Who is online

    Users browsing this forum: No registered users and 5 guests