Редактор текста CudaText

Обсуждение любых программ, не имеющих отношения к Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
AlexTP1
Сообщения: 46
Зарегистрирован: Сб июл 27, 2024 21:39

Сообщение AlexTP1 »

Можете запостить весь файл settings/macros.json, чтобы не набивать его руками?

Posted after 6 minutes:

Я сделал почти тот же макрос с строкой-регекс w+ (все буквы 'w').
И он работает даже после старта проги.
Отличие есть.
Вот мой файл settings/macros.json

Код: Выделить всё

{
    "ver": "20151204",
    "list": [
        {
            "id": 30803,
            "nm": "Tst",
            "rec": "2492,findfirst\u0001w+\u0001\u0001rwaA\n2492,findsel\u0001w+\u0001\u0001rwaA\n1006\n655620\n153\n1000\n",
            "evl": [
                "ed.cmd(cmds.cmd_FinderAction,'findfirst\\x01w+\\x01\\x01rwaA')",
                "ed.cmd(cmds.cmd_FinderAction,'findsel\\x01w+\\x01\\x01rwaA')",
                "ed.cmd(cmds.cCommand_ClipboardCopy)",
                "ed.cmd(cmds.cCommand_SelectAll)",
                "ed.cmd(cmds.cCommand_KeyDelete)",
                "ed.cmd(cmds.cCommand_ClipboardPaste)"
            ]
        }
    ],
    "dlg_prs": {},
    "tm_ctrl": {
        "rp_ctrl": 300,
        "tm_wait": 10
    }
}
Я заюзал другую команду из длг поиска - клик на "...", потом "Select all".

Posted after 4 minutes:

В моем макросе первый поиск (findfirst) не нужен.
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

AlexTP1 писал(а):Можете запостить весь файл settings/macros.json, чтобы не набивать его руками?

Код: Выделить всё

{
    "ver": "20151204",
    "list": [
        {
            "id": 60331,
            "nm": "Macro5",
            "rec": "2492,findfirst\u0001[-a-zA-Z0-9@:%_\\+.~#?&\\/=]{2,256}\\.[a-z]{2,4}\\b(\\/[-a-zA-Z0-9@:%_\\+.~#?&\\/=]*)(([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-]))?\u0001\u0001raA\n2596\n1006\n655620\n171\n1000\n",
            "evl": [
                "ed.cmd(cmds.cmd_FinderAction,'findfirst\\x01[-a-zA-Z0-9@:%_\\\\+.~#?&\\\\/=]{2,256}\\\\.[a-z]{2,4}\\\\b(\\\\/[-a-zA-Z0-9@:%_\\\\+.~#?&\\\\/=]*)(([\\\\w_-]+(?:(?:\\\\.[\\\\w_-]+)+))([\\\\w.,@?^=%&:/~+#-]*[\\\\w@?^=%&/~+#-]))?\\x01\\x01raA')",
                "ed.cmd(cmds.cmd_FindAllAndSelect)",
                "ed.cmd(cmds.cCommand_ClipboardCopy)",
                "ed.cmd(cmds.cCommand_SelectAll)",
                "ed.cmd(cmds.cCommand_TextDeleteLine)",
                "ed.cmd(cmds.cCommand_ClipboardPaste)"
            ]
        }
    ],
    "dlg_prs": {},
    "tm_ctrl": {
        "rp_ctrl": 300,
        "tm_wait": 10
    }
}
У вас разница как я понял в том что "ed.cmd(cmds.cmd_FinderAction,'findsel\\x01w+\\x01\\x01rwaA')", прописано, а я использую запись с экрана, нажимая на кнопки, как прописать кнопками как у вас не знаю, но разве просто кнопки выделитть все найденное не должно быть достаточно..
В моем макросе первый поиск (findfirst) не нужен.

Не понял? а это что тогда?
"ed.cmd(cmds.cmd_FinderAction,'findfirst\\x01w+\\x01\\x01rwaA')",
Я вобще не эксперт если что, говорю что вижу.

Важный момент был в том что почему то проге надо чтоб был выделен регексп в меню поиска, само меню можно скрыть после этого.
Про перезапуск программы сказал потому что поле поиска очищается. НО можете крестиком его очистить и оставить окно поиска открытым и макрос работать норм не будет, хотя должен..
/
Давайте тогда так - как это прописать

Код: Выделить всё

ed.cmd(cmds.cmd_FinderAction,'findsel\\x01w+\\x01\\x01rwaA')
не редактируя файл , а через запись с экрана? если я правильно понимаю это как раз дает команду выделить все вхождения с параметром что выделить . А у меня оно прописывается лишь 1 раз при поиске.
Последний раз редактировалось Lnk Вс июл 28, 2024 14:49, всего редактировалось 1 раз.
Аватара пользователя
AlexTP1
Сообщения: 46
Зарегистрирован: Сб июл 27, 2024 21:39

Сообщение AlexTP1 »

а я использую запись с экрана, нажимая на кнопки, как прописать кнопками как у вас не знаю,
В моем макросе 2 поиска.
Вы сделайте только второй из них при записи:

- ввели текст поиска
- прожали все флаги (regex)
- потом кликаете "..." в длг поиска и там есть "Select all"

Помогло?

Posted after 3 minutes:
Lnk писал(а):момент был в том что почему то проге надо чтоб был выделен регексп в меню поиска
Да, команде "find all and select" (из палитры команды) надо включенный флаг regex. И заполненый текст поиска.

Posted after 2 minutes:

Переделайте макрос - как у меня, и все заработает.
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

Переделайте макрос - как у меня, и все заработает

понял, через меню три точки только видимо, я их не использовал.
Думаю да все так сработает, проверю отпишусь.
/
Подтверждаю, все работает.

