LINUX.ORG.RU

CudaText 1.148.0

 , , ,


0

1

CudaText — это свободный кроссплатформенный редактор кода, написанный на Object Pascal. Редактор поддерживает расширения на Python и имеет несколько особенностей, заимствованных из Sublime Text. На wiki-странице проекта перечисляются преимущества над Sublime Text.

Редактор подойдет продвинутым пользователям и программистам (доступно больше 270 синтаксических лексеров). Некоторые возможности IDE доступны в виде плагинов. Репозитории проекта находятся на GitHub. Для запуска в Linux есть сборки на основе GTK 2 и Qt 5. CudaText отличается относительно быстрым запуском (около 0,2 секунды на CPU Core i3).

За 4 месяца с предыдущего анонса реализованы следующие улучшения:

  • Автозакрытие HTML-тега при наборе открывающего тега. Также редактор закрывает тег при наборе скобки+слеша </.
  • Опция renderer_anti_flicker для решения проблемы мерцания текста при наборе, при активном лексере и большом файле.
  • Опция для сохранения расцветки лексера при выделении — выделение меняет только цвет фона.
  • Разные мелкие улучшения в автозавершении CSS и HTML. Обновлены списки тегов и свойств.
  • Можно показать текущий масштаб текста в полосе статуса.
  • Быстрее открываются большие папки в плагине Project Manager.
  • Переработана отрисовка текста при указании spacing_y:-1 … -2. Это дает возможность гораздо плотнее отрисовывать текст, больше строк видно сразу.
  • Новый параметр командной строки -p, запускающий плагин Differ прямо из командной строки для двух файлов.
  • Микрокарта может быть отрисована почти как в VSCode: прямо поверх вертикальной полосы прокрутки (по опции).
  • Микрокарта может показывать отметки для закладок.
  • Команда «добавить в выделение следующее вхождение слова» теперь делает перенос на начало документа с конца. Плюс добавлена команда «пропустить следующее вхождение» (по аналогии с Sublime Text).
  • Три старые команды для макросов (начало записи, стоп, отмена) заменены на одну, которая делает и начало записи и стоп. При записи макроса редактор теперь показывает огромную красную рамку.
  • Добавлена опция paste_multiline_at_line_start для похожести команды Вставить на Sublime/VSCode, но по умолчанию это выключено.
  • Добавлена команда «расширить выделение на строку выше» (раньше была только для расширения на строку ниже).
  • Drag-and-drop разрешен на кнопку «+» и пустое место на полосе вкладок.
  • Добавлена опция caret_proximity_vert, которая позволяет держать каретку на удалении от верхнего и нижнего края редактора (пока мы не докрутили до начала/конца текста). Довольно редко встречается в других редакторах.
  • Добавлена поддержка Python 3.10.

>>> Страница программы



Проверено: AP ()

Ответ на: комментарий от TI_Eugene

К сожалению стандарт де-факто при общении с отечественными авторами на выходе получается «тебе надо - ты и делай».

может это и так, но я лично такой подход не одобряю. на LOR я так не отвечал. даже касательно «найти либу питона» тут в треде.

Alexey_Tor_ ()
Ответ на: комментарий от anonymous

имакс - не легковесный + высокий порог вхождения

Если в другие редакторы добавить всё то, что умеет emacs, они тоже потяжелеют и усложняться. Если использовать emacs в режиме блокнота — то он и запускается мгновенно и пользоваться им очень просто.

ugoday ★★★★★ ()
Ответ на: комментарий от matumba

Ну кому нужен редактор, слепленый ИЗ БРАУЗЕРА?!?!!? Вы ещё б*** из тетриса его сделайте!

Так нынче все сделано из браузера. Ставишь мелкую софтинку, а там электрон.

Zhbert ★★★★★ ()
Ответ на: комментарий от matumba

И конечно же, без идиотии вроде «плагинного языка» в виде Lua, пестон, васик и прочей нечисти. Собственно, а почему язык плагина должен отличаться от основного-то?!?! Мало ли, что луа - скриптовый, КАК ИМЕННО его скриптовость должна помогать мне в ежедневной работе? (помимо того, что я ВООБЩЕ НЕ ВИЖУ кишок плагина)

Абзац про тетрис - в цитатник

Абзац про нелепость луа в написании плагином - давай обсудим. Для начала, сам то пробовал в свое приложение луа встроить?

pihter ★★★★ ()
Ответ на: комментарий от pihter

