CudaText - Пожелания

AleXY
Posts: 35
Joined: 19.03.2020 19:17

CudaText - Пожелания

Post by AleXY »

Добрый день, уважаемые разработчики!

Если позволите, есть некоторые пожелания в добалении новых фич редактору:

- External Tools:
1) добавить условия запуска внешней программы/интерпретатора в зависимости от используемого лексера.
Что я имею в виду. Например, у меня сейчас открыт файл .py с лексером Python соответственно и в External Tools настроена команда "Run Python code", где в "File name" указан путь к интерпретатору. Как нетрудно догадаться, эта команда выводит результат работы python-скрипта. Так вот, хотелось бы иметь возможность создать некую универсальную команду "Run code", которая я бы в зависимости от лексера сама выбирала интерпретатор, чтобы в строке "File name" можно было указать как-то так: "[if {lexer} == Python:]C:\Python38\python.exe [elif {lexer} == PHP:]C:\php\php.exe". Удобство в том, что не придется плодить большой список команд и самое главное, что можно назначить всего один хоткей на эту комнду, например, F7 и независимо с каким типом файла я сейчас работаю, запустится правильный интерпретатор. А сейчас надо для каждого типа файла назначать свои хоткеи;
------------------------------------------------------------------------------------

- Project Manager:
1) может, удобнее было бы использовать в качестве проекта именно отдельную папку? И тогда...

2) появится возможность в тулбар менеджера проектов добавить кнопки "New file", "New Folder", как в VSCode, т.к. создаваемые ресурсы будут создаваться и складироваться именно в этой папке. Сейчас, создавая новую вкладку (файл), прежде чем добавить ее в проект, ее необходимо сохранить и менеджер файлов в диалоге сохранения показывает какой угодно путь, но не тот, что надо. Замедляет процесс, особенно, если большая вложенность каталогов... ИМХО было бы удобнее иметь одну (отдельную) папку для одного проекта, т.к., как мне кажется, редко кому надо тянуть оригинальные файлы из других проектов в текущий - есть риск внести ненужные изменения в проект заимствованного файла, он же не копируется;

