CudaText - [13] :: Программы :: Компьютерный форум Ru.Board
Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » CudaText

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

Открыть новую тему     Написать ответ в эту тему

Alextpp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

CudaText — кроссплатформенный текстовый редактор, написанный на Object Pascal. Это проект с открытым исходным кодом, который можно использовать бесплатно, даже в коммерческих целях. Он запускается довольно быстро: ~0,3 секунды с ~30 плагинами, на Linux на CPU Intel Core i3 3GHz. Он расширяется дополнениями Python: плагинами, линтерами, парсерами дерева кода, внешними инструментами. Синтаксический анализатор имеет богатый функционал, от движка EControl.
Функции
  • Подсветка синтаксиса для многих языков ( более 300 лексеров ).
  • Дерево кода: структура функций/классов и т. д., если лексер это позволяет.
  • Сворачивание кода.
  • Множественные каретки и множественный выбор.
  • Найти/Заменить с помощью регулярных выражений.
  • Конфигурации в формате JSON. Включая конфигурации, специфичные для лексера.
  • Интерфейс с вкладками.
  • Разделить вид на основной/дополнительный. Разделить окно на 2/3/4/6 групп вкладок.
  • Палитра команд с нечетким соответствием.
  • Миникарта. Микрокарта.
  • Показывать непечатаемые пробелы.
  • Поддержка множества кодировок.
  • Настраиваемые горячие клавиши.
  • Двоичный/шестнадцатеричный просмотрщик файлов неограниченного размера (может отображать логи размером до 10 Гб).
  • Корректно сохраняет двоичные файлы.
     
    Ссылки:
  • Вики-справка
  • GitHub
  • аддоны
  • аддоны-2
  • лексеры
  • Плагины [?] к CudaText от kvichans (закрыта с предложением использовать тему CudaText)
     
    Скачать: (История версий)
  • https://cudatext.github.io/download.html
  • https://sourceforge.net/projects/cudatext/files/release/
  • https://sourceforge.net/projects/cudatext/files/addons_all/

  • Всего записей: 1111 | Зарегистр. 01-11-2004 | Отправлено: 20:33 04-08-2015 | Исправлено: Lin1980, 21:37 24-02-2025
    Larianx

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    На кнопки кто-нибудь бы ругался.  

    И они могли бы просто могли убрать их.
     
    А мы ругаемся на то, что нет кнопок.
    Но мы можем добавить их.
     
    Кто прав? Кого ущемлять?  
     
    Кнопок заслуживают те действия, которые являются базовыми для редактора текстов и  требуют множественных повторов. 10 раз сбегать в меню - перебор. Хоткеи  не выход - их не упомнишь во всех программах.  
     
     
    А еще правильно было бы сделать кастомизируемый тулбар, чтобы туда можно было размещать и toogle-кнопки и подменю с кнопками и другим и они жили бы активной жизнью, а не то, что щас -  ни на что не реагируют
     
    А еще хорошо было бы иметь профили для тулбара и меню. Какой то тип документа - бумс, сменился набор для этого документа, как вот лексер автоматически применяется. Меню вот меняется при выборе языка, а тулбару нужна перезагрузка почему то. А так бы можно было бы создать "меню+тулбар" для типа документа. И тогда не только бы лексер применялся, а еще и удобное окружение.
     
    А еще бы я хотел объектное api+события, но...мечты мечты. Объектное апи я и сам сооружу, а с событиями увы.
     
    но мне скажут - все это сложно.

    Всего записей: 70 | Зарегистр. 19-04-2008 | Отправлено: 16:04 28-04-2017
    Alextpp



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    конкретики мало.
    Конкретика.
    Если сделаете плагин из Make Plugin, то ставьте там on_lexer.
    В on_lexer вы можете делать что хотите.
    Тут можете менять тулбар или меню или там ..цвета менять...
    Можете сделать что хотите.
     
    welcome
     
    как вы будете менять меню. Копировать кусок ConfigMenu?

    Всего записей: 1111 | Зарегистр. 01-11-2004 | Отправлено: 16:38 28-04-2017
    Larianx

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пишу мысли. Сразу предупреждаю, что я не знаток внутренностей редактора. Я только с sw переползаю.
     
     
    Конкретика про апи
     
    Объектный апи это фломастеры. Вместо таскания хендлов по функциям добираемся до нужного объекта и далее либо манипулируем им либо подписываемся на его события. Объектные обертки над апи сделать не проблема, а вот события проблема. Мало их, этих событий. Мы вот не можем подписаться на события дерева кода "изменилось" чтобы побежать и свое дорисовать. Да и дорисовать наверное не можем - только удалять/пересоздать те же ноды.
     
    Не скажу, что это лучше своего дерева, но для примера сойдет
     
     
    Конкретика про профили
     
    Перестраивать меню на лету непрактично. Тем более некому его перестраивать - для каждого типа документа писать плагин не не. Наследование меню тоже неудобно. А значит остается один вариант - полностью хранить пару меню+тулбар и позволять менять их в рантайме. Сейчас меню после локализации меняется, а вот плагин для тулбара почему то просит перезагрузки (видать тулбар в рантайме не поменять).  
    Решение страдает проблемами невидимости новых опций новых фич или установки плагинов (хотя тут можно создать раздел меню "все плагины", чтобы они были в каждом профиле) - но эта проблема и без профилей есть.
     
    Если тулбар можно менять без перезагрузки, то можно написать плагин...только вот он должен зависеть не от лексера, а от расширения файла. Указание профиля для нового файла без расширения как сейчас выбирается лексер - ну наверное плагин по старту редактора должен вписать в меню те профили, что найдет - и тоже должен быть независимым сегментом в меню, иначе потеряется.
     
    конкретика про тулбар.
     
    Я не знаток внутренностей, но видя то, что кнопки тулбара не держат состояния (в отличие от sw) начинаю подозревать, что они в принципе это не умеют.  
    Также, скорее всего, тулбар не является динамической сущностью, на котором плагин мог бы менять кнопки на лету. Например, выделил текст - предоставились нужные действия (прямо офис )))
    Конечно тут возникают вопросы производительности, но если плагин активируется аки лексер на нужные файлы, то все будет нормально.
    То есть должен быть в тулбаре сегмент (чтобы он был на каждом профиле) для кнопок плагинов где подключенные плагины на событиях могли менять под себя в рантайме.
     
     

    Всего записей: 70 | Зарегистр. 19-04-2008 | Отправлено: 17:06 28-04-2017
    Alextpp



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ...Пока только-
    можно сделать tree_proc action который добавит-убавит подписку на callback
     
    Добавлено:

    Цитата:
    тулбар не является динамической сущностью, на котором плагин мог бы менять кнопки на лету

     
    Про это -
    http://wiki.freepascal.org/CudaText_API#toolbar_proc
     
    Добавлено:
    Про "состояния" кнопок можно добавить АПИ.
     
    Добавлено:
    Добавил -
    toolbar_proc,
    TOOLBAR_GET_CHECKED
    TOOLBAR_SET_CHECKED

    Всего записей: 1111 | Зарегистр. 01-11-2004 | Отправлено: 18:47 28-04-2017
    Alextpp



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
     
    1.8.3
    + api (reworked dlg_proc)
    + Addon Manager: plugin Updater (like SynWrite)
    * Addon Manager: used new channels url
    + Windows: support font ligatures (font Fira Code, only if caret not on line)
    + option font_ligatures
    + dlg Find: must show on top of CudaText dialogs
    + toolbar: add buttons Indent, Unindent
     

     
    Добавлено:
    Учел пожелания про кнопки toolbar Indent/unindent.

    Всего записей: 1111 | Зарегистр. 01-11-2004 | Отправлено: 10:28 02-05-2017
    Larianx

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    добавил

     
    А мы ждем билдов
     
    Alextpp
     
    А никак нельзя иконку сменить на другую? А то текущая очень похожа на иконку bat/com/... файлов. Просто ну очееень. У sw иконка хорошая, сменить цвет карандаша и будет хорошо и для cuda

    Всего записей: 70 | Зарегистр. 19-04-2008 | Отправлено: 11:27 02-05-2017
    Alextpp



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Larianx
    Билд 1.8.3 выложен.
    Иконку- присылайте, посмотрим, может тоже не очень

    Всего записей: 1111 | Зарегистр. 01-11-2004 | Отправлено: 15:06 02-05-2017 | Исправлено: Alextpp, 15:07 02-05-2017
    Larianx

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alextpp
     
    Да с иконкой все просто. Взять от sw и заменой цвета заменить цвет карандаша на ней на...оранжевый хотя бы.  
    Правда мне привычен зеленый, а потому просто  в ехе заменил иконку на взятую из sw и успокоился.
     

    Всего записей: 70 | Зарегистр. 19-04-2008 | Отправлено: 12:36 04-05-2017
    Alextpp



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Larianx
    да, это просто. Но Synw имеет иконку вобщем такую, 3Д.  А Куда плоская. Я подбирал иконку только плоскую. кстати. есть на IconsFinder платные ОК иконки. Даже плоские. Одна за долларов 10-20. (не хотел покупать.)

    Всего записей: 1111 | Зарегистр. 01-11-2004 | Отправлено: 16:29 04-05-2017 | Исправлено: Alextpp, 16:31 04-05-2017
    Alextpp



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Версия 1.8.5
     

    Цитата:
     
    - fixed for Windows high dpi (scale more UI items)
    - fix slow scrolling with minimap shown
    + option ui_tree_theme
    + command "place bookmarks on carets"
     

    Всего записей: 1111 | Зарегистр. 01-11-2004 | Отправлено: 11:51 10-05-2017
    WildGoblin



    Ru-Board Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    2All
    Скажите пожалуйста - данный редактор альтернатива/замена SynWrite?
     
    Запутался, извините.

    Всего записей: 33580 | Зарегистр. 15-09-2001 | Отправлено: 17:43 14-05-2017
    Alextpp



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    WildGoblin
    Да, я бы хотел чтобы все перешли с SynWrite на CudaText, это замена
    Пока не все фичи скопированы, нет пока editor tooltips.

    Всего записей: 1111 | Зарегистр. 01-11-2004 | Отправлено: 18:16 14-05-2017 | Исправлено: Alextpp, 18:17 14-05-2017
    WildGoblin



    Ru-Board Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alextpp

    Цитата:
    Да, я бы хотел чтобы все перешли с SynWrite на CudaText, это замена
    Отлично, спасибо!
     
    (Наконец-то можно будет перейти на x64 TotalCommander!)

    Всего записей: 33580 | Зарегистр. 15-09-2001 | Отправлено: 11:01 15-05-2017
    Alextpp



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А при чем тут TotalCmd, CudaText к нему не относится, и плагина тут нету (в Synwrite есть WLX).

    Всего записей: 1111 | Зарегистр. 01-11-2004 | Отправлено: 13:22 15-05-2017
    Larianx

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alextpp
     
    Есть возможность напрямую менять цвет текста через апи, а не через лексер? В доке много упоминаний color, но не нашел того, что относится к тексту.

    Всего записей: 70 | Зарегистр. 19-04-2008 | Отправлено: 17:44 15-05-2017
    WildGoblin



    Ru-Board Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alextpp

    Цитата:
    А при чем тут TotalCmd, CudaText к нему не относится, и плагина тут нету (в Synwrite есть WLX).
    И правда нет - невнимательно там прочитал!
     
    А есть в планах сделать плагин для тотала (или проще повесить вызов CudaText на F4)?

    Всего записей: 33580 | Зарегистр. 15-09-2001 | Отправлено: 19:06 15-05-2017
    Alextpp



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    WildGoblin
    Есть в планах -то есть было, но когда начал делать, наткнулся на дубли ввода символов, поправить не смог.
     
     
     
    Добавлено:
    Larianx
    Плагин Bracket Hilite меняет,
    он берет диапазон и вызывает ed.attr()
     
    А вы просто так сказали что напишите что-то, раньше?

    Всего записей: 1111 | Зарегистр. 01-11-2004 | Отправлено: 19:33 15-05-2017 | Исправлено: Alextpp, 19:36 15-05-2017
    Larianx

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alextpp
     
    Нет, не просто так.
     
    Я планирую писать личные (а кому они еще нужны то) плагины для поддержки пользовательских структур. Они могут быть json-based (json это абстрактный формат в котором можно выразить бесконечное множество пользовательских структур данных) и неразумно отказываться от подсветки лексера. А вот свое дерево не всегда хотелось бы рисовать. Например, для структуры вида
    {
       "name": "foo",
       "value": 1
    },
    {
       "name": "bar",
       "value": 1
    },
    хотелось бы иметь возможность подписать над узлом имя узла. Но для этого нужно ловить события дерева кода, а с событиями, как я понял, дело обстоит не очень, да и в узле текст не изменить, придется перестраивать все дерево, что равносильно уже "построй дерево сам".
     
    Возможность выделить цветом. же нужна для отметки чего либо специфического для доменной области.  
     
    Также очевидно, что бегать в меню плагинов очень неудобно, а значит для файла должен включиться свой профиль работы с файлом - меню+кнопки+дерево и это основано не на расширении файла (он почти везде json), да и просто смена workspace очень полезная, но должна работать без перезагрузки и иметь мощный тулбар(ы).
     
    Вот я и выясняю возможности и стараюсь убедить автора по возможности убрать грабли, на которые я буду наступать, когда руки дойдут до реализации. Ну или пояснить как быть иначе. Неинтерактиный и недостаточно мощный тулбар, недостаток событийной модели, процедурный апи - граблей хватает.
     
    Начну я писать со своей обертки над апи. Я очень не люблю процедурные апи (вы явно выраженный сишник) и в моем понимании все элементы блокнота могут быть представлены как объекты-контролы, к любому из которых можно достучаться и вызывать его методы, а также подписываться на события.
     
    У вас монументальный процедурный апи и я сомневаюсь, что вы согласитесь переделать на объектно-событийную модель, а значит придется писать модульную обертку. Да и кому он кроме меня нужен? Пользователям не нужен, а плагино-писатели не жаловались и на текущий.  
     
    Я смотрел - разделить на модули спрятав кишки за удобными модулями проблем нет. Непонятно как быть с событиями контрола, но я в них особо и не разбирался.
     
    Просто я еще изучаю питон и как только уровень будет достаточный, то тогда примусь. Пока что мне сложно мыслить категориями питона - этого его модульный подход непривычен. Мне непривычен событийный подход, как он сделан в классе Command каждого плагина. Я скачал полный список плагинов и потихоньку просматриваю, но для "хорошо разбираюсь как устроен ct" еще далеко.

    Всего записей: 70 | Зарегистр. 19-04-2008 | Отправлено: 20:40 15-05-2017 | Исправлено: Larianx, 20:41 15-05-2017
    Alextpp



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    хотелось бы иметь возможность подписать над узлом имя узла. Но для этого нужно ловить события дерева кода

    Кажется, тут надо делать так- копируете лексер JSON в JSON_my, и правите его (есть 3 туториала в Readme).
     
    Добавлено:
    Т.к. вы опытный, советую именно этот туториал Питона
    https://likegeeks.com/python-programming-basics/

    Всего записей: 1111 | Зарегистр. 01-11-2004 | Отправлено: 20:56 15-05-2017
    Larianx

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alextpp
     
    Лексер - тупиковый путь. Вот как лексером подписать над узлом сумму каких-то значений вложенных узлов? И это простой случай, а текст в ноде полностью зависит от содержимого - тут только кодом.

    Всего записей: 70 | Зарегистр. 19-04-2008 | Отправлено: 21:00 15-05-2017
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

    Компьютерный форум Ru.Board » Компьютеры » Программы » CudaText


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2025

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru