AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Плагин для форматирования кода
Goto page Previous  1, 2
 
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins
View previous topic :: View next topic  
Author Message
private_joker



Joined: 28 May 2010
Posts: 78

PostPosted: Fri Jul 30, 2010 9:48 am    Post subject: Reply with quote

Таки да, пишу для себя AStyle плагин (степень готовности 70-80%). Решил "посовещатся" насчет окна опций, на данный момент оно имеет след. базовый вид:


Uploaded with ImageShack.us

Предмет совещания - расширенные опции, а именно то, каким образом их вводить. Вижу два вида:
1. Крыжики на каждую опцию (чекбоксы, комбобоксы). Опций кстати прилично (см. http://astyle.sourceforge.net/astyle.html ).

2. Лайн-эдит (тупо просто форма в которой пишутся аргументы ком. строки, ну или путь к файлу опций, такое в AStyle есть тоже, который будете редактировать своими ручками в том же AkelPad'е).

Свои соображения (если они есть) будьте добры опишите подробнее (можете нацарапать даже некий "скетч" диалога настроек в кач-ве илюстрации).
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2058
Location: Vinnitsa, Ukraine

PostPosted: Fri Jul 30, 2010 11:17 am    Post subject: Reply with quote

private_joker
Раз уж делаете с Гуем, то и опции должны задаваться Гуем. Я не думаю что так тяжело все параметры заммапить на кнопки.

(Вызвать приложение со скрипта, вручную задавая параметры строки - для этого плаг не нужен. Гуй в скриптах сделать возможно, но очень тяжело).
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
VladSh



Joined: 29 Nov 2006
Posts: 2653
Location: Киев, Русь

PostPosted: Fri Jul 30, 2010 11:38 am    Post subject: Reply with quote

Легче было бы просто задавать, но раз спросили...
Что-то типа того:



И желательна интерактивность поля Selected options.
Back to top
View user's profile Send private message Visit poster's website
private_joker



Joined: 28 May 2010
Posts: 78

PostPosted: Fri Jul 30, 2010 12:34 pm    Post subject: Reply with quote

FeyFre wrote:

Раз уж делаете с Гуем, то и опции должны задаваться Гуем. Я не думаю что так тяжело все параметры заммапить на кнопки.

(Вызвать приложение со скрипта, вручную задавая параметры строки - для этого плаг не нужен. Гуй в скриптах сделать возможно, но очень тяжело).


Вопрос не в тяжело/не тяжело (ты же уже готовое в Templates сокращаешь не потому что тяжело, так?) Примерный подсчет показал, что нужно более 20 чекбоксов и как минимум один спин (для Tab>Break)... Можно конечно по табконтролу/пропертищиту раскидать.
Про скрипты, я не пишу на js и не в курсе, что там можно сделать, но могу сказать что у меня запускаемый процесс будет контролироваться, есть перенаправление стандартного потока вывода (я правда пока не нашел места, куда результат воткнуть), etc. Т.е. можно не отговаривать, т.к. в первую очередь он нужен мне, то что есть (скрипт), меня не устраивает абсолютно.


VladSh wrote:
Легче было бы просто задавать, но раз спросили...
Что-то типа того:



И желательна интерактивность поля Selected options.


- не думаю что предефайнед стайлы надо выбирать радиобаттонами (в плане занимаемого места комбобокс поинтересней).
- по поводу листконтрола, возможно это выход если не использовать табконтрол.
- По интерактивность "Selected options" я непонЕл. Вместо одного или другого ты предлагаешь сделать и то и то? Т.е. зеркалить в эдитбокс (своеобразную будущую комстроку) все изменения (снял галку-убрался ключ)?
- По поводу Preview. Там не в реалтайме меняется все (только для предефайнед стилей задефайнено). Можно конечно сделать баттон , но каждый раз запускать AStyle для предпросмотра, не сильно разумно (впрочем подумаю).
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2058
Location: Vinnitsa, Ukraine

PostPosted: Fri Jul 30, 2010 12:53 pm    Post subject: Reply with quote

Quote:
Про скрипты, я не пишу на js и не в курсе, что там можно сделать, но могу сказать что у меня запускаемый процесс будет контролироваться, есть перенаправление стандартного потока вывода (я правда пока не нашел места, куда результат воткнуть), etc. Т.е. можно не отговаривать, т.к. в первую очередь он нужен мне, то что есть (скрипт), меня не устраивает абсолютно.
Если Вам не нужно в плагине создавать параллельный поток для этих целей, то Scripts вполне это потянет(всё WINAPI у Вас под руками + нативная поддержка OLE).
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
se7h



Joined: 28 Sep 2009
Posts: 767
Location: Minsk, Belarus

PostPosted: Fri Jul 30, 2010 1:08 pm    Post subject: Reply with quote

private_joker
Неужели Вам так часто нужно менять настройки AStyle?

Если нет - IMO проще настроить этот скрипт под себя и никаких GUI не нужно

в этой строке задайте нужные флаги и всё
Code:
var pToolFlags="--style=java --indent=tab";
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2653
Location: Киев, Русь

PostPosted: Fri Jul 30, 2010 1:16 pm    Post subject: Reply with quote

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.
Back to top
View user's profile Send private message Visit poster's website
VladSh



Joined: 29 Nov 2006
Posts: 2653
Location: Киев, Русь

PostPosted: Fri Jul 30, 2010 1:21 pm    Post subject: Reply with quote

se7h wrote:
Неужели Вам так часто нужно менять настройки AStyle?
Этот плаг имеет смысл для:
- визуальных настроек;
- работы в реал-тайме (после нажатия Enter для перевода строки производить корректировку кода, как это делют IDE).
Для другого - смысла не вижу.
Back to top
View user's profile Send private message Visit poster's website
private_joker



Joined: 28 May 2010
Posts: 78

PostPosted: Fri Jul 30, 2010 1:40 pm    Post subject: Reply with quote

se7h wrote:
private_joker
Неужели Вам так часто нужно менять настройки AStyle?

Если нет - IMO проще настроить этот скрипт под себя и никаких GUI не нужно

в этой строке задайте нужные флаги и всё
Code:
var pToolFlags="--style=java --indent=tab";


FeyFre wrote:
Если Вам не нужно в плагине создавать параллельный поток для этих целей, то Scripts вполне это потянет(всё WINAPI у Вас под руками + нативная поддержка OLE).



Возможно корень недопонимания - аномальная жара, но повторю: я НЕ ПИШУ на JS, мне проще написать нативный плагин, чем адаптировать данный скрипт до состояния отличного от убогого. Скриптами кстати я практически не пользуюсь.
Back to top
View user's profile Send private message
private_joker



Joined: 28 May 2010
Posts: 78

PostPosted: Fri Jul 30, 2010 2:10 pm    Post subject: Reply with quote

VladSh wrote:

- экономим на одном клике;
- сразу виден весь перечень + органично вписывается в форму.
Кстати, там не везде радиобатоны будут, кое где нужны будут чекбоксы.

Если в фокусе, можно колесом мышки Wink
На мой взгляд слишком монструозно, в стиле настроек NPP, а не AkelPad. Но других идей пока не было.


VladSh wrote:

Листконтрол слева - хорошее решение. Он очень удобен в своей наглядности.
Именно потому, что Sessions-плагин выбирает сессии из комбобокса, он не получает распространения - это неудобно, т.к. ненаглядно.


Не спорю, решение удачное на столько же, насколько часто используемое.

VladSh wrote:

Комбобоксы хороши там, где:
- требуется нечастое использование контрола;
- требуется экономить место.
Здесь ни то, ни другое не актуально.

Выше, в ответе на первую цитату. Хотя я не отказываюсь.

VladSh wrote:

Интерактивноть, т.е. обратная связь. Хотя бы для получения информации - это очень наглядно и от того юзабельно.
Т.е. я тыкаю курсором в какое-либо значение поля "Selected options", по этому действию автоматически выделяется соответствующий айтем в секции "Options", в секции Style открывается соотв. перечень, отмечается стиль, соответствующий тому, на который кликнули в "Selected options", а далее открывается соответствующее Preview.

Это надо сильно-сильно кастомайзить едитконтрол, мне лень. Да и нафиг не нужно. Вот наоборот, это можно.


VladSh wrote:

Каждый раз запускать не надо. Это удобно на этапе выбора опций.
Если превью сделано, то оно должно работать для всех Options-Styles.

Кнопка "Preview" устроит отца русской демократии? (Я напомню что каждый раз необходимо будет запускать новый процесс, форматировать, читать, и SETTEXT).
Back to top
View user's profile Send private message
private_joker



Joined: 28 May 2010
Posts: 78

PostPosted: Fri Jul 30, 2010 2:22 pm    Post subject: Reply with quote

VladSh wrote:
se7h wrote:
Неужели Вам так часто нужно менять настройки AStyle?
Этот плаг имеет смысл для:
- визуальных настроек;
- работы в реал-тайме (после нажатия Enter для перевода строки производить корректировку кода, как это делют IDE).
Для другого - смысла не вижу.


- Ну еще можно выделенное форматировать (в принципе есть уже).
- Можно к NPP присобачить наверное, там есть сейчас Universal Indent GUI, который тянет кучу бегамайт шаред либ от Qt и имеет вырвиглазной интерфейс . Хотя NPP в последнее время мне нравится все меньше, а AkelPad все больше (еслиб только не ограничение highlight плагина по работе с блочными комментариями).
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2653
Location: Киев, Русь

PostPosted: Fri Jul 30, 2010 2:54 pm    Post subject: Reply with quote

private_joker wrote:
- Ну еще можно выделенное форматировать (в принципе есть уже).
Дык, это скрипт делает.

private_joker wrote:
VladSh wrote:

Каждый раз запускать не надо. Это удобно на этапе выбора опций.
Если превью сделано, то оно должно работать для всех Options-Styles.

Кнопка "Preview" устроит отца русской демократии? (Я напомню что каждый раз необходимо будет запускать новый процесс, форматировать, читать, и SETTEXT).
Я имел ввиду Prewiew в настройках. Оно не должно показывать результаты для выделенного текста, а должно просто выдавать блоки инфы из хэлпа, т.е. чтобы человек, выбирая опцию, видел, каким образом она будет преобразовывать код; чтобы не открывать ещё и хэлп, только и всего..
Back to top
View user's profile Send private message Visit poster's website
private_joker



Joined: 28 May 2010
Posts: 78

PostPosted: Mon Aug 02, 2010 5:36 pm    Post subject: Reply with quote

VladSh wrote:
Дык, это скрипт делает.

Этот http://akelpad.sourceforge.net/forum/viewtopic.php?p=7814#7814 не делает, других тут не видел.

VladSh wrote:

Я имел ввиду Prewiew в настройках. Оно не должно показывать результаты для выделенного текста, а должно просто выдавать блоки инфы из хэлпа, т.е. чтобы человек, выбирая опцию, видел, каким образом она будет преобразовывать код; чтобы не открывать ещё и хэлп, только и всего..


Что характерно - я тоже. Имел. Ввиду. Shocked
В настройках в кач-ве предпросмотра кода просто пример (о чем недвусмысленно намекает Foo/Bar), чтобы визуально ловить каждое изменение опций, нужно этот пример (точнее содержимое) форматировать, поскольку написание мини-astyle в мои планы не входит, надо будет запускать новый процесс (astyle.exe), запускаться он будет через кнопку "Предпросмотр". И се.
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2653
Location: Киев, Русь

PostPosted: Mon Aug 02, 2010 5:54 pm    Post subject: Reply with quote

private_joker
Ну тогда это действительно что-то монструозное...
Здесь разве что-то форматируется? Просто справка показывается. Так вот я и предлагаю вставить в предпросмотр просто соответствующие куски справки. И никаких процессов astyle.exe.
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins All times are GMT
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group