XBrackets plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

XBrackets-Rus.txt wrote:autocomplete.sel_autobr = 1
Некоторые доп. настройки даже я сам уже не помню :)

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

DV, se7h
Спасибо, другое дело!

Вопрос по снятию кавычек с выделенного текста остается открытым, т.е. пожеланием.

Ну и до кучи - опция весьма полезная, может сильно облегчить жизнь ;)
Почему бы не вынести птичку в настройки плагина? Обычный пользователь вряд ли предположит, что такая "фишка" включатся в ini-файле. Он будет думать, что такой функции просто нет.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Cuprum wrote:Вопрос по снятию кавычек с выделенного текста остается открытым, т.е. пожеланием.
Подразумевает ли это, что при заключении выделенного текста в кавычки эти кавычки тоже должны выделяться? То есть:
[текст] -> Нажата " -> ["текст"] -> Нажата " -> [текст] -> Нажата " -> ["текст"] -> ...
Сейчас так:
[текст] -> Нажата " -> "[текст]" -> Нажата " -> ""[текст]"" -> ...

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

И еще:

["]текст["] -> Нажата Win+' -> [']текст['] -> Нажата Win+( -> [(]текст[)] -> ...

[off]Неужели дождался...[/off]

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

DV
Имхо, логичнее первый вариант, а не так как сейчас

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Serge Yolkin wrote:["]текст["] -> Нажата Win+' -> [']текст['] -> Нажата Win+( -> [(]текст[)] -> ...
Если поднатужиться, то можно сделать и так (а можно и не успеть добежать до туалета :))
Однако, все ли будут согласны с таким поведением, что, к примеру, выделенный текст

Code: Select all

(текст)
при нажатии " превратится в

Code: Select all

"текст"
а не в

Code: Select all

"(текст)"
На мой взгляд, это спорный момент.

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

DV wrote:Однако, все ли будут согласны с таким поведением, что, к примеру, выделенный текст

Code: Select all

(текст)
при нажатии " превратится в

Code: Select all

"текст"
а не в

Code: Select all

"(текст)"
На мой взгляд, это спорный момент.
Не выделенный текст, а одна выделенная и вторая подсвеченная кавычки. Т.е.
(текст)
в
"текст"

Хотя, можно и так, как описано выше, но с клавишей-модификатором

Еще вариант: если выделены только буквы текст, то сработает как сейчас, а если вместе с кавычками/скобками (текст) - то заменит скобки "текст"

Еще лучше - без выделения: курсор рядом со скобкой/кавычкой, кавычки, соответственно подсвечены - обе кавычки меняются при и спользовании клавиши-модификатора и нужной кавычки/скобки.

В общем, устроит почти любой вариант.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

DV
При разнородных закавыках можно их добавлять. Заменять, к примеру, при дополнительном нажатии Ctrl.

Этот вариант поддерживаю:

Code: Select all

[текст] -> Нажата " -> ["текст"] -> Нажата " -> [текст] -> Нажата " -> ["текст"] -> ...

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

Было бы здорово! Плюс еще со всеми возможными обрамителями (апостроф, знаки дюймов, кавычки-елочки, скобки, больше-меньше), а также чтобы можно было делать это с клавишей-модификатором (напр., ctrl + ", для тех, кто не хочет отказываться от замены выделенного текста на введенный символ).

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Уж если все равно кусок текста необходимо выделять, то не проще ли пользоваться готовыми "скритовыми решениями". Тем более что 99% нужного для этого кода есть в штатном скрипте "Test.js". Например, задача замены любых крайних символов на кавычки решается в

Code: Select all

//Получить выделенный текст
var pText=AkelPad.GetSelText(); 
//Получить размер выделенного текста
 pTextLen = pText.length; 
//Убрать первый и последний символы в выделенном тексте
 pText = pText.substring(1, pTextLen - 1); 
//Заменить выделение, заменив крайние символы на двойные кавычки 
AkelPad.ReplaceSel("\"" + pText + "\"");

Вместо кавычек можно поставить кому что нравится. Конечно, для каждого варианта замены необходим "свой скрипт", ну так и при реализации в плагине придется в какой-то момент "определять" свой выбор замены явным образом.

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

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

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Cuprum wrote:Скрипты надо подключать, настраивать.
Да, это так.
Cuprum wrote:...в рамках плагина, если будет настройка ... через GUI, все можно сделать проще и доступнее.
Наверное "настройка через GUI" имеет в ваших глазах определенное преимущество, а мне думается что эта "простота и доступность" лишь кажущиеся.
Поясню. Предлагаю рассматривать скрипт как "мини-плагин" (и тот и другой добавляет некую дополнительную функциональность). С настройкой плагина разбираться все равно же придется? С "настройкой" скрипта все не на много сложнее. Нужно знать лишь "куда его положить" (путь к СТАНДАРТНОЙ папке), как связать вызов скрипта с кнопкой (тоже СТАНДАРТНО и от скрипта не зависит), ну и про хот-кеи в хелпе посмотреть не помешает. Собственно и все. Т.е. если скрипт УЖЕ ЕСТЬ, то каких-то особенных проблем с его подключением я не вижу.
Вот если скрипта ЕЩЕ НЕТ, и его только предстоит написать, тогда да, это не всякому с первого раза удается. Но сложность написания скипта (такого уровня) совсем невелика и не идет ни в какое сравнение со сложностью написания плагина. Я никакой не программист, но даже мне это по силам. Так почему бы и вам не поверить в то, что и это "доступно"? Чтобы это не было "пустыми словами", вот модифицированный пример скрипта, меняющего крайние символы выделенного участка текста на кавычки, апострофы или четыре вида скобок по выбору. Выбор указанием цифры от 1 до 6 в InputBox. Поскольку в JScript не предусмотрен InputBox, то скрипт сделан на VBScript (.vbs):

Code: Select all

Dim pText, pTextLen, prompt, ibQuotes
''Получить выделенный текст
 pText=AkelPad.GetSelText
''Получить размер выделенного текста
 pTextLen = Len(pText)
''Убрать первый и последний символы в выделенном тексте
 pText = Mid(pText, 2, pTextLen - 2)
'' Подготовить сообщение 
 prompt = "Введите цифру, соотв. желаемому типу кавычек:" & VbCrLf _
 & "1 = "" "" (двойные кавычки)" &  VbCrLf _
 & "2 = ( ) (круглые скобки)" &  VbCrLf _
 & "3 = [ ] (квадратные скобки)" &  VbCrLf _
 & "4 = { } (фигурные скобки)" &  VbCrLf _
 & "5 = < > (угловые скобки)" &  VbCrLf _
 & "6 = " & Chr(39) & " " & Chr(39) & " (апострофы)"

''Заменить выделение, заменив крайние символы на парные "кавычки" желаемого типа 
 ibQuotes = InputBox(prompt, "Выбор кавычек")
Select Case ibQuotes
      Case 1     AkelPad.ReplaceSel """" & pText & """"
      Case 2     AkelPad.ReplaceSel "(" & pText & ")"
      Case 3     AkelPad.ReplaceSel "[" & pText & "]"
      Case 4     AkelPad.ReplaceSel "{" & pText & "}"
      Case 5     AkelPad.ReplaceSel "<" & pText & ">"
      Case 6     AkelPad.ReplaceSel Chr(39) & pText & Chr(39)
      Case Else      MsgBox "Данный вариант не обрабатывается"
   End Select

Нетрудно заметить, что если нужно не менять один вид "кавычек" на другой, а только обрамлять выделенный текст "кавычками", то достаточно будет выбросить две строки:

Code: Select all

 pTextLen = Len(pText)
 pText = Mid(pText, 2, pTextLen - 2)
Вот и все. А "ждать у моря погоды" пока что-то кем-то будет реализована в плагинах... Зачем?

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

opk44 wrote:Поскольку в JScript не предусмотрен InputBox
Scripts-Rus.txt wrote:AkelPad.InputBox
________________

Диалог ввода строки.

InputBox(hHandle, pCaption, pLabel, pEdit);

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Infocatcher
1. Спасибо. Как говорится "век живи, век учись" :)
2. И это лишний раз показывает, что даже при наличии пробелов в знании программирования и документации, можно решать самостоятельно свои проблемы. Или, как говорил Филеас Фог: "Используй то, что под рукою, и не ищи себе другое..."

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

opk44
Соглашусь с тем о чем вы говорите, но я тут немного о другом ;) Имею ввиду не столько написание скриптов под какие-то конкретные задачи, а именно конкретный случай - добавление/снятие кавычек для выделенного фрагмента. Согласитесь, эта функция не такая уж и специализированная и может пригодиться многим.
Возьмем типичного пользователя который пока только знает, что функциональность редактора расширяется за счет плагинов. Он включает нужные плагины, ставит нужные настройки. Наверное, ему легче будет поставить птичку в настройках плагина, чем разбираться, что плагины - это еще не все, а есть еще и скрипты, и вообще, тут можно такого наворотить! А вот если ему нужен какой-то узкоспециализированный функционал, тут он уже может попробовать скрипты.
Post Reply