Вопрос по снятию кавычек с выделенного текста остается открытым, т.е. пожеланием.
Ну и до кучи - опция весьма полезная, может сильно облегчить жизнь
Почему бы не вынести птичку в настройки плагина? Обычный пользователь вряд ли предположит, что такая "фишка" включатся в ini-файле. Он будет думать, что такой функции просто нет.
Cuprum wrote:Вопрос по снятию кавычек с выделенного текста остается открытым, т.е. пожеланием.
Подразумевает ли это, что при заключении выделенного текста в кавычки эти кавычки тоже должны выделяться? То есть:
[текст] -> Нажата " -> ["текст"] -> Нажата " -> [текст] -> Нажата " -> ["текст"] -> ...
Сейчас так:
[текст] -> Нажата " -> "[текст]" -> Нажата " -> ""[текст]"" -> ...
Если поднатужиться, то можно сделать и так (а можно и не успеть добежать до туалета )
Однако, все ли будут согласны с таким поведением, что, к примеру, выделенный текст
Не выделенный текст, а одна выделенная и вторая подсвеченная кавычки. Т.е. (текст)
в "текст"
Хотя, можно и так, как описано выше, но с клавишей-модификатором
Еще вариант: если выделены только буквы текст, то сработает как сейчас, а если вместе с кавычками/скобками (текст) - то заменит скобки "текст"
Еще лучше - без выделения: курсор рядом со скобкой/кавычкой, кавычки, соответственно подсвечены - обе кавычки меняются при и спользовании клавиши-модификатора и нужной кавычки/скобки.
Было бы здорово! Плюс еще со всеми возможными обрамителями (апостроф, знаки дюймов, кавычки-елочки, скобки, больше-меньше), а также чтобы можно было делать это с клавишей-модификатором (напр., ctrl + ", для тех, кто не хочет отказываться от замены выделенного текста на введенный символ).
Уж если все равно кусок текста необходимо выделять, то не проще ли пользоваться готовыми "скритовыми решениями". Тем более что 99% нужного для этого кода есть в штатном скрипте "Test.js". Например, задача замены любых крайних символов на кавычки решается в
//Получить выделенный текст
var pText=AkelPad.GetSelText();
//Получить размер выделенного текста
pTextLen = pText.length;
//Убрать первый и последний символы в выделенном тексте
pText = pText.substring(1, pTextLen - 1);
//Заменить выделение, заменив крайние символы на двойные кавычки
AkelPad.ReplaceSel("\"" + pText + "\"");
Вместо кавычек можно поставить кому что нравится. Конечно, для каждого варианта замены необходим "свой скрипт", ну так и при реализации в плагине придется в какой-то момент "определять" свой выбор замены явным образом.
opk44
Не согласен. Скрипты надо подключать, настраивать. А в рамках плагина, если будет настройка хотя бы базовых возможностей через GUI, все можно сделать проще и доступнее.
Cuprum wrote:Скрипты надо подключать, настраивать.
Да, это так.
Cuprum wrote:...в рамках плагина, если будет настройка ... через GUI, все можно сделать проще и доступнее.
Наверное "настройка через GUI" имеет в ваших глазах определенное преимущество, а мне думается что эта "простота и доступность" лишь кажущиеся.
Поясню. Предлагаю рассматривать скрипт как "мини-плагин" (и тот и другой добавляет некую дополнительную функциональность). С настройкой плагина разбираться все равно же придется? С "настройкой" скрипта все не на много сложнее. Нужно знать лишь "куда его положить" (путь к СТАНДАРТНОЙ папке), как связать вызов скрипта с кнопкой (тоже СТАНДАРТНО и от скрипта не зависит), ну и про хот-кеи в хелпе посмотреть не помешает. Собственно и все. Т.е. если скрипт УЖЕ ЕСТЬ, то каких-то особенных проблем с его подключением я не вижу.
Вот если скрипта ЕЩЕ НЕТ, и его только предстоит написать, тогда да, это не всякому с первого раза удается. Но сложность написания скипта (такого уровня) совсем невелика и не идет ни в какое сравнение со сложностью написания плагина. Я никакой не программист, но даже мне это по силам. Так почему бы и вам не поверить в то, что и это "доступно"? Чтобы это не было "пустыми словами", вот модифицированный пример скрипта, меняющего крайние символы выделенного участка текста на кавычки, апострофы или четыре вида скобок по выбору. Выбор указанием цифры от 1 до 6 в InputBox. Поскольку в JScript не предусмотрен InputBox, то скрипт сделан на VBScript (.vbs):
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
Нетрудно заметить, что если нужно не менять один вид "кавычек" на другой, а только обрамлять выделенный текст "кавычками", то достаточно будет выбросить две строки:
Infocatcher
1. Спасибо. Как говорится "век живи, век учись" :)
2. И это лишний раз показывает, что даже при наличии пробелов в знании программирования и документации, можно решать самостоятельно свои проблемы. Или, как говорил Филеас Фог: "Используй то, что под рукою, и не ищи себе другое..."
opk44
Соглашусь с тем о чем вы говорите, но я тут немного о другом Имею ввиду не столько написание скриптов под какие-то конкретные задачи, а именно конкретный случай - добавление/снятие кавычек для выделенного фрагмента. Согласитесь, эта функция не такая уж и специализированная и может пригодиться многим.
Возьмем типичного пользователя который пока только знает, что функциональность редактора расширяется за счет плагинов. Он включает нужные плагины, ставит нужные настройки. Наверное, ему легче будет поставить птичку в настройках плагина, чем разбираться, что плагины - это еще не все, а есть еще и скрипты, и вообще, тут можно такого наворотить! А вот если ему нужен какой-то узкоспециализированный функционал, тут он уже может попробовать скрипты.