Здравствуйте, Kefir, Вы писали:
K>Я видел нечто подобно для XML комментариев C# в Visual Studio (уже давно, не знаю осталось ли еще). Там область комментариев была как бы блокирована, и показывалась в одном виде а при двойном клике переключалась в другой режим (уже текстовый) и ее можно было редактировать. Область шаблона определялась по неким тегам. Можно было бы сюда копать, но очень будет там много нюансов, так что скорее всего работы будет больше чем пользы
Но посмотреть, если мне уже нечего будет делать можно будет
Имхо, там, скорее всего, работают спецпарсеры. Я думаю, что ты идею правильно понял: сработал где-то сниппет, повводил я данные, закончил ввод, сниппет как бы отключился. Потом я ушёл в другое место и т.д., потом вернулся назад, что-то здесь подправил, т.е. уже изменил контекст, захотел кайфа — клацнул, а редактор сам догнал, какой нужно включить сниппет, и "пошла жара", или же он (редактор) отказался, вежливо.
На сколько это реально — мне тяжело сказать. В тех же вимах/эмаксах — сниппеты на уровне Sublime.
K>У меня вроде поддержка софт табов есть (если я тебя правильно понял). Я Elastic Tabstops в jEDIT потом заметил, когда тебе написал. Но имплементацию не проверял. Референсная версия по ссылке, что я привел. В НЕ я не делал, но у меня есть кое какие наработки по автоматическим позициям в таких случаях, базируясь на информации с верхних и нижних линий. Но пока динамически не растягивается, как в Elastic Tabstops.
Ну, вроде да, у тебя есть преобразование табов в пробелы, как и в JEdit. А вот эти Elastic Tabstops в JEdit сейчас работают только тогда, когда табы вводятся как есть, без преобразования в пробелы. Поэтому, лично я ими просто не могу пользоваться.
А я больше имел в виду следующее. Неплохо было бы иметь возможность для шаблонов, этих сниппетов, указывать выравнивание по столбцам, т.е. некую виртуальную таблицу, чтобы само выравнивалось, по мотивам этих резиновых табов. А если будет как в org-mode в эмаксе — там и таблицы рисуются, не только виртуальные — вообще шик.
K>Да, я буду делать как плагины, соответственно через API, единственно будет вопрос как потом внутреннюю информация с информацию от плагинов смешивать (теже метки, что сейчас для определения функций используются).
Я не совсем понял, о чём конкретно речь. Вот в JEdit наплодились исторически всякие разные плагины для кучи разных способов и источников данных в рамках автокомплита. В последнее время появилось вполне грамотное решение: можно взять небольшой жабий класс (из плагина-API), переопределить с пяток методов и получить один автокомплит, но я сам подключаю туда свои источники, используя свой код, или подключая программно другие плагины, и т.д. Причём это можно сделать из макроса, не только из бинарного плагина. И ничего сложного, для тех, кому нужно.
И в целом, в JEdit не плохо развиты такие обобщающие средства — есть относительно несложное API, можно накатать свою какую-то обработку текста, включая полноценные парсеры для разбора, и получи сразу и автокомплит, и броузер кода, и списки ошибок и прочих элементов и т.д. — наколенный Эклипс (конечно, сообщество разработчиков, хоть и мизерное, но даёт эффект, одному человеку не под силу всё).
K>Я когда делал Overview Bar рассматривал вариант рисования на скрол баре, но потом отбросил. С одной стороны — сложнее, с другой стороны, при наложении ползунка (даже прозрачного) поверх информационных блоков — будет мешанина, в которой ничего не понять. И чаще всего, соответственно это будет для текущего "окна", что не очень хорошо (хотя с другой стороны все видно и так, на экране, если документ не большой, но а если большой или длинная строка без переноса?). Плюс к этому — сплит скин. Который добавляет свои проблемы, так как придется дублировать скроллер, он уменьшиться, на нем будет хуже все видно.
Понятно. В твоём случае, имхо, если сделать минимап как в Sublime — он нормально впишется, т.к. этот Overview Bar у тебя, как бы, отдельно, не внутри текстовой панели. Скорее всего, ты сам так и планируешь.
K>Посмотрел кстати на версию Undo/Redo selection в Sublime. Это все же не тоже самое что и Reset/Restore selection в HE. Оно и называется Soft Undo/Redo. Sublime просто сохраняет в общую историю изменений, наряду с реальными изменениями текста, изменения позиций курсора/выделений (моде еще что). И при отмене, либо пропускает все до изменения текста (если нормальное Undo) либо идет более "мелкими" шагами, включающими и изменения выделений позиций, при Soft Undo. Функция конечно крутая, это да, но работает это только потому что к одному документу привязано только одно представление (в Sublime нет ни split screen ни еще одного вида документа в другом окне — стандартный MFC функционал). А как это забабахать если представлений много и позиции/выделения у них свои — история то общая, в документе.
K>У меня все эти функции реализованы отдельно (позиции курсора, выделения — правда только последнее
). Перемещения каретки тоже вообще то в документе сохраняется. Че так не помню. Баг наверное, но пока не жаловались — не нашли.
Понятно. Вот что значит, профессиональный взгляд.
Кстати, удобной работы с документами/буферами реально не хватает в том же Sublime, и в HippoEdit тоже, к сожалению. У твоих пользователей это не так востребовано, похоже.
K>Инвестировать в GUI я не хочу пока. Перееду потом на VS 2011 и перейду на новый MFC, убью свою GUI библиотеку, и от новой MFC уже буду плясать. Все равно все эти екстеншены придется таскать.
А сейчас свое расширение работает в интерфейсе, не Codejock какой-нибудь? А новая MFC уже какая-то настраиваемая, по мотивам цветовых тем как в новой студии (я сейчас этими вопросами не занимаюсь) ?
PSV>>И ещё одно замечание. Я заметил, что в диалоге настроек не все элементы имеют раздел справки (по кнопке-вопросику). Я понимаю, что перед релизом ты будешь рихтовать help. Я обращаю внимание, что есть элементы, которые ссылаются не на свой раздел, ряд контролов указывают на одно и тоже (кто-то не на своё).
K>Та с помощью там вообще завал
Это как раза та неблагодарная работа, неинтересная и за которую деньги не платят. Контекстный help буду править по месту, как будут жаловаться.
Вот она халтура где