Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

Alextpp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CudaText
Кроссплатформенный, open source, редактор кода.
 
Страница - http://uvviewsoft.com/
Вики-справка - http://wiki.freepascal.org/CudaText
Github - https://github.com/Alexey-T/CudaText
Скачать - программа, аддоны, аддоны-2, лексеры
 
Версии
- Windows (x32/x64)
- Linux (GTK2, Qt4; x32/x64/ARM)
- macOS
- FreeBSD (x32/x64)
- Solaris (x64)
 
Есть много плагинов на Python. Есть 200+ лексеров.
Все в "Plugins/ Addon Manager/ Install".
 
Это напоминает Sublime Text на новом движке. Есть диалог всех команд (F1). Есть кое-что еще похожее. Система конфиг файла похожа. Копируем из конфига default строки и пишем их в конфиг user. И меняем уже в файле user.
 
Плагины к CudaText от kvichans (закрыта с предложением использовать тему CudaText).

Всего записей: 1111 | Зарегистр. 01-11-2004 | Отправлено: 20:33 04-08-2015 | Исправлено: Skif_off, 23:04 02-09-2020
Larianx

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

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

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

Всего записей: 68 | Зарегистр. 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) начинаю подозревать, что они в принципе это не умеют.  
Также, скорее всего, тулбар не является динамической сущностью, на котором плагин мог бы менять кнопки на лету. Например, выделил текст - предоставились нужные действия (прямо офис )))
Конечно тут возникают вопросы производительности, но если плагин активируется аки лексер на нужные файлы, то все будет нормально.
То есть должен быть в тулбаре сегмент (чтобы он был на каждом профиле) для кнопок плагинов где подключенные плагины на событиях могли менять под себя в рантайме.
 
 

Всего записей: 68 | Зарегистр. 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

Всего записей: 68 | Зарегистр. 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 и успокоился.
 

Всего записей: 68 | Зарегистр. 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?
 
Запутался, извините.

Всего записей: 29390 | Зарегистр. 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!)

Всего записей: 29390 | Зарегистр. 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, но не нашел того, что относится к тексту.

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



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

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

Всего записей: 29390 | Зарегистр. 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" еще далеко.

Всего записей: 68 | Зарегистр. 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
 
Лексер - тупиковый путь. Вот как лексером подписать над узлом сумму каких-то значений вложенных узлов? И это простой случай, а текст в ноде полностью зависит от содержимого - тут только кодом.

Всего записей: 68 | Зарегистр. 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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru