Page 17 of 27

Posted: Tue Nov 22, 2011 11:28 am
by DV
XBrackets-Rus.txt wrote:autocomplete.sel_autobr = 1
Некоторые доп. настройки даже я сам уже не помню :)

Posted: Tue Nov 22, 2011 11:43 am
by Cuprum
DV, se7h
Спасибо, другое дело!

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

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

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

Posted: Tue Nov 22, 2011 5:28 pm
by Serge Yolkin
И еще:

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

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

Posted: Tue Nov 22, 2011 6:54 pm
by Cuprum
DV
Имхо, логичнее первый вариант, а не так как сейчас

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

Code: Select all

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

Code: Select all

"текст"
а не в

Code: Select all

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

Posted: Wed Nov 23, 2011 9:05 am
by Serge Yolkin
DV wrote:Однако, все ли будут согласны с таким поведением, что, к примеру, выделенный текст

Code: Select all

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

Code: Select all

"текст"
а не в

Code: Select all

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

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

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

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

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

Posted: Wed Nov 23, 2011 10:07 am
by VladSh
DV
При разнородных закавыках можно их добавлять. Заменять, к примеру, при дополнительном нажатии Ctrl.

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

Code: Select all

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

Posted: Wed Nov 23, 2011 11:12 am
by Fr0sT
Было бы здорово! Плюс еще со всеми возможными обрамителями (апостроф, знаки дюймов, кавычки-елочки, скобки, больше-меньше), а также чтобы можно было делать это с клавишей-модификатором (напр., ctrl + ", для тех, кто не хочет отказываться от замены выделенного текста на введенный символ).

Posted: Wed Nov 23, 2011 2:24 pm
by opk44
Уж если все равно кусок текста необходимо выделять, то не проще ли пользоваться готовыми "скритовыми решениями". Тем более что 99% нужного для этого кода есть в штатном скрипте "Test.js". Например, задача замены любых крайних символов на кавычки решается в

Code: Select all

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

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

Posted: Thu Nov 24, 2011 4:54 am
by Cuprum
opk44
Не согласен. Скрипты надо подключать, настраивать. А в рамках плагина, если будет настройка хотя бы базовых возможностей через GUI, все можно сделать проще и доступнее.

Posted: Thu Nov 24, 2011 9:58 am
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)
Вот и все. А "ждать у моря погоды" пока что-то кем-то будет реализована в плагинах... Зачем?

Posted: Thu Nov 24, 2011 10:05 am
by Infocatcher
opk44 wrote:Поскольку в JScript не предусмотрен InputBox
Scripts-Rus.txt wrote:AkelPad.InputBox
________________

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

InputBox(hHandle, pCaption, pLabel, pEdit);

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

Posted: Thu Nov 24, 2011 8:33 pm
by Cuprum
opk44
Соглашусь с тем о чем вы говорите, но я тут немного о другом ;) Имею ввиду не столько написание скриптов под какие-то конкретные задачи, а именно конкретный случай - добавление/снятие кавычек для выделенного фрагмента. Согласитесь, эта функция не такая уж и специализированная и может пригодиться многим.
Возьмем типичного пользователя который пока только знает, что функциональность редактора расширяется за счет плагинов. Он включает нужные плагины, ставит нужные настройки. Наверное, ему легче будет поставить птичку в настройках плагина, чем разбираться, что плагины - это еще не все, а есть еще и скрипты, и вообще, тут можно такого наворотить! А вот если ему нужен какой-то узкоспециализированный функционал, тут он уже может попробовать скрипты.