значит загвоздка в этом
Да, команде "find all and select" (из палитры команды) надо включенный флаг regex. И заполненый текст поиска.
Буду действовать через ...

СПАСИБО! :D
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Круто.
Давно я так не радовался решению чужой проблемы.
Вам определенно повезло Lnk, что мастер сам к вам пришел и помог :)
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

Это да, повезло :D

И кстати с этим работающим макросом можно пойти и дальше, и следующим шагом отсеять напр ссылки по определенному критерию. Многие расширения конечно способны сейчас вытаскивать из кода ссылки, но почти никто не умеет работать с меняющимся DOM контентом.
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

Хотел бы спросить а в CudaText есть Javascript Beautifier?
Я покопался в плагинах, не нашел, HTML Beautify есть.
Чтоб понятней было - имеется ввиду как то сделать такое можно ли
https://codeamaze.com/web-viewer/javascript-viewer
Аватара пользователя
AlexTP1
Сообщения: 46
Зарегистрирован: Сб июл 27, 2024 21:39

Сообщение AlexTP1 »

Да, есть.
1. Ставим CudaFormatter плагин.
2. к нему ставим подплагин "formatter: JavaScript_JSON".

Как пользоваться CudaFormatter:
https://wiki.freepascal.org/CudaText_plugins

Сделать такое же как на сайте https://codeamaze.com/web-viewer/javascript-viewer , в теории можно, ваш плагин может создать диалог с 2 большими полями, и может вызывать действия из cudaFormatter (наверное, не проверял). Или просто скопировать в плаг часть кода из cudaFormatter. Реагировать на on_change из 1го поля, плаг может.
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

AlexTP1, как выяснилось у меня эти плагины стоят по умолчанию)
Я пытался обычно через лексеры (там javascript,javascript ES6, json и json^) , но они просто раскрашивают.
Попытался теперь через Плагины-CudaFormatter, но ничего не добился.
Кстати там в configure formatters только HTML Beautify стоит.

Вобще в основном имею дело с расширениями, там Beautify это обычно не только раскраска(я потому так и стал ее понимать-что раскидывают код для чтения неспецов типа меня), взял одно из расширений, следы привели Written by Einar Lielmanis, jsbeautifier.org
All of the source code is completely free and open, available on GitHub under MIT licence, and we have a command-line version, python library and a node package as well.
github.com/beautifier/js-beautify в расширении оно работает, может и как то в то Cuda можно было бы это прикрутить, а может и без допов можно сделать как то, но ни того ни другого я не знаю как.

Спасибо за ответ и за информацию AlexTP1! Не так сильно важно, не вышло и не вышло, буду по старинке)
Аватара пользователя
AlexTP1
Сообщения: 46
Зарегистрирован: Сб июл 27, 2024 21:39

Сообщение AlexTP1 »

Попытался теперь через Плагины-CudaFormatter, но ничего не добился.
Кстати там в configure formatters только HTML Beautify стоит.
Попробуйте сделать шаги как и я.

1. установили CudaFormatter, и форматтер JavaScript_JSON
2. рестарт Куды
3. открыли файл с лексером JavaScript. Ввели кривые пробелы около слов чтобы форматтер чтото делал.
4. вызов Plugins / CudaFormatter / Formatter (menu) - должен показать 4 форматтера для JS. Первый из них JS Beautify. Он должен поправить пробелы в файле.

Вызов Options / Settings-plugins / CudaFormatter / Configure formatter (с активным лексером JavaScript) у меня показывает JS Beautify.

Вы повторили это?
В консоли Куды есть ошибки (нижняя панель)?

Posted after 4 minutes:
github.com/beautifier/js-beautify в расширении оно работает, может и как то в то Cuda можно было бы это прикрутить
Сначала повторите мои шаги. Потом уже когда форматтер текущий заработает, подумаем как прикрутить это.

Posted after 13 minutes:

Кажись уже и так этот ваш модуль мой форматер юзает.
Те же папки.
Только в Гитхабе версия новее.
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

AlexTP1, все шикарно заработало! там в консоли писало нет форматтера.

Повторил ваши шаги, на всякий переустановил CudaFormatter и форматтер JavaScript_JSON и теперь и без пробелов все шикарно!
Спасибо большое AlexTP1!

А нельзя чтоб он запомнил это? или наметку как кнопку сделать? через макрос не запоминает. НУ я его сделал per-lexer A, все что смог.
(если нельзя кнопкой-не страшно, буду лазить при каждом файле, главное работает!).
Последний раз редактировалось Lnk Вт янв 28, 2025 13:14, всего редактировалось 1 раз.
Аватара пользователя
AlexTP1
Сообщения: 46
Зарегистрирован: Сб июл 27, 2024 21:39

Сообщение AlexTP1 »

Ну вот. Заработало. Ну хорошо. Да, по вашей ссылке лежит более новая версия питон-кода. Обновился на нее. Форматтер обновлен в AddonManager.
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

AlexTP1, Шикарно! Тогда еще раз обновлюсь)
Если будет наметка как сделать чтоб запомнил или кнопку как сделать, напишите плиз.
Аватара пользователя
AlexTP1
Сообщения: 46
Зарегистрирован: Сб июл 27, 2024 21:39

Сообщение AlexTP1 »

как сделать чтоб запомнил или кнопку как сделать
Не понял вопросы, уточните.
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

Ну я имею ввиду в меню чтоб не лазить
вызов Plugins / CudaFormatter / Formatter (menu) - JS Beautify при каждом файле.

А хотя кнопку можно на меню сделать, через тулбар. Подойдет)

Спасибо за помощь!
Ответить