без идиотии вроде «плагинного языка» в виде Lua, пестон, васик и прочей нечисти. Собственно, а почему язык плагина должен отличаться от основного-то?!?!

потому что на питоне есть много написанного готового софта (либ). то есть если я хочу сделать форматировшик SQL, я просто ищу либу на сайте питона. если я хочу сделать LSP support, я тоже ищу либу. и нахожу. и т.д. А вот как бы я это делал с скриптовым языком pascal - ууууууу.

Alexey_Tor_ ()
Ответ на: комментарий от hobbit

Я неправильно выразился. Не читать PATH, а использовать его. Просто вызывать python --version. Если он есть в PATH, то путь определится автоматически. И это - кроссплатформенное решение.

baobab ()
Последнее исправление: baobab (всего исправлений: 2)
Ответ на: комментарий от anonymous

не хочется браться изучать Паскаль

паскаль все учили в школе
кстати, тебе хоть раз в жизни приходилось править исходники более-менее крупного редактора? что именно? только не плагины, где язык другой, как правило

anonymous ()
Ответ на: комментарий от anonymous

Паскаль мы не изучали. Я сам изучал Алгол. По книжке. Компов не было. В 90-е то. Уж какую книжку кто достал. Про исходники не понял. Нет, не приходилось. К чему вопрос?

anonymous ()
Ответ на: комментарий от anonymous

любой таксист-индус из Лондона знает английский лучше, чем любой

из местных

так тонко что аж толсто!

когда я спросил, индиджинес ли он, в ответ закатили глаза и два

раза переспросили чего я такое спросил

mumpster ★★★★★ ()

Редактор — крутейший! Авторы — молодцы!

Есть некоторое количество проблем, которые в той или иной мере затрудняют пользование редактором. Они, в принципе, устранимы. Но…

Если я не ошибаюсь, корень зла в том, что идейно очень много в архитектуре «прибито» к Микрософту. В Лазарусе, библиотеках, или ещё где…

Например,

>python3 --version
Python 3.6.7
>which python3
/usr/bin/python3

решает все проблемы с обнаружением питона и его использованием. И не надо ничего парсить. Но у Микрософт-систем нет полноценных ни «soft link», ни «hard link», и это не сработает.

То же самое касается попыток сохранения настроек в директорию с программой. Unix-разработчику бы это в голову не пришло — это же неосуществимо без sudo.

Становится понятно почему не корректно обрабатывается ввод с клавиатуры — для простоты кроссплатформенности нет нужды вникать в архитектуру XOrg и в гибкость его xkb-модуля. Как правильно заметили в комментариях: «олдсульно как в DOS» — сами будем интерпретировать нажатия клавиш — а чего там сложного?

У редактора огромный потенциал. Это шедевр. Жаль, если нелепые ограничения задушат его. Я видел много перспективных проектов, которые загибли только потому, что авторы не видели Вселенную Возможностей за пределами тюрьмы Микрософт-технологий.

Успех проекта, видимо, будет зависеть от принятия/непринятия правильных стратегических решений. Авторам — мудрости и вдохновения!

oneastok ()
Ответ на: комментарий от oneastok

Причина та же, что и в Sublime — редактор игнорирует текущую системную раскладку клавиатуры. Это не имеет значения, пока используется стандартная раскладка. Но это не мой случай…

а какие у тебя настройки раскладки?

у меня при setxkbmap -model pc104 -layout "us,ru" -option "grp:caps_toggle" везде все работает

anonymous ()
Ответ на: комментарий от matumba

VSCode занимает такую же тухлую нишу, как любители JS или похапэ. Ну кому нужен редактор, слепленый ИЗ БРАУЗЕРА?!?!!?

И как только умудрился 5 звёзд нафлудить, если живёшь в криобункере? Щас ВЕСЬ веб - это JS и почти весь - php. ПО собранное из браузера используется повсеместно. Если вы не в курсе, то вы отстали от прогресса и индустрия скоро отправит вас на пенсию, заменив студентом JS-программистом. И будет права.

Alve ★★★★★ ()
Ответ на: комментарий от anonymous

setxkbmap -model pc104 -layout «us,ru» -option «grp:caps_toggle»

Так это и есть стандартная раскладка.

У меня собственная таблица, задающая соответствия клавиш и символов. Наподобие Дворака, Колемака или Бирмана, но другая.

Технически, я задаю все эти параметры скопом, через keymap:

xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete+four_levels+four_levels_numpad" };
    xkb_compat    { include "complete" };
    xkb_symbols   { include "pc+inet(evdev)+happy-typist(numblock)+happy-typist(latin)+happy-typist(russian):2+happy-typist(switchers)+happy-typist(switchers):2" };
};

Затем, в одном скрипте это запускается примерно так:

xkbcomp -I "~/Administration/xkb" "keymap/my_layout" "$DISPLAY" &>>"debug/log.txt"
oneastok ()
Ответ на: комментарий от Deady

а чего в сборке macos не меняется цвет строки с табами при смене темы

проверил, нет повтора. строка с табами над полем редактора? или что? запиши в https://github.com/Alexey-T/CudaText/issues

Alexey_Tor_ ()
Последнее исправление: Alexey_Tor_ (всего исправлений: 1)
Ответ на: комментарий от oneastok

решает все проблемы с обнаружением питона и его использованием. И не надо ничего парсить. Но у Микрософт-систем нет полноценных ни «soft link», ни «hard link», и это не сработает.

нет, вы не поняли проблему. проблема не в поиске python3 binary, а в поиске python3 .so file. этот файл лежит где попало в разных линуксах.

То же самое касается попыток сохранения настроек в директорию с программой. Unix-разработчику бы это в голову не пришло — это же неосуществимо без sudo.

тут нет проблемы! опять вы что-то не поняли. прога если она не из DEB покета, то portable. и нет проблем сохранить конфиг!

Жаль, если нелепые ограничения задушат его.

какие именно ограничения? поиск python .so file это мелочь.

Alexey_Tor_ ()
Ответ на: комментарий от Alexey_Tor_

поиске python3 .so file. этот файл лежит где попало в разных линуксах

Например, Blender 3D, если скачивать архив с офф сайта, таскает нужный питон с собой. Может сделать также?

anonymous ()
Ответ на: комментарий от anonymous

Шустрый, но отсутствуют многие привычные для меня возможности.

И вот тут бы как раз привести списочек этих самых отсутствующих возможностей — был бы намного более полезный комментарий. :(

P.S. Вот и автор программы выше о том же написал.

hobbit ★★★★★ ()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от GenuZ

Да, но если с середины строки растягивать курсор на следующие строки и попадается пустая, он сбрасывает позицию курсора на начало строки.

Записал и сделал фикс для команд «extend carets: up/down». спасибо за замечание. будет в обновлении.

Alexey_Tor_ ()
Ответ на: комментарий от Alexey_Tor_

Вот весь список замечаний от LOR из history.txt :)

  • add: commands «extend carets: up/down» did not handle going over shorter lines («caret_after_end»:false); now caret column is restored when going long line-> short line-> long line (thanks @GenuZ from linux.org.ru)
  • add: new option «autocomplete_html_autoclose»: after typing <tag>, it auto-inserts </tag> (thanks @MOPKOBKA at linux.org.ru)
  • fix: minimap flickering on text typing (thanks anon at linux.org.ru)
  • fix: menu checkmarks in ‘=’ menu were not updated (thanks @wandrien at linux.org.ru)
  • fix: painting of selection rectangle on Qt5 (thanks @EXL at linux.org.ru)
  • add: Linux/BSD: app locates config in ~/.config if it was run from /opt/AnyDir (thanks linux.org.ru)
Alexey_Tor_ ()
Последнее исправление: Alexey_Tor_ (всего исправлений: 1)
Ответ на: комментарий от AHAH

Файл -> «Открыть папку …» Файл -> «Создать файл, из шаблона …» Ничего не происходит

Потому что питон еще не нашелся. в меню ‘plugins / python not found, find it’ найди питон и сделай рестарт. Вроде я же вывожу ошибку про это в статус?

Alexey_Tor_ ()
Последнее исправление: Alexey_Tor_ (всего исправлений: 1)
Ответ на: комментарий от wandrien

в самом редактируемом файле нельзя задавать настройки отступов?

не понял, что такое «настройки отступов»? как их можно где-то задавать? если ты про ширину tab-char то есть опция. если про величину indent для выделенного блока по ТАБ, то еще опция. это ищется по поиску в плагине Options Editor.

вот- tab_size, indent_size.

Alexey_Tor_ ()
Последнее исправление: Alexey_Tor_ (всего исправлений: 1)
Ответ на: комментарий от Alexey_Tor_

Автор, спасибо за чейнджлог!

