Scripts discussion (4)
- Author
- Message
-
Offline
- Posts: 348
- Joined: Mon Jun 03, 2019 2:33 am
Infocatcher
Я уже давно предлагал вместо совпадения букв искать в первую очередь от начала слов, ещё для скрипта меню.
DV
Удобно стало, очевидно всё, папки игнорируются, открываются сразу для просмотра. Я сейчас в линуксе экспериментирую, поэтому Windows загружаю когда накапливаются вещи, чтобы проверить. Пытался в линуксе AkelPad настроить, но всё работает кроме скриптов, и даже если установил wsh57 добился запуска, всё равно пишет ошибка в такой-то строке.
Я уже давно предлагал вместо совпадения букв искать в первую очередь от начала слов, ещё для скрипта меню.
DV
Удобно стало, очевидно всё, папки игнорируются, открываются сразу для просмотра. Я сейчас в линуксе экспериментирую, поэтому Windows загружаю когда накапливаются вещи, чтобы проверить. Пытался в линуксе AkelPad настроить, но всё работает кроме скриптов, и даже если установил wsh57 добился запуска, всё равно пишет ошибка в такой-то строке.
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
GoToAnything.js, CommandPalette.js -
Сделал, чтобы пробел (в строке фильтра) совпадал с любым символом.
Пробовал наскоком прикрутить эту штуку, не получилось. То ли там какой-то специфичный синтаксис JavaScript, то ли лыжи не едут:
https://github.com/farzher/fuzzysort/
Пробовал ещё фильтрацию/поиск сделать на регулярках, и как-то сложно выходит. Надо все спец. символы экранировать, да и результаты поиска не совсем ожиданные. Например, при фильтрации по буквам (как сейчас) фильтр вида XYZ вроде бы же соответствует регулярке X.*?Y.*?Z.*? , однако результаты другие.
Сделал, чтобы пробел (в строке фильтра) совпадал с любым символом.
Пробовал наскоком прикрутить эту штуку, не получилось. То ли там какой-то специфичный синтаксис JavaScript, то ли лыжи не едут:
https://github.com/farzher/fuzzysort/
Пробовал ещё фильтрацию/поиск сделать на регулярках, и как-то сложно выходит. Надо все спец. символы экранировать, да и результаты поиска не совсем ожиданные. Например, при фильтрации по буквам (как сейчас) фильтр вида XYZ вроде бы же соответствует регулярке X.*?Y.*?Z.*? , однако результаты другие.
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
С перетягиванием современного JavaScript на древний JScript из WSH изрядное количество сложностей…DV wrote:Пробовал наскоком прикрутить эту штуку, не получилось. То ли там какой-то специфичный синтаксис JavaScript, то ли лыжи не едут:
https://github.com/farzher/fuzzysort/
С одной стороны, необходимо притянуть polyfill (если есть, написан на старом добром синтаксисе и притянется) для
Code: Select all
var p = new Promise(
Вообще, там как-то странно выглядит, копируются огромные участки кода в go()/goAsync(), в первом приближении, как мне кажется, раз уже все равно применены свежие асинхронные Promise, можно, не дублируя код, переписать на генераторах с yield и псевдо-асинхронными опциональными паузами на таймерах. Лично мне было бы лень без веских на то причин поддерживать два куска связанного между собой кода…
Потом заменить Date.now() на new Date().getTime()
И приколхозить аналог setTimeout()
Но, возможно, он и не нужен, если выкинуть goAsync().
А можно на пробу файл с недоприкрученным fuzzysort?
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Я всего лишь попробовал его вызвать через AkelPad.Include, получил непонятную ошибку, изменил в нём одну строчку, опять получил непонятную ошибку, просмотрел синтаксис в целом, понял, что какая-то диковинка - и на этом прекратил эксперименты.Infocatcher wrote:А можно на пробу файл с недоприкрученным fuzzysort?
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Ааа…DV wrote:Я всего лишь попробовал его вызвать через AkelPad.Include, получил непонятную ошибку, изменил в нём одну строчку, опять получил непонятную ошибку, просмотрел синтаксис в целом, понял, что какая-то диковинка - и на этом прекратил эксперименты.
Я посмотрел повнимательнее, так у нас еще и поддержки new Map() нет, так что надо весь preparedCache/preparedSearchCache переписывать (если хочется производительности).
А после AkelPad.Include() ругается на использование ключевого слова в качестве свойства объекта, штуки типа { new: null } надо менять на { "new": null }.
Еще беглое обгугливание показало, что современные полифиллы тянут за собой непомерное количество маленьких полифилликов. То-то я смотрю, что современные сайты все хуже и хуже ворочаются…

В общем, переписать можно, но муторно.
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Пробная версия CommandPalette.js, использующая Include\fuzzysort.js :
https://github.com/d0vgan/AkelPad-Scrip ... rt/Scripts
https://github.com/d0vgan/AkelPad-Scrip ... rt/Scripts
-
Offline
- Posts: 348
- Joined: Mon Jun 03, 2019 2:33 am
DV
получаю ошибку
получаю ошибку
Code: Select all
Скрипт: C:\...\Scripts\Include\fuzzysort.js
Строка: 549
Символ: 5
Ошибка: Предполагается наличие идентификатора, строки или числа
Код: 800A0404
Источник: Ошибка компиляции Microsoft JScript
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Новый скрипт для выделения текущей строки:
https://github.com/d0vgan/AkelPad-Scrip ... eSelect.js
Внешне возможность выделения текущей строки напоминает оную из скрипта LinesSelectCopyMoveDuplicate.js от KDJ, но в реализации есть существенные отличия:
- LineSelect.js для поддержки перенесенных (word-wrapped) строк проходится по внутренним структурам AECHARINDEX и AELINEDATA, тогда как LinesSelectCopyMoveDuplicate.js для этих целей временно отключает перенос строк (word wrap).
- LineSelect.js при выделении текущей строки поддерживает возможность захвата или исключения завершающего символа переноса строки, а также возможность исключать пробелы и табуляцию в начале и/или конце текущей строки.
https://github.com/d0vgan/AkelPad-Scrip ... eSelect.js
Внешне возможность выделения текущей строки напоминает оную из скрипта LinesSelectCopyMoveDuplicate.js от KDJ, но в реализации есть существенные отличия:
- LineSelect.js для поддержки перенесенных (word-wrapped) строк проходится по внутренним структурам AECHARINDEX и AELINEDATA, тогда как LinesSelectCopyMoveDuplicate.js для этих целей временно отключает перенос строк (word wrap).
- LineSelect.js при выделении текущей строки поддерживает возможность захвата или исключения завершающего символа переноса строки, а также возможность исключать пробелы и табуляцию в начале и/или конце текущей строки.
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
openFileIn.js v.0.2.0.1 - 2021-08-15
[*] Now used AkelPad.Include() to load openFileIn-options.js.
[+] Added paths for Vivaldi browser.
[*] Now used AkelPad.Include() to load openFileIn-options.js.
[+] Added paths for Vivaldi browser.
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
GoToAnything.js теперь поддерживает нечеткий поиск строки:
https://github.com/d0vgan/AkelPad-Scrip ... nything.js
Например:
@isfuzzy теперь может найти IsTextSearchFuzzy
@gtang теперь может найти GoToAnything
https://github.com/d0vgan/AkelPad-Scrip ... nything.js
Например:
@isfuzzy теперь может найти IsTextSearchFuzzy
@gtang теперь может найти GoToAnything
-
Offline
- Posts: 278
- Joined: Mon Jun 20, 2011 8:33 am
- Location: Электросталь
Всем доброго здоровья!
AZJIO, texter, запускаю ваш FindReplaceEx.js (на github у texter нашёл) и стабильно происходит краш при вызове `Find All...` -> `Show log panel - entire lines`, т.е. при вызове LogHighlight.js:
Часть строк окна редактора окрашивается в чёрный цвет и вот эта ошибка памяти. AkelPad у меня 4.9.9 последнего коммита, собранный из репозитория самостоятельно. Разрядности обе, и краш на обеих воспроизводится.
При этом SearchReplace_extended.js с той же функцией вызова LogHighlight.js отрабатывает без запинки, всё подсвечивает (очень красиво смотрится, молодцы))).
Не могли бы взглянуть, пожалуйста. Если поможет, готов отгрузить куда-нибудь свою папку с Akel'ем.
AZJIO, texter, запускаю ваш FindReplaceEx.js (на github у texter нашёл) и стабильно происходит краш при вызове `Find All...` -> `Show log panel - entire lines`, т.е. при вызове LogHighlight.js:
Code: Select all
The instruction at 0x1002086d referenced memory at 0x00001a18. The memory could not be read.
При этом SearchReplace_extended.js с той же функцией вызова LogHighlight.js отрабатывает без запинки, всё подсвечивает (очень красиво смотрится, молодцы))).
Не могли бы взглянуть, пожалуйста. Если поможет, готов отгрузить куда-нибудь свою папку с Akel'ем.
-
Offline
- Posts: 278
- Joined: Mon Jun 20, 2011 8:33 am
- Location: Электросталь
texter, а Вы в SearchReplace_extended.js CommonFunctions.js от VladSh родной 2.19 используете или «подкручивали» его? Быть может Вам стоит на github'е папку Include создать и туда зависимости положить?
Много удобных хоткеев добавили — это замечательно. Может стоит окошко (даже alert простой) по F1 со шпаргалкой по этим хоткеям добавить? А то все не упомнишь...
Много удобных хоткеев добавили — это замечательно. Может стоит окошко (даже alert простой) по F1 со шпаргалкой по этим хоткеям добавить? А то все не упомнишь...