3) если реализовать все вышесказанное, можно было бы подумать об конкретных типах проектов (Python, PHP, JavaScript...) и индексации файлов проекта (классах, методах, функциях и т.д.) как в IDEA (а индексы хранить в скрытой папке в корне проекта (например, .cuda) и в тех же json, раз парсеры уже есть (не знаю только производительнее ли это XML будет)), а в intellisense выводить первым делом методы/функции из файлов проекта, а ниже через сепаратор из стандартного словаря автодополнения. Да, это уже попахивает IDE`шностью и очевидной трудностью реализации, но насколько же станет удобнее работать! Уверен, благодарны будут очень многие!
------------------------------------------------------------------------------------

- Editor/Core:
1) при сохранении нового HTML файла можно, чтобы расширение было не "htm", а "html"? Все-таки .html каноничнее;

2) кнопку/команду/диалог создания своих сниппетов. Хотелось бы иметь возможность создавать свои сниппеты, например, Bootstrap, Vue и т.д. с помощью диалога и потом вызывать их из панели, а также на часто используемые назначать хоткеи. Как пример, выделить кусок кода, вызвать контекстное меню, выбрать пункт "Add snippet", и в диалоге настроить детали и сохранить. Если такое есть, то я не разобрался, как делать...

3) добавление своих кнопок с командами в sidebar и toolbar. Например, для "Run code" из External Tools, вызов каких-то внешних инструментов (сборщиков и т.п.). Если и такое есть, то тоже не разобрался.
------------------------------------------------------------------------------------

Думаю, я буду периодчески вписывать в эту тему хотелки и возможно, подтянется кто-то еще идейный ))) Надеюсь, какие-то мысли покажутся вам здравыми и годными к реализации! В любом случае большая благодарность вам за качественный продукт!
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

ExtTools уже имеет планы по доработке (например слежение за программой и асинхронный вывод), у @kvichans пока времени нет.

ProjManager - я его перепишу па паскале и все будет другое, но это не знаю когда.
Индекс символов - слишком сложно.
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

Editor/core
1) .html - сделал сейчас
2) доработать плагин Snippets? Ну мне такая фича не нужна. Patch welcome
https://github.com/cudatext-addons/cuda_snippets
3) для тулбара есть плагин Config Toolbar. Там можно любые команды класть, в тч из Тулов. Для сайдбара -нельзя
AleXY
Posts: 35
Joined: 19.03.2020 19:17

Post by AleXY »

Alexey, спасибо за ответы!
Alexey wrote:Editor/core
1) .html - сделал сейчас
а где смотреть?
Alexey wrote:Editor/core
2) доработать плагин Snippets? Ну мне такая фича не нужна. Patch welcome

я бы с радостью, да опыта маловато... Но я, как оказалось, не знал про отдельный плагин и имел в виду сниппет-панель. Поставил плаг и лексер к нему, посмотрел синтаксис сниппетов и, в общем-то, свои делать несложно, главное следить, чтобы аббревиатуры не дублировались. Спасибо за наводку! С панелью, кажется, тоже немного разобрался и в

Code: Select all

py\cuda_snippet_panel\clips\my_folder\List.txt

попробовал добавить свои сниппеты - работает.
Alexey wrote:Editor/core
3) для тулбара есть плагин Config Toolbar. Там можно любые команды класть, в тч из Тулов. Для сайдбара -нельзя
Теперь и об этом знаю, спасибо!
AleXY
Posts: 35
Joined: 19.03.2020 19:17

Post by AleXY »

А есть возможность вставлять в List.txt многострочные определения? Например:

Code: Select all

Menu=<nav class="navbar">
    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
    </ul>
</nav>
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

>а где смотреть?
Скачать поправленный лексер из ГХ
https://github.com/Alexey-T/CudaText/bl ... b/HTML.lcf

Еще счас сделал чтоб ProjManager давал свою текущую папку в программу в диалоги open/ save-as.
просто скачать плагин мало из ГХ. будет потом.
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

snippet folders are searched in 2 places:
- folder "clips" in plugin folder (preinstalled)
- folder [CudaText]/data/clips, which is absent by default, for custom user folders.
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

Многострочные нельзя для SnippetPanel, но можно для плагина Snippets в другом формате.
Формат файлов- см Вики.
Про Snippets там же
AleXY
Posts: 35
Joined: 19.03.2020 19:17

Post by AleXY »

Alexey wrote:Скачать поправленный лексер из ГХ
Спасибо, Alexey , все работает! Для себя отметил где в файле были изменения, вдруг пригодится еще когда-нибудь )
Alexey wrote:Многострочные нельзя для SnippetPanel, но можно для плагина Snippets в другом формате.
Формат файлов- см Вики.
Про Snippets там же
И со сниппетами разобрался, спасибо!
AleXY
Posts: 35
Joined: 19.03.2020 19:17

Post by AleXY »

В процессе эксплуатации были замечены следующие особенности (по степени важности):

1) После установки/удаления плагинов сбиваются практически все настроенные (или переназначенные) хоткеи. Заметил, что после очередной установки клавиш в файле settings\keys.json появляются новые индексы для тех же самых команд:

вот так после первой установки клавиш:

Code: Select all

"6500" : {
    "name" : "plugin: Tools: Run Python code",
    "s1" : [
      "F7"
    ],
    "s2" : [
    ]
  },
затем устанавливается или удаляется плагин, хоткеи сбиваются и после новой установки таких же выглядит так:

Code: Select all

"6503" : {
    "name" : "plugin: Tools: Run Python code",
    "s1" : [
      "F7"
    ],
    "s2" : [
    ]
  },
я так понимаю, "6500" и "6503" - это индексы в палитре команд, которые сдвигаются в зависимости от наличия или отсутствия плагина. А Менеджер пакетов не учитывает файл keys.json, поэтому всё и сбивается.

2) Если после редактирования не сохранить файл явно, выбрав "Не сохранять / записать в сессию", то лексер не восстанавливается после следующей загрузки из сессии, надо явно его выбирать;

3) Иногда лагает подсветка синтаксиса в лексере Python (заметил пока только в нем) в многострочных строковых литералах. Т.е. определил литерал, пишу следующий код дальше и подсветка именно в таких литералах то подсвечивается, то пропадает, то снова подсвечивается... Связь этого лага обнаружить не удалось.

И еще парочка предложений по расширению функционала:

1) Можно ли сделать, чтобы при закрытии панели вывода по кнопке в сайдбаре, очищать содержимое панели (вывод результата работы кода)?
2) При очередном выводе нового результата в панель вывода, чтобы она очищалась, а не аккумулировала результат?
3) Возможно ли как-то добавить в выпадающее меню к автодополнению (то, что по CTRL+SPACE) и аббревиатуры из сниппетов? Например, при вводе "bs4" показывались варианты сначала сниппетов, а потом всего, что совпадает с вводом. Очень утрированный пример: картинка
Locked