Но я ещё вспомнил момент, буквально сейчас снова столкнулся!

Если вырезать вертикальный блок текста и вставить его в другой открытый текстовый файл, то ранее он так и вставлялся - вертикальным блоком, внедряясь во все строчки текста (начиная с той, на которой курсор).

То есть я выделяю вертикальный блок текста (на несколько строчек), копирую в буфер. Открываю другой документ, выбираю в нём нужную позицию (строку). Ставлю на неё курсор и вставляю этот из буфера ранее скопированный туда вертикальный блок. И в итоге он вставляется во все строчки ниже на всю свою длину.

Но с какого-то времени это поведение сломалось и вертикальный блок вставляется выше, вставляя пустые строчки. А если растянуть курсор на нужное количество строк (соответствующее длине вертикального блока) и попытаться вставить так - он вставит его перед каждой строчкой.

Приходится расчехлять другие редакторы, чтобы расставить эти вертикальные блоки нормально. И в N++ и во встроенном редакторе DoubleCommander - поведение нормальное (как ранее было и в CudaText).

GenuZ ()
Ответ на: комментарий от Alexey_Tor_

В emacs, vim, kate, gedit (с плагином), medit и моём форке medit-а эти настройки можно задавать прямо в комментах в самом редактируемом файле.

Вписал новые настройки, сохранил файл, настройки мгновенно применились.

В emacs и vim там на самом деле кроме настройки отступов и режима подсветки синтаксиса можно так задать практически что угодно.

wandrien ()
Ответ на: удаленный комментарий

Поиск парной скобки?

Да.
ИМХО это не сложно реализуется и должна быть «из коробки».
Это удобная фича …

Не мне вам объяснять как это удобно при «ковырянии» программ.
Да много пожеланий.
Пусть просто посмотрит на фичи других редакторов …

anonymous ()

Автор! А можешь подсказать, как твоё творение собрать из командной строки, без Лазаруса?

Я поставил в своей Манжаре пакет fpc и попробовал тупо скомандовать fpc cudatext.lpr в соответствующем каталоге. Компилятор жалуется на ненайденные системные модули, в частности Interfaces.

Free Pascal Compiler version 3.2.2 [2021/05/31] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling cudatext.lpr
cudatext.lpr(10,3) Fatal: Can't find unit Interfaces used by cudatext
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode

При этом хеллоуворлд на паскале из одного WriteLn-а собирается нормально. Понятно, что не хватает стандартной библиотеки. Можно каким-то пакетом нужные модули доставить?

Или лучше всего не выделываться и сразу ставить Lazarus? :)

hobbit ★★★★★ ()
Ответ на: комментарий от wandrien

В emacs, vim, kate, gedit (с плагином), medit и моём форке medit-а эти настройки можно задавать прямо в комментах в самом редактируемом файле

Куд так не может. хотя АПИ плагов дает менять эти настройки. например плаг Options Editor может поменять эти 2 опции прямо для текущего файла. в его диалоге надо выбрать, при открытом файлe, scope: File (а не User).

Alexey_Tor_ ()
Последнее исправление: Alexey_Tor_ (всего исправлений: 1)
Ответ на: комментарий от anonymous

Пожеланий МНОГО. Например не нашел "go to matching brace " … /в плагинах тоже нет/,

Это есть. надо было в Палитре Команд по слову bracket искать. вот какие команды там

  • brackets: pair hilite: turn on
  • brackets: pair hilite: turn off
  • brackets: pair hilite: toggle
  • brackets: jump to pair !!!!
  • brackets: select to pair

блочные операции, …

какие именно операции? поищу команды.

Alexey_Tor_ ()
Последнее исправление: Alexey_Tor_ (всего исправлений: 1)
Ответ на: комментарий от hobbit

можешь подсказать, как твоё творение собрать из командной строки, без Лазаруса?

Только с Лазарусом. весь GUI это Лазарус. вот заметка в Вики - там и тулза есть из гитхаба.

https://wiki.freepascal.org/CudaText#How_to_compile_CudaText

Alexey_Tor_ ()
Ответ на: комментарий от anonymous

В Visual Studio много хороших фич для работы с блоками.

Это хорошо, но я не имею VS. можешь привести список команд с описанием их, я запишу себе в GH issues.

Что до перехода по парному символу, то какая комбинация клавиш?

В ПалитреКоманд встаем на команду и жмем F9 - и задаем.

Alexey_Tor_ ()