Page 1 of 1

Формат acp

Posted: 12.12.2017 12:40
by BlackCat_EraCG
Разбирался тут с сабжем. Штука безусловно очень классная, полезная и при этом предельно простая: одно авто-завершение (так это вроде примерно переводится) - одна строчка в acp-файле.
Итого имеем:

Code: Select all

Type Id (Param1; Param2; ...): ResultType |Hint
Где:
  • Type - напоминалка о типе,
  • Id - самая важная штука - именно то, что и авто-завершается/дополняется, сам выводимый в результате текст
  • Params - тоже просто напоминалка о том какие параметры нужны заданной штуке (команде, процедуре, тому, что дополняется)
  • Hint - ну тут без комментариев.
И вот возник вопрос (возможно, риторический): а нельзя ли (сильно не меняя реализацию и не теряя совместимости) несколько увеличить мощность фичи, превратив ее в некий облегченный вариант сниппета.
На примере. Задаем в файле такое:

Code: Select all

Operation LD%20%28%P0%29,A ADDR |Stores A into the memory location pointed to by ADDR.
Тут Id - по сути не статический текст, а своеобразный каркас, где %P0 (это на вскидку, можно и по другому как-то задавать) - это место, куда вталкивается 0-й (самый первый) описанный следом параметр, а после вывода в файл, будет помещен курсор.
В меню выводится примерно так:

Code: Select all

Operation LD (ADDR),A ADDR |Stores A into the memory location pointed to by ADDR.
А в тексте появляется в таком виде:

Code: Select all

LD (|),A
, где | - это курсор.
Вроде б такие изменения не особо противоречат (на мой наивный взгляд) существующей системе, да и не сильно сложно должны вроде реализовываться. А вот мощность фичи возрастет порядочно. Да и заполняться такой acp-файл будет также просто, как и сейчас.
То есть не надо даже маркеров, можно и без них, если %P задано больше 1, вместо остальных просто не выводится ничего.
В общем какие-то такие идеи...

Posted: 12.12.2017 13:16
by Alexey
ТАкое надо делать не доделкой acp format. А плагином. плаг должен ловить on_key и по коду 9 (таб)
делать то что ты хочешь. Наверно будет конфликт с Snippets plugin. можно и на другую клавишу.

Posted: 12.12.2017 15:18
by BlackCat_EraCG
А сама обработка acp щас не на Питоне реализована, а то может быть однажды (сильно не сейчас), я бы все-таки вернулся к вопросу и попробовал реализовать по аналогии.

Posted: 12.12.2017 15:23
by Alexey
не на Питоне. Там код простой- просто разбор массива строк по правилам.

Posted: 12.12.2017 16:25
by BlackCat_EraCG
Да то, что код элементарный, это понятно. Просто немного поправить готовый код даже на совсем незнакомом языке и т.о. разобраться, как все устроено, всегда намного проще, чем добиться того самого чтением тонны манов, особенно если такой цели, изучить новый язык, не стоит от слова совсем :)

Posted: 12.12.2017 17:33
by Alexey
тогда у тебя не получится плагин написать.

Posted: 12.12.2017 18:20
by BlackCat_EraCG
Ну значит не получится. Тоже вариант. Написать что-то - не самоцель. Самоцель - получить инструмент, а кто будет его автором, и каким набором фич он будет обладать, а уж тем более, будут ли эти фичи именно такими, какими хочется мне, это все уже вопросы далеко не первого порядка. Плюс неплохим демативатором работает факт наличия массы уже готовых инструментов с разным достаточно богатым набором фич, однако не устраивающих по разным (зачастую чисто идеологическим) причинам. Например, имеется тот же Саблиме и вся готовая обвязка под него, но он проприетарный, а это мне не нравится. Но ведь это по сути далеко не объективная причина. Если я, вдруг, попал бы в какой-то хобби-вакуум и мне нечем было бы заняться (более в моем случае продуктивным), я б тогда с радостью бросился грызть гранит Питон-науки и участвовать в коллективном совершенстововании CudaText. Но по факту я тут довольно бесполезен и продуктивность моя близится к 0. Поэтому ориентация моего внимания сильно смещается в те области, где я уже что-то могу. А CudaText - инструмент. Просто он привлекает меня тем, что открыт, и что проект живой. Ладно. Это все флейм. Прошу прощения.

Posted: 12.12.2017 18:22
by BlackCat_EraCG
P.S. acp для z80 асма на днях планирую закончить, может, пригодится однажды кому.

Posted: 26.12.2017 06:43
by Alexey
Напиши, плис, впечатление про binary/hex viewer (Cud 1.30). в новую тему. я его начал делать когда прочитал твой коммент что "как просмотреть файл в хекс виде, может плагин какой". Там есть 5 видов как в UniversalViewer. только 2 можно вызвать из длг "Файл нетекстовый".