LINUX.ORG.RU

Выпуск редактора CudaText 1.137.0

 , , ,

Выпуск редактора CudaText 1.137.0

3

1

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

Редактор подойдет продвинутым пользователям и программистам (доступно больше 200 синтаксических лексеров). Некоторые возможности IDE доступны в виде плагинов. Репозитории проекта находятся на GitHub. Для запуска в Linux есть сборки на GTK2 и Qt5. CudaText отличается относительно быстрым запуском (около 0.3 секунды на CPU Core i3).

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

  • Парсер исходных кодов теперь многопоточный, что дает сильное ускорение парсинга и убирает паузы раскраски на больших файлах. Работа велась последние 2 месяца, версия 1.133 с многопоточным парсером имела десяток релиз-кандидатов. К текущей версии ошибки многопоточного движка на 95% найдены и исправлены.

  • Сторонним пользователем было сделано несколько полезных плагинов:

    • Terminal Plus: терминал, по возможностям примерно равный плагину Terminal Plus из Atom.
    • Runner: запускатель внешних процессов, поддерживает «системы сборки» от Sublime Text 3.
    • LSP Client: поддержка протокола Microsoft LSP, плагин уже хорошо работает с серверами для Python, C++, C#, CSS/SCSS/LESS, JavaScript/TypeScript, Go, Rust.
    • Авто-дополнение в панели Консоль.
  • Улучшена логика Undo (Отмены). Теперь, например, одна правка с 50 каретками считается за «одно действие» и откатывается за один шаг. То же и с заменами: «Заменить все» с 50 вхождениями откатывается за один шаг. Видимо, именно такая логика Отмен используется в самых популярных редакторах.

  • Опция затемнения неактивных редакторов. Опция для разрешения темизации полос прокрутки в редакторе.

  • Tree-helpers для некоторых языков переписаны с Питона на Паскале и встроены в программу.

  • Программа может сохранять файлы даже в системные каталоги под Linux (запускается стандартный pkexec, спрашивающий рут-пароль).

  • Проведена, в который раз, оптимизация работы с большими файлами и работы с гигантскими строками в десятки миллионов символов (например, однострочный XML дамп).

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



Проверено: Shaman007 ()
Последнее исправление: CYB3R (всего исправлений: 5)

запускается стандартный pkexec

pkexec
bash: pkexec: command not found

Это где он стандартный?

И интересно, есть ли у этого редактора преимущества над Qt Creator? Ну или хотя бы умеет он то же самое? Мне в qtcreator не нравится «Qt», я бы перешел на более вменяемый IDE, авторы которого — не наркоманы и не пользуются Qt/GTK или другой жиробасной дрянью.

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

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

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

Не дождется. В консоли юникоду нет места!

Eddy_Em ☆☆☆☆☆
()

после интелиджи ошчушчается весьма резво, однако, довольно странно, что для того чтобы открыть каталог с проектом пришлось догадаться обратить внимание на статусбар, а затем найти в системе и выбрать пейтон. Такие базовые задачи не должны быть скрыты за квестами, как мне кажется, а должны сразу работать с первого запуска и из коробки. Скажем, если без пейтона для вызова кутишного диалога никак не обойтись, надо найти первый попавшийся, наиболее близкий по версии интерпретатор или тот, что отвечает на /usr/bin/env python и использовать его для решения этой базовой потребности, а выбрать другой интерпретатор по вкусу ненавязчиво предложить в области уведомлений или что-то в таком ключе.

Syncro ★★★★★
()

Только думаю, дай посмотрю, а ебилдов, то и нету. А руками лень что-то собирать.

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

Vim на таких строках форсит режим word wrap что мне не нравится. И не дает ходить по такой строке стрелками up/down.

noremap <Up> gk
noremap <Down> gj

И, разумеется, можно делать :set nowrap.

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

Ну, не знаю как реализовано, но, гипотетически, простой вариант: один поток парсит и кидает в очередь токены -> второй поток их извлекает, тэгирует для покраски -> третий поток снимает тэгированное с очереди и отрисовывает на канву.

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

Это как-то связано с нвидиевской кудой?

Примерно как JavaScript связано с Java.

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

Это больше камень в огород редакторов Kate и Gedit, которые грузят файл в RAM

Так и CudaText грузит файл в память. Только более оптимально.

https://github.com/Alexey-T/CudaText/issues/3504 Записал про прямоугольник в issue, посмотрю, хотя насколько я помню у меня был прозрачный этот самый прямоуг.в Qt5…

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

Я готов дискутировать по поводу ненужность поцкала только с его создателем

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

был ещё некий fpGUI, на котором LCL тоже может работать и не привязанный ни к Qt, ни к GTK. Не пробовали его? Или он таки не готов?

Пробовал, он не то что не готов, он еще хуже, не собирается с кодами самого fpGUI, но может попинаю автора и дело пойдет…

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

Как там emmet’ом пользоваться? Создал index.html, пытаюсь развернуть !

  1. поставить лексер HTML (статусбар клик)
  2. ! и ТАБ - оно расширятеся по Таб
  3. но можно и другим хоткеем - для команды «plugins / emmet / expand abbreviation» можно задать хоткей (F9 в палитре команд)

если все же не расширилось, помогу в https://github.com/Alexey-T/CudaText/issues .

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

Попробовал собрать lpi проект. Поставил зависисмости.

Важно как именно вы ставили зависимости- из IDE OnlinePackageManager или качали последние из Github? Если первое то не соберется т.к. пакеты там старые. Вот скрипт который качает последние пакеты - https://github.com/alexey-T/cudatext_up

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

Уточните что страшно, может я опцию скажу какую поправить?

Дефолтные темы оформления либо вырвиглазные, либо малоконтрастные.

Подкрутил немного цвета в white, но всё равно выглядит как какой-то хреновый веб-сайт.

wandrien ★★
()

Визуальный глитч: в меню, которое переключает layout-ы, всегда галка стоит напротив One group.

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

от же Sublime Text тоже с дизайном начала нулевых, и ничего, пользуются люди.

Просто довольно трудно сделать эти UI свистелки и перделки - закругления углов выделения, тени от gutter и т.д. И потом у CudaTеxt отрисовка делается БЕЗ GPU. медленная.

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

Визуальный глитч: в меню

А, это старая версия у меня.

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

bash: pkexec: command not found . Это где он стандартный?

В Убунту и еще тут https://www.freedesktop.org/software/polkit/docs/0.105/pkexec.1.html

И интересно, есть ли у этого редактора преимущества над Qt Creator? Ну или хотя бы умеет он то же самое? Мне в qtcreator не нравится «Qt», я бы перешел на более вменяемый IDE

Ну вам IDE надо? Qt Creator не качал- он что - IDE? Тогда Куд не заменит его, все-таки debugger небось там, понимание кода, подсказки. Какие именно фичи вам надо заменить?

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

Так парсер последовательно работает, нити-то зачем? У нас вроде текст в 4 разные стороны писать не принято.

Главный поток - UI и правка data storage. Второй поток - парсер синтакса. Третий - file change notify.

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

А, в этом смысле.

Ну впрочем, скорость парсинга обычных исходников в 2021 не принципиальна. Я сколько лет пользовался mooedit, так ни разу и не посмотрел, как у него реализован парсер. По ощущениям в работе — кусочно-итеративно в главном потоке.

Там используется оптимизированный движок gtksourceview, который еще на Celeron D у меня не тормозил. (А оригинальный gtksourceview тормозил дико.)

Но вот что в mooedit всегда бесило, это невозможность просматривать обфусцированный исходник без переводов строк - где-то там квадратичная сложность алгоритма притаилась.

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

Ну, теоретически, можно парсить блоки верхнего уровня, делать мап на треды, которые будут парсить вложенные, а потом делать reduce :)

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

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

про Python Intellisense? «найти первый» это только говорить лекго. А в каком-нибудь Void Linux найти трудно, там набор папок ОС отличается от Убунту и питон лежит в ДРУГОМ месте. И в Raspbian тоже. значит уже не получится просто взять обычное место. Надо будет искать. А это медленно. Лучше дать юзеру сообщение «питон не настроен» и пусть выберет питон.

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

Мда, через tab не работает - работает через меню Plugins->Emmet -> Expand abbreviation

Проверил на свежей установке - после того как прописал путь к питону в «pylib__linux» - расширение ! по ТАБ работает. При включенном лексере HTML.

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

Какие именно фичи вам надо заменить?

Рефакторинг по всем документам проекта; подсветку ошибок и предупреждений; автодополнение переменных, структур данных, макросов, имен функций и т.п. (+ предлагать варианты автозамены с неявным поиском); автозамена стрелочек на точки и наоборот (для доступа к члену структуры по указателю или из структуры); …

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от wtsch

Язык интерфейса только английский или я не нашел?

Меню ‘Options / Translations’. языки ставятся еще из ‘plugins / addon manager / install’.

Alexey_Tor_
() автор топика

Написан на паскале, но не содержит паскалевского лексера. Сапожник без сапог.

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

Рефакторинг по всем документам проекта; подсветку ошибок и предупреждений; автодополнение переменных, структур данных, макросов, имен функций и т.п.

Есть только CudaLint плагин для линтинга и LSP Client. Остального нет, это уже глубокое понимание языка.

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

если все же не расширилось

Не, все нормально. Это я просто не сразу додумался, что надо лексер подключить.

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

so-long

Это работает только для открытия файл-буферов.
Если в рантайме в буфер что-то вывалит сотни килобайтов текста, то всё, приехали.

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

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

cobold ★★★★★
()

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

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

верилога (хорошую, с умным дополнением, автоматической имплементацией модулей и пр.),

Лексер Verilog уже в аддонах! а прочее - так это вы просите по факту LSP Server для языка. А может он уже есть?

Alexey_Tor_
() автор топика

Чем он лучше pycharm?

AVL2 ★★★★★
()

Нужна возможность установить с помощью flatpak.

eternal_sorrow ★★★★★
()

Давно искал замену досовому MultiEdit, который умел редактировать большие файлы, в тысячи раз больше чем размер ОЗУ. Неужели CudaEdit умеет так же? Если это так, то автору большой респектище.

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

не, я просто открываю редактор, выбираю Open Folder и «ничего не происходит», потом замечаю в статус баре «для осуществления этой операции найдите питон», потом догадываюсь что пункт в основном меню как раз про это, выбираю его и там из 5-6 вариантов выбираю первый. Но это все можно было бы проделать и без интерактива, т.к. обычно симлинк python (или /usr/bin/python) указывает та тот самый системный питон, его вполне разумно использовать «по умолчанию» с возможностью поменять из настроек, переменных окружения, механизмом фолбека и т.п, ну или вовсе можно не использовать питона для открытия диалога, кажется есть какой-то шелл прием чтобы использовать родные диалоги, LibreOffice например тоже умеет дергать нативные под текущий Desktop Environment.

Syncro ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.