Плагин для форматирования кода
- Author
- Message
-
Offline
- Posts: 84
- Joined: Fri May 28, 2010 1:28 pm
Таки да, пишу для себя AStyle плагин (степень готовности 70-80%). Решил "посовещатся" насчет окна опций, на данный момент оно имеет след. базовый вид:
Uploaded with ImageShack.us
Предмет совещания - расширенные опции, а именно то, каким образом их вводить. Вижу два вида:
1. Крыжики на каждую опцию (чекбоксы, комбобоксы). Опций кстати прилично (см. http://astyle.sourceforge.net/astyle.html ).
2. Лайн-эдит (тупо просто форма в которой пишутся аргументы ком. строки, ну или путь к файлу опций, такое в AStyle есть тоже, который будете редактировать своими ручками в том же AkelPad'е).
Свои соображения (если они есть) будьте добры опишите подробнее (можете нацарапать даже некий "скетч" диалога настроек в кач-ве илюстрации).
Uploaded with ImageShack.us
Предмет совещания - расширенные опции, а именно то, каким образом их вводить. Вижу два вида:
1. Крыжики на каждую опцию (чекбоксы, комбобоксы). Опций кстати прилично (см. http://astyle.sourceforge.net/astyle.html ).
2. Лайн-эдит (тупо просто форма в которой пишутся аргументы ком. строки, ну или путь к файлу опций, такое в AStyle есть тоже, который будете редактировать своими ручками в том же AkelPad'е).
Свои соображения (если они есть) будьте добры опишите подробнее (можете нацарапать даже некий "скетч" диалога настроек в кач-ве илюстрации).
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 84
- Joined: Fri May 28, 2010 1:28 pm
Вопрос не в тяжело/не тяжело (ты же уже готовое в Templates сокращаешь не потому что тяжело, так?) Примерный подсчет показал, что нужно более 20 чекбоксов и как минимум один спин (для Tab>Break)... Можно конечно по табконтролу/пропертищиту раскидать.FeyFre wrote: Раз уж делаете с Гуем, то и опции должны задаваться Гуем. Я не думаю что так тяжело все параметры заммапить на кнопки.
(Вызвать приложение со скрипта, вручную задавая параметры строки - для этого плаг не нужен. Гуй в скриптах сделать возможно, но очень тяжело).
Про скрипты, я не пишу на js и не в курсе, что там можно сделать, но могу сказать что у меня запускаемый процесс будет контролироваться, есть перенаправление стандартного потока вывода (я правда пока не нашел места, куда результат воткнуть), etc. Т.е. можно не отговаривать, т.к. в первую очередь он нужен мне, то что есть (скрипт), меня не устраивает абсолютно.
- не думаю что предефайнед стайлы надо выбирать радиобаттонами (в плане занимаемого места комбобокс поинтересней).
- по поводу листконтрола, возможно это выход если не использовать табконтрол.
- По интерактивность "Selected options" я непонЕл. Вместо одного или другого ты предлагаешь сделать и то и то? Т.е. зеркалить в эдитбокс (своеобразную будущую комстроку) все изменения (снял галку-убрался ключ)?
- По поводу Preview. Там не в реалтайме меняется все (только для предефайнед стилей задефайнено). Можно конечно сделать баттон , но каждый раз запускать AStyle для предпросмотра, не сильно разумно (впрочем подумаю).
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
Если Вам не нужно в плагине создавать параллельный поток для этих целей, то Scripts вполне это потянет(всё WINAPI у Вас под руками + нативная поддержка OLE).Про скрипты, я не пишу на js и не в курсе, что там можно сделать, но могу сказать что у меня запускаемый процесс будет контролироваться, есть перенаправление стандартного потока вывода (я правда пока не нашел места, куда результат воткнуть), etc. Т.е. можно не отговаривать, т.к. в первую очередь он нужен мне, то что есть (скрипт), меня не устраивает абсолютно.
-
Offline
- Posts: 767
- Joined: Mon Sep 28, 2009 10:03 am
- Location: Minsk, Belarus
private_joker
Неужели Вам так часто нужно менять настройки AStyle?
Если нет - IMO проще настроить этот скрипт под себя и никаких GUI не нужно
в этой строке задайте нужные флаги и всё
Неужели Вам так часто нужно менять настройки AStyle?
Если нет - IMO проще настроить этот скрипт под себя и никаких GUI не нужно
в этой строке задайте нужные флаги и всё
Code: Select all
var pToolFlags="--style=java --indent=tab";
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
- экономим на одном клике;private_joker wrote:- не думаю что предефайнед стайлы надо выбирать радиобаттонами (в плане занимаемого места комбобокс поинтересней).
- сразу виден весь перечень + органично вписывается в форму.
Кстати, там не везде радиобатоны будут, кое где нужны будут чекбоксы.
Листконтрол слева - хорошее решение. Он очень удобен в своей наглядности.private_joker wrote:- по поводу листконтрола, возможно это выход если не использовать табконтрол.
Именно потому, что Sessions-плагин выбирает сессии из комбобокса, он не получает распространения - это неудобно, т.к. ненаглядно.
Комбобоксы хороши там, где:
- требуется нечастое использование контрола;
- требуется экономить место.
Здесь ни то, ни другое не актуально.
Интерактивноть, т.е. обратная связь. Хотя бы для получения информации - это очень наглядно и от того юзабельно.private_joker wrote:- По интерактивность "Selected options" я непонЕл.
Т.е. я тыкаю курсором в какое-либо значение поля "Selected options", по этому действию автоматически выделяется соответствующий айтем в секции "Options", в секции Style открывается соотв. перечень, отмечается стиль, соответствующий тому, на который кликнули в "Selected options", а далее открывается соответствующее Preview.
Каждый раз запускать не надо. Это удобно на этапе выбора опций.private_joker wrote:- По поводу Preview. Там не в реалтайме меняется все (только для предефайнед стилей задефайнено). Можно конечно сделать баттон , но каждый раз запускать AStyle для предпросмотра, не сильно разумно (впрочем подумаю).
Если превью сделано, то оно должно работать для всех Options-Styles.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 84
- Joined: Fri May 28, 2010 1:28 pm
se7h wrote:private_joker
Неужели Вам так часто нужно менять настройки AStyle?
Если нет - IMO проще настроить этот скрипт под себя и никаких GUI не нужно
в этой строке задайте нужные флаги и всёCode: Select all
var pToolFlags="--style=java --indent=tab";
FeyFre wrote:Если Вам не нужно в плагине создавать параллельный поток для этих целей, то Scripts вполне это потянет(всё WINAPI у Вас под руками + нативная поддержка OLE).
Возможно корень недопонимания - аномальная жара, но повторю: я НЕ ПИШУ на JS, мне проще написать нативный плагин, чем адаптировать данный скрипт до состояния отличного от убогого. Скриптами кстати я практически не пользуюсь.
-
Offline
- Posts: 84
- Joined: Fri May 28, 2010 1:28 pm
Если в фокусе, можно колесом мышкиVladSh wrote: - экономим на одном клике;
- сразу виден весь перечень + органично вписывается в форму.
Кстати, там не везде радиобатоны будут, кое где нужны будут чекбоксы.
На мой взгляд слишком монструозно, в стиле настроек NPP, а не AkelPad. Но других идей пока не было.
Не спорю, решение удачное на столько же, насколько часто используемое.VladSh wrote: Листконтрол слева - хорошее решение. Он очень удобен в своей наглядности.
Именно потому, что Sessions-плагин выбирает сессии из комбобокса, он не получает распространения - это неудобно, т.к. ненаглядно.
Выше, в ответе на первую цитату. Хотя я не отказываюсь.VladSh wrote: Комбобоксы хороши там, где:
- требуется нечастое использование контрола;
- требуется экономить место.
Здесь ни то, ни другое не актуально.
Это надо сильно-сильно кастомайзить едитконтрол, мне лень. Да и нафиг не нужно. Вот наоборот, это можно.VladSh wrote: Интерактивноть, т.е. обратная связь. Хотя бы для получения информации - это очень наглядно и от того юзабельно.
Т.е. я тыкаю курсором в какое-либо значение поля "Selected options", по этому действию автоматически выделяется соответствующий айтем в секции "Options", в секции Style открывается соотв. перечень, отмечается стиль, соответствующий тому, на который кликнули в "Selected options", а далее открывается соответствующее Preview.
Кнопка "Preview" устроит отца русской демократии? (Я напомню что каждый раз необходимо будет запускать новый процесс, форматировать, читать, и SETTEXT).VladSh wrote: Каждый раз запускать не надо. Это удобно на этапе выбора опций.
Если превью сделано, то оно должно работать для всех Options-Styles.
-
Offline
- Posts: 84
- Joined: Fri May 28, 2010 1:28 pm
- Ну еще можно выделенное форматировать (в принципе есть уже).VladSh wrote:Этот плаг имеет смысл для:se7h wrote:Неужели Вам так часто нужно менять настройки AStyle?
- визуальных настроек;
- работы в реал-тайме (после нажатия Enter для перевода строки производить корректировку кода, как это делют IDE).
Для другого - смысла не вижу.
- Можно к NPP присобачить наверное, там есть сейчас Universal Indent GUI, который тянет кучу бегамайт шаред либ от Qt и имеет вырвиглазной интерфейс . Хотя NPP в последнее время мне нравится все меньше, а AkelPad все больше (еслиб только не ограничение highlight плагина по работе с блочными комментариями).
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Дык, это скрипт делает.private_joker wrote:- Ну еще можно выделенное форматировать (в принципе есть уже).
Я имел ввиду Prewiew в настройках. Оно не должно показывать результаты для выделенного текста, а должно просто выдавать блоки инфы из хэлпа, т.е. чтобы человек, выбирая опцию, видел, каким образом она будет преобразовывать код; чтобы не открывать ещё и хэлп, только и всего..private_joker wrote:Кнопка "Preview" устроит отца русской демократии? (Я напомню что каждый раз необходимо будет запускать новый процесс, форматировать, читать, и SETTEXT).VladSh wrote: Каждый раз запускать не надо. Это удобно на этапе выбора опций.
Если превью сделано, то оно должно работать для всех Options-Styles.
-
Offline
- Posts: 84
- Joined: Fri May 28, 2010 1:28 pm
Этот viewtopic.php?p=7814#p7814 не делает, других тут не видел.VladSh wrote:Дык, это скрипт делает.
Что характерно - я тоже. Имел. Ввиду.VladSh wrote: Я имел ввиду Prewiew в настройках. Оно не должно показывать результаты для выделенного текста, а должно просто выдавать блоки инфы из хэлпа, т.е. чтобы человек, выбирая опцию, видел, каким образом она будет преобразовывать код; чтобы не открывать ещё и хэлп, только и всего..
В настройках в кач-ве предпросмотра кода просто пример (о чем недвусмысленно намекает Foo/Bar), чтобы визуально ловить каждое изменение опций, нужно этот пример (точнее содержимое) форматировать, поскольку написание мини-astyle в мои планы не входит, надо будет запускать новый процесс (astyle.exe), запускаться он будет через кнопку "Предпросмотр". И се.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
private_joker
Ну тогда это действительно что-то монструозное...
Здесь разве что-то форматируется? Просто справка показывается. Так вот я и предлагаю вставить в предпросмотр просто соответствующие куски справки. И никаких процессов astyle.exe.
Ну тогда это действительно что-то монструозное...
Здесь разве что-то форматируется? Просто справка показывается. Так вот я и предлагаю вставить в предпросмотр просто соответствующие куски справки. И никаких процессов astyle.exe.