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 ()

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

Любой нормальный это какой, чувак? Там везде настраивать надо и везде ставить нужные лично тебе пакеты. А уж любимых здесь почти всеми Vim и Emacs это касается в первую очередь.

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

Распечатать текст? Из палитры команд вызвать ‘export to html’ и потом печать из ФФокс.

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

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

В топку питон.

Обязательно держи всех в курсе, но думаю этого мало. Тебе необходимо оформить этот посыл в виде тезисов и на их основе сочинить 10-15 псалмов и запоминающийся символ этой веры, а пока это больше похоже на обычный вы*ер.

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

Специально для тебя залез на SO: https://stackoverflow.com/a/50357801

И после небольшой адаптации:

for p in python python3; do $p -c "from distutils import sysconfig; import os.path as op; v = sysconfig.get_config_vars(); fpaths = [op.join(v[pv], v['LDLIBRARY']) for pv in ('LIBDIR', 'LIBPL')]; print(list(filter(op.exists, fpaths))[0])"; done
anonymous ()
Ответ на: комментарий от anonymous

И после небольшой адаптации:

for p in python python3; do $p -c "from distutils import sysconfig; import os.path as op; v = sysconfig.get_config_vars(); fpaths = [op.join(v[pv], v['LDLIBRARY']) for pv in ('LIBDIR', 'LIBPL')]; print(list(filter(op.exists, fpaths))[0])"; done
:~> for p in python python3; do $p -c "from distutils import sysconfig; import os.path as op; v = sysconfig.get_config_vars(); fpaths = [op.join(v[pv], v['LDLIBRARY']) for pv in ('LIBDIR', 'LIBPL')]; print(list(filter(op.exists, fpaths))[0])"; done
Traceback (most recent call last):
  File "<string>", line 1, in <module>
IndexError: list index out of range
Traceback (most recent call last):
  File "<string>", line 1, in <module>
IndexError: list index out of range
anonymous ()
Ответ на: комментарий от anonymous

Специально для тебя залез на SO

Спасибо, осталось просто потестить это на всех мажорных линуксах, и еще мне не нравится что в SO у чувака дало два пути для питона-3, то есть код сбоит если у тебя есть просто питон + анаконда, он не отбрасывает путь анаконды.

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

Специально для тебя залез на SO: https://stackoverflow.com/a/50357801

посмотрел еще раз. скрипту надо убрать [0] чтобы он давал список всех путей. потому что доверять «берем элемент 0» нельзя. тогда у нас будет список из 2-4 путей. как у чувака на СО список из 4-5 путей. тогда ради чего огород??? и так Куда ищет (по запросу) и дает список путей. тогда какой выигрыш??? еще раз- брать элемент 0 нехорошо- мы можем найти в список питон2 (как на СО) и тогда будет элемент от питона 2. а нам надо питон 3. и может быть что элемент 0 это от анаконды питон. он не окей.

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

Так надо приоритеты поставить, какой для Cuda важнее, по ним и будет происходить выбор.

  1. python3
  2. python2
  3. anaconda

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

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

VSCode например с большими файлами работает намного лучше чем саблимтекст, который просто виснет. Имеет форматировщик файлов, который работает даже с битыми файлами делая «все, что смог», что очень удобно. На мой взгляд сегодня VSCode не имеет конкурентов просто.

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

Я не писал, что где то его нет. Я написал, что в вскоде он работает с битыми файлами. Например сломай json и отформатируй его в обоих редакторах. Саблим сломанный форматировать не будет. Второе, нет не могу я скинуть файл большой, нагенери сам.

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

Например сломай json и отформатируй его в обоих редакторах. Саблим сломанный форматировать не будет.

Понимаешь ли, форматтеры в Sublime / CudaText написаны на питоне. это либы. если либы умеют форматить сломаный json то все окей. причем может быть 2-3 либы разные (в Куде форматер только на одной либе для json). вот я сделал битый json -

