CudaText — это свободный кроссплатформенный редактор кода, написанный на Object Pascal. Редактор поддерживает расширения на Python и имеет несколько особенностей, заимствованных из Sublime Text. На wiki-странице проекта перечисляются преимущества над Sublime Text.
Редактор подойдет продвинутым пользователям и программистам (доступно больше 290 синтаксических лексеров). Некоторые возможности IDE доступны в виде плагинов. Репозитории проекта находятся на GitHub. Для запуска в Linux есть сборки на основе GTK 2 и Qt 5. CudaText отличается относительно быстрым запуском (около 0,2 секунды на CPU Core i3).
За 8 месяцев с предыдущего анонса реализованы следующие улучшения:
Большое изменение: поддержка пропорциональных шрифтов. Многие оптимизации памяти и скорости для них отключены, так что на огромных файлах увеличится потребление памяти.
Если файл удаляется извне то сверху появится информационная панель.
Вместо звёздочки на табах теперь рисуется точка/кружочек (для изменённых файлов).
Поддержка двух дополнительных кнопок на мыши (4 и 5) для установки их в качестве «горячих клавиш».
Комбинируемые символы «Unicode combined characters» теперь рисуются отдельно.
Палитра команд:
- новая команда «selection: add next occurrence of selected text (not whole-word)».
- 2 новые команды «Paste and indent» и «Paste from history».
- 4 новые команды «change line ends to LF / CR LF / CR / default, for lines(s) with caret»
- улучшена фильтрация команд: сначала показываются точные совпадения, затем нечеткие «fuzzy» совпадения. а так же теперь слова разделённые пробелами ищутся в любом порядке.
- изменено поведение команды «skip next occurrence of selected word», теперь работает аналогично Sublime Text.
- «delete word previous»: теперь команда удаляет слово за словом, не «спотыкаясь» на пробелах.
Менеджер проектов:
- дерево папок/файлов после «Refresh» остаётся в таком же виде (ноды не сворачиваются).
- добавлены «сессии проекта» - сессии которые принадлежат текущему проекту.
- поддержка авто-сохранения последнего проекта (даже безымянного, «temporary»).
- изменение сортировки: по расширению не сортируются папки и нелатинские расширения.
Менеджер плагинов: новая опция «Verify HTTPS certificates»
Дерево кода:
- переработано дерево кода для CSS. Теперь оно отображается правильно даже для огромных minified CSS файлов.
- увеличена скорость заполнения.
- возможность ограничить время заполнения дерева новой опцией
"ui_tree_fill_max_time":1000
Автоматические распознавания:
- распознавание формата файла по строке shebang (лексеры Bash/Python).
- распознавание кодировки XML файлов по строке-декларации
<?xml encoding="..."?>
.
Изменение опций:
"ui_auto_save_session"
теперь по-умолчанию включена."mouse_middle_click"
: добавлен вариант «вставка из буфера по клику средней кнопкой мыши».- новая опция
"gutter_icon_size"
. "ui_max_size_lexer"
: информационная панель сверху уведомит пользователя о том, что лексер не будет использоваться для этого большого файла."underline_color_files"
поддерживает современные вариантыrgba()
иhsla()
(CSS 4)."ui_esc_close"
: если ESC нажимался для того, чтобы снять выделение текста, то приложение не закроется."gutter_line_states"
: отключает маркировку состояния строк."unprinted_content"
: под-опция"x"
исправлена. непечатаемые символы (переносы строк в том числе) показываются только если есть выделение текста.
Плагин Emmet: большее количество аббревиатур с Lorem Ipsum.
Плагин Auto Copy To Clipboard: плагин убран и заменён на опцию "auto_copy_clp"
. Теперь копирование работает во всех полях приложения.
Оптимизации:
- ускорена отрисовка для лёгких (lite) лексеров на длинных строках с переносами.
- большое количество строк с «маркерами» отрисовывается гораздо быстрее.
- команда «Inverse bookmarks» работает быстрее на файлах с огромным количеством строк.
- плагин Git Status работает быстрее с файлами, в которых большое количество git-изменений.
- при массовой замены по тексту больше не срабатывает поиск парной скобки.
- при редактировании длинных строк (2000+ символов) работа лексера отключается на несколько секунд (опция
"max_line_len_for_editing_keeping_lexer"
).
Изменения API:
- новое событие
on_caret_slow
. позволит плагинам не замедлять работу редактора (если нужно событиеon_caret
). - возможность установить подсказки для иконок иконок-декораций (
Editor.decor
API) - в списке автодополнения (
Editor.complete_alt
API) можно использовать простые HTML тэги. Позволяет установить цвет и стиль для элементов списка.
Windows:
- регистр букв пути/имени файла, который передан через командную строку, будет нормализирован.
- Python обновлён до версии 3.8.
- заголовок окна автоматически меняется на тёмный при использовании тёмной темы (Windows 10 и 11).
- убрана неприятная белая полоска находящаяся под меню.
Unix:
- код отвечающий за ‘Single instance’ работает быстрее.
MacOS:
- стандартные горячие клавишы для команд «go to text begin/end», «caret to line begin/end», «go to word previous/next» адаптированы для macOS.
Поддержка Python 3.11. Новая иконка приложения и другие улучшения.
Основную работу выполнил автор, Алексей Торгашин. Большая благодарность программисту Юрию Балюку ( https://github.com/veksha ) за многие исправления и замечания по функционалу. Юрий также создал новый плагин ExTerminal и значительно улучшил LSP Client.