Scripts discussion (1)
- Author
- Message
-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
VladSh
Значит если нужно именно в окне редактирования, то прямая дорога к его сообщениям AEM_*
В данном случае Вам нужно сообщение AEM_FINDTEXT - собственно оно и выполняет поиск(получает указания что искать, и возвращает место), только сам редактор ещё и отмечает выделение и скроллит окно, а Вы будете делать что Вам нужно. Подробнее смотрите исходники файлы edit.c edit.h akeledit.c akeledit.h
Значит если нужно именно в окне редактирования, то прямая дорога к его сообщениям AEM_*
В данном случае Вам нужно сообщение AEM_FINDTEXT - собственно оно и выполняет поиск(получает указания что искать, и возвращает место), только сам редактор ещё и отмечает выделение и скроллит окно, а Вы будете делать что Вам нужно. Подробнее смотрите исходники файлы edit.c edit.h akeledit.c akeledit.h
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 670
- Joined: Thu Jun 03, 2010 8:47 am
- Location: Сочи, Хоста
- Contact:
Столкнулся с такой проблемой. Необходимо выделить "стилем" в тексте определенное слово. Но слово это в тексте встречается в разных формах: name, NAME, Namе, ... Пытался сделать разными способами... получается следующее - выделяется слово "name", но когда доходит очередь до выделения "NAME" предыдущее выделение сбрасывается... может я иду не по тому путю?
попробуйте на тексте
хотелось бы чтобы выделилось и "name" и "NAME"
Code: Select all
With AkelPad
pName = "name"
Call .SetSel(0, -1)
SumText = AkelPad.GetSelText()
If InStr(SumText, pName) > 0 Then Call StrColor(pName,"#94FEFE", "#000000")
If InStr(SumText, UCase(pName)) > 0 Then Call StrColor(UCase(pName), "#FFFF00", "#000000")
End With
Function StrColor(cName, cl1, cl2)
With AkelPad
cSelStart = InStr(Replace(SumText, vbNewLine, "1"), cName)
Call .SetSel(cSelStart - 1, cSelStart + Len(cName) - 1)
Call .Call("Coder::HighLight", 2, cl1, cl2 , 1, 0, 1)
End With
End Function
Code: Select all
1111name1111
1111NAME1111
-
Offline
- Posts: 670
- Joined: Thu Jun 03, 2010 8:47 am
- Location: Сочи, Хоста
- Contact:
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
На прошлой неделе затеял изменение своих скриптов... Поменялось почти всё; хотелось бы отметить те скрипты, в которых добавились какие-либо важные или удобные штуки, и в которых были устранены досадные мелочи:
• OpenHelpString.js - добавлена поддержка автоматического определения слова, на котором установлен курсор, соответственно этот функционал распространяется на все использующие скрипты;
• InsertInetStyleQuote.js в связи с расширением функционала был переименован в InsertBefore.js - вставка пункта параграфа теперь может производиться и по выделенному тексту; вставляемый текст может настраиваться в аргументах;
• CreateSubParagraph.js - наконец-то правильно сделан перенос части строки, расположенной справа от каретки, на новую строку;
• HTMLul.js -> XMLStructure.js; структура настраивается в аргументах;
• HTMLDelBlock.js -> XMLDelBlock.js; кроме указания конкретных удаляемых тэгов в аргументах добавлена возможность автоматического определения удаляемого тэга по позиции, установленной пользователем, каретки;
• BlockSelect.js сильно изменился, - теперь тэги можно передавать в аргументах; скрипт очень помогает, - см. примеры вызовов в теле скрипта;
• OpenByLSC.js - теперь поддерживается и директория ..\Scripts\Include\.
Добавились скрипты:
• RecalcLineNumbers.js - пересчёт номеров пунктов; при перепросчёте учитывается уровень вложенности; поддерживается пересчёт номеров с определённой строки либо только для выделенных строк;
• ScriptNameCopyAsBBCode.js - копирует название скрипта в BBCode, подставляя в URL первую найденную в окне редактирования ссылку (нужно для быстрого составления BBCode текущего скрипта для выкладки в сообщения форума).
• OpenHelpString.js - добавлена поддержка автоматического определения слова, на котором установлен курсор, соответственно этот функционал распространяется на все использующие скрипты;
• InsertInetStyleQuote.js в связи с расширением функционала был переименован в InsertBefore.js - вставка пункта параграфа теперь может производиться и по выделенному тексту; вставляемый текст может настраиваться в аргументах;
• CreateSubParagraph.js - наконец-то правильно сделан перенос части строки, расположенной справа от каретки, на новую строку;
• HTMLul.js -> XMLStructure.js; структура настраивается в аргументах;
• HTMLDelBlock.js -> XMLDelBlock.js; кроме указания конкретных удаляемых тэгов в аргументах добавлена возможность автоматического определения удаляемого тэга по позиции, установленной пользователем, каретки;
• BlockSelect.js сильно изменился, - теперь тэги можно передавать в аргументах; скрипт очень помогает, - см. примеры вызовов в теле скрипта;
• OpenByLSC.js - теперь поддерживается и директория ..\Scripts\Include\.
Добавились скрипты:
• RecalcLineNumbers.js - пересчёт номеров пунктов; при перепросчёте учитывается уровень вложенности; поддерживается пересчёт номеров с определённой строки либо только для выделенных строк;
• ScriptNameCopyAsBBCode.js - копирует название скрипта в BBCode, подставляя в URL первую найденную в окне редактирования ссылку (нужно для быстрого составления BBCode текущего скрипта для выкладки в сообщения форума).
-
Offline
- Posts: 670
- Joined: Thu Jun 03, 2010 8:47 am
- Location: Сочи, Хоста
- Contact:
изменение своих скриптов...
Вопрос или просьба ко всем скринописателем. Можно ли как-то одинаково указывать в комментариях позиции: Атор, Версия
Дело в том, что скрипты частенько изменяются\улучшаются и не всегда помнишь что обновлял, а что нет.Я написал скрипт (позже выложу) где в пользовательских колонках Total Commander можно просматривать Автора, Версию, ссылку, е-майл. Но трудность заключается (и не только со скриптами на этом форуме) в том, что не все записывают хотя бы два параметра - Автора и Версию или дату изменения.
Кстати предложение к первому посту "Scripts collection"(где список авторов и их скриптов) Указывать версию, или дату изменения. Или Сделать отдельную страницу, показывающую список всех изменённых скриптов с определённой даты. (в поиске например)
Я понимаю, что ряду писателей всё равно, но всё же хотя бы версию... ведь всё что здесь делается - это экономия времени...
Вопрос или просьба ко всем скринописателем. Можно ли как-то одинаково указывать в комментариях позиции: Атор, Версия
Дело в том, что скрипты частенько изменяются\улучшаются и не всегда помнишь что обновлял, а что нет.Я написал скрипт (позже выложу) где в пользовательских колонках Total Commander можно просматривать Автора, Версию, ссылку, е-майл. Но трудность заключается (и не только со скриптами на этом форуме) в том, что не все записывают хотя бы два параметра - Автора и Версию или дату изменения.
Кстати предложение к первому посту "Scripts collection"(где список авторов и их скриптов) Указывать версию, или дату изменения. Или Сделать отдельную страницу, показывающую список всех изменённых скриптов с определённой даты. (в поиске например)
Я понимаю, что ряду писателей всё равно, но всё же хотя бы версию... ведь всё что здесь делается - это экономия времени...
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Instructor
Есть старая добрая функция SelCompleteLine, но я заметил, что некоторые скрипты работают не совсем так, как хотелось бы...
А хотелось бы чтобы они работали не по "строкам", которые отображает редактор, а по целым строкам-предложениям, т.е. хотелось бы ещё функцию SelCompleteПредложение, по аналогии с тройным кликом на предложении.
P.S. Кстати, тройной клик опять почему-то стал глючить.. - вроде бы выделяется, но после третьего клика сбрасывается. Иногда (где-то 20-30%) работает нормально (не сбрасывается).
Есть старая добрая функция SelCompleteLine, но я заметил, что некоторые скрипты работают не совсем так, как хотелось бы...
А хотелось бы чтобы они работали не по "строкам", которые отображает редактор, а по целым строкам-предложениям, т.е. хотелось бы ещё функцию SelCompleteПредложение, по аналогии с тройным кликом на предложении.
P.S. Кстати, тройной клик опять почему-то стал глючить.. - вроде бы выделяется, но после третьего клика сбрасывается. Иногда (где-то 20-30%) работает нормально (не сбрасывается).
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
VladSh
viewtopic.php?p=11382#p11382
viewtopic.php?p=11382#p11382
-
Offline
- Site Admin
- Posts: 6403
- Joined: Thu Jul 06, 2006 7:20 am
VladSh wrote:• OpenHelpString.js
Code: Select all
pContent = AkelPad.ReadFile(pFile);
if (pContent)

VladSh wrote:• ScriptNameCopyAsBBCode.js
Code: Select all
var pURL = AkelPad.GetTextRange(0, -2); //берём до конца файла
Отключаем "SmartSel::NoSelOEL".VladSh wrote:P.S. Кстати, тройной клик опять почему-то стал глючить.. - вроде бы выделяется, но после третьего клика сбрасывается. Иногда (где-то 20-30%) работает нормально (не сбрасывается).
Это ручная работа, меняем по мере возможности: я и VladSh. На той странице есть архивы тех людей, которые наиболее часто менят скрипты. В архивах фиксируется дата скрипта.Andrey_A_A wrote:Кстати предложение к первому посту "Scripts collection"(где список авторов и их скриптов) Указывать версию, или дату изменения...
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Site Admin
- Posts: 6403
- Joined: Thu Jul 06, 2006 7:20 am
VladSh wrote: Скрипты откорректировал.
Code: Select all
if (AkelPad.ReadFile(pFile))