{
       "renderer_anti_flicker__linux": 1000,
         "mouse_rt_click_moves_caret": 
    "minimap_tooltip_show": 
          "underline_color_size": 3,
    "log_timing": false,
    "ui_scale__linux": 100,
               "spacing_y__linux": 1,
    "minimap_char_width": 0,
"ui_history_disabled":                 "e",
"ui_tab_switcher_dialog": false,
    "links_regex": "\\b(mailto

вот я отформаттил его в Куде -

{
    "renderer_anti_flicker__linux": 1000,
    "mouse_rt_click_moves_caret": "minimap_tooltip_show": "underline_color_size": 3,
    "log_timing": false,
    "ui_scale__linux": 100,
    "spacing_y__linux": 1,
    "minimap_char_width": 0,
    "ui_history_disabled": "e",
    "ui_tab_switcher_dialog": false,
    "links_regex": "\\b(mailto

как видишь либа окей.

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

Второе, нет не могу я скинуть файл большой, нагенери сам.

мои тесты на больших JSON, XML показывали более быстрый парсинг (до конца файла) в Куд, чем в VSCode. тесты без лексеров на оч больших файлах - тоже. Куд не тормозил.

Alexey_Tor_ ()

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

Нехорошее предчувствие возникло сразу, когда прочитал «Better support national keyboards on Linux» на странице по предложенной ссылке https://wiki.freepascal.org/CudaText#Advantages_over_Sublime_Text_3 Ох, не сулит ничего хорошего нарушение Unix-way: «Программа должна делать ОДНУ вещь, но делать её хорошо». Есть же модуль xkb, который и занимается всеми вопросами, связанными с клавиатурными раскладками. Не надо делать «better support keyboards»! Позвольте спецам, работающим над xkb это делать. Клавиатурные раскладки — намного более глубокая тема, чем это может показаться на первый взгляд.

Как я себе представляю проблему с технической точки зрения — надо обрабатывать предложенные системой keycodes (вкупе с состоянием модификаторов), а не пытаться интерпретировать самостоятельно scancodes, получаемые от клавиатуры. Но здесь я могу ошибаться.

Переключив раскладку на стандартную, смог немножко поэкспериментировать с редактором. Общее впечатление — фантастика! Это же настоящее чудо! Как такой проект можно разрабатывать и поддерживать в одиночку — для меня загадка. Вы — супер-профессионал! Похоже, что редактор обладает колоссальным потенциалом, и я от всей души желаю Вашему проекту успеха и развития!

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

Спасибо за новость, получил радость от прикосновения к техническому шедевру. Удачи!

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

Под виндой пытается сохранить настройки в папку с программой. AppData? Нет, не слышали.

Это может быть штатным поведением для portable-сборок. Для устанавливаемого ПО недопустимо, конечно.

Вариант решения — класть в portable-сборку ini-файл со специальным флагом, указывающим, что сборка портабельная. Если флага или файла нет — программа ведёт себя как установленная и пишет настройки туда, где в винде положено (да хоть в реестр).

Про питон уже написали.

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

Как я себе представляю проблему с технической точки зрения — надо обрабатывать предложенные системой keycodes (вкупе с состоянием модификаторов), а не пытаться интерпретировать самостоятельно scancodes, получаемые от клавиатуры. Но здесь я могу ошибаться.

Я бы это в настройки вынес. В некоторых случаях обработка скан-кодов действительно может иметь смысл.

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

то у этого человека большие проблемы!

Большие проблемы если ты живешь в Кабуле или если у тебя последняя стадия рака. А это опечатка. Выпей валидола

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

Как я себе представляю проблему с технической точки зрения — надо обрабатывать предложенные системой keycodes (вкупе с состоянием модификаторов), а не пытаться интерпретировать самостоятельно scancodes, получаемые от клавиатуры.

Это все вопросы кода Лазаруса, точнее его widgetsets. это они «виноваты». все что я могу, это перевести ваш пост гуглом и запостить его в форум лазаруса. сделаю это.

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

Это все вопросы кода Лазаруса, точнее его widgetsets

Блин, вот поэтому и не хочется браться изучать Паскаль. Каковы шансы уткнуться во что-то подобное? Думаю большие. Что делать? Ждать пока команда лазарус исправит? Возможно долго или никогда. Править самому? Искать нужную библиотеку? Жесть. Ощущение что язык не полноценный.

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

Вариант решения — класть в portable-сборку ini-файл со специальным флагом, указывающим, что сборка портабельная. Если флага или файла нет — программа ведёт себя как установленная

Да, программа полностью портабельная. из коробки. непортабельная она только если мы ставили ее из deb-пакета, описано тут https://wiki.lazarus.freepascal.org/CudaText#Location_of_folders_.27settings.27.2C_.27py.27.2C_.27data.27

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

надо обрабатывать предложенные системой keycodes (вкупе с состоянием модификаторов), а не пытаться интерпретировать самостоятельно scancodes, получаемые от клавиатуры.

Прямо ДОСом повеяло и прочим олдскулом

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

Делать далеко идущие выводы о языке на основании опыта одного чужого проекта, пусть и очень интересного — это такое себе…

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

Просто читать PATH

И парсить все перечисленные там пути? Можно и так. А я бы сделал проще: вызывать python --version и если команда не отработала — писать пользователю, что Питон не найден и предложить установить его либо прописать путь к нужному Питону руками в настройках. Только предусмотреть отключение этой проверки и вообще работы с Питоном, если пользователю не нужны плагины.

hobbit ★★★★★ ()

Почему не использовать метод, описанный в default.json?

//  Instruction for Linux/FreeBSD/Solaris, if Python engine not auto-detected:
//  1) open file manager, go to /usr
//  2) search for "libpython3.*so*"
//     Terminal command:
//     $ find /usr -name 'libpython3.*so*' 2>/dev/null

Путь находится ~6с, полностью команда отрабатывает ~27c

Запускать поиск можно в фоновом потоке

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

Выглядит круто, но почему при этом он такой не популярный?

Потому что он довольно проблемно собирается и не менее проблемно работает. Или - как тут где-то рядом сказали - хорошо работает только на ПК автора.
Я пытался было даже не собрать в пакет - прикинуть как собрать в пакет для Fedora. Кино и немцы.
Обычно (если программа того достойна) мейнтейнер обращается к автору с настоятельной просьбой для начала хотя бы привести программу к отраслевым стандартам (как минимум).
К сожалению стандарт де-факто при общении с отечественными авторами на выходе получается «тебе надо - ты и делай».
Ну то есть авторы в принципе не заинтересованы в продвижении своих продуктов. Поэтому не только сами не продвигают, но и не помогают продвигать их продукт другими. И - естественно - никаких «этих нелепых телодвижений» в сторону удобства сборки и диплоя.

TI_Eugene ★★ ()
Последнее исправление: TI_Eugene (всего исправлений: 2)