AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Релиз AkelPad 4.8.3
Goto page Previous  1, 2
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5324

PostPosted: Wed May 22, 2013 11:34 am    Post subject: Reply with quote

[Yustas.NeO] wrote:
...но может у кого есть идеи более элегантного решения?
Можно по аналогии с вариантом от Andrey_A_A использовать поиск по кругу:
Code:
AkelPad.TextFind(0, pArgLine.substr(5), 0x08000001 /*FRF_DOWN|FRF_CYCLESEARCH*/);


Andrey_A_A wrote:
If .IsOldWindows() Then TCHAR = "A" Else TCHAR = "W" End If
Недавно появился vbTCHAR.

FeyFre
В данном случае должен помочь перенос по словам.
Back to top
View user's profile Send private message Send e-mail
FeyFre



Joined: 07 Aug 2007
Posts: 2038
Location: Vinnitsa, Ukraine

PostPosted: Wed May 22, 2013 12:57 pm    Post subject: Reply with quote

Instructor, тут вопрос в следующем: почему при обычном запуске АР(восстановление документов из сессии) такого зацикливания не происходит(в т.ч. при стократном переключении на вкладку и обратно), а при запуске с этим файлом в качестве аргумента зацикливается? Вроде бы особо ничего не меняется?

Да, попробовал включил перенос по словам. Перенеслось. Но закрытие AP превращается в ту же самую процедуру ожидания и накаливания CPU. После принудительного убивания процесса, последующий обычный запуск АР(без аргумента, просто загружается сессия) также зацикливается на этом файле(не зацикливался). Да и просто: очистить сессию, открыть пустой АР, открыть файл - висяк(при выключенном переносе открывалось мгновенно). В общем не помогло Smile А отключать CodeFold из автозапуска не хочется.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5324

PostPosted: Wed May 22, 2013 1:30 pm    Post subject: Reply with quote

FeyFre
Coder::Settings -> CodeFold1 -> Показывать список -> Авто + Лимит блоков поставить, например, "10000".
Back to top
View user's profile Send private message Send e-mail
FeyFre



Joined: 07 Aug 2007
Posts: 2038
Location: Vinnitsa, Ukraine

PostPosted: Wed May 22, 2013 2:56 pm    Post subject: Reply with quote

Instructor, попробовал. Открытие файла тепер шустрое Smile
Но теперь вылезла такая странность:
1. Открыт этот файл. Закрыл его(нет открытых файлов, PMDI). Закрыл АР. Всё норма.
2. Открываю файл по F4. Открылось шустро. Smile
3. Закрываю АР. Т.е. плагин сессий его ещё помнит.
4. Открываю файл по F4 опять. Опять наблюдаю процедуру накала CPU. Sad
Естесвенно лими на кол-во волдов стоит. Похоже палгин сессий тут вмешивается? Что интересно, если в п.4. открывать дургой файл то тоже всё шустро(наверное не обрабатывает тот большой файл). В MDI режиме впринципе та же ситуация.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
DV



Joined: 16 Nov 2006
Posts: 840
Location: Kyiv, Ukraine

PostPosted: Wed May 22, 2013 3:07 pm    Post subject: Reply with quote

FeyFre,
я бы всё-таки предложил собрать отладочные версии AkelPad, Coder и Sessions и посмотреть под отладкой, что происходит. (хотя сам я часто ленюсь так делать)
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2038
Location: Vinnitsa, Ukraine

PostPosted: Wed May 22, 2013 4:01 pm    Post subject: Reply with quote

DV, ну дык АР и собран, и эти плаги тоже перестроил только-что Smile С отлад. инфой, с символами, и студийный отладичк корректно подхватывает исходники, и даже настроил всасывание отлад.инфы системных библиотек с серверов MS. Вижу что циклится оно в связном списке фолдов, или в списке отслеживаемых точек(AE_StackPointInsert), ну в общем в коде связанном с этими точками. Да и строя с отл. инфой(/ZI компилятору, /DEBUG линкеру) приходится убирать оптимизацию(/O1 не совместим с /ZI, откзывается строится), а это опять таки влияет на результат. В общем как-то я с ходу не соерентируюсь что к чему. Многовато наверное 10000 фолдов. И 1000 много. И 100 много. И 10.
Instructor
Quote:
Coder::Settings -> CodeFold1 -> Показывать список -> Авто + Лимит блоков поставить, например, "10000".
Я только сообразил что оно у меня стояло None. Да и не долго музыка играла. Зависает при каждом удобном случае.
В общем воздержусь я пока от открытия того файла Smile
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Andrey_A_A



Joined: 03 Jun 2010
Posts: 547
Location: Сочи, Хоста

PostPosted: Wed May 22, 2013 8:31 pm    Post subject: Reply with quote

Quote:
Недавно появился vbTCHAR.

Спасибо Instructor, видел, ещё не тестировал, вставлю обязательно...
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5324

PostPosted: Thu May 23, 2013 7:44 pm    Post subject: Reply with quote

FeyFre
Тестовая
Back to top
View user's profile Send private message Send e-mail
FeyFre



Joined: 07 Aug 2007
Posts: 2038
Location: Vinnitsa, Ukraine

PostPosted: Fri May 24, 2013 11:01 am    Post subject: Reply with quote

Во, теперь летает, в в числе и при выключенном переносе строк Smile И замена ">" ">\n" в этом файле не подвешивает Smile
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
DV



Joined: 16 Nov 2006
Posts: 840
Location: Kyiv, Ukraine

PostPosted: Sat May 25, 2013 6:19 pm    Post subject: Reply with quote

Обнаружил некоторую странность при поиске с регулярными выражениями.
Есть текст:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>

Ищется std.+f

В зависимости от положения каретки, выделяется либо
#include <stdio.h>
#include <stdlib.h>
#include <stddef
.h>
либо
#include <stdio.h>
#include <stdlib.h>
#include <stddef
.h>
либо
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>

При поиске с начала файла выделяется всегда первый вариант.
Поиск std.+?f приводит к тем же результатам.
А как же добиться более, на мой взгляд, логичного результата поиска, выделяющего всегда только минимальную совпадающую часть - stddef.h ?
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 326

PostPosted: Sat May 25, 2013 9:02 pm    Post subject: Reply with quote

DV
Меня сбивает с толку буква "f" в поисковом шаблоне. Расширение ".h" нужно цеплять или нет?.
Итак, возможно я не вполне вник в суть проблемы, потому начнем с очевидного:
Точка = любой символ (буквально ЛЮБОЙ, т.е. со всеми "чудесами" в виде скобочек, пробелов и переводов строк).
Плюс = один или больше. Поэтому результат поиска совершенно логичен.
Теперь, что мы хотим? Если найти любое слово начинающееся на "std.....", тогда можно просто снабдить Вашу поисковую конструкцию ограничителем границы слова: "\b", т.е. вот так: std.+\b
Если найти любое слово начинающееся на "std" и заканчивающеся на "f" ("std....f"), тогда отказываемся от "любого символа" и переходим к "любым БУКВАМ" вот так: std[a-z]+f
Если нужно цеплять и расширение ("std....f.h"), то наверное так: std[a-z]+f\.h
Если "f" в слове не принципиально, тогда std[a-z]+\.h или так std[a-z\.]+h или даже так std\S+h (последнее весьма не надежно, поскольку "h" может встретиться и в самом слове, а не обязательно в расширении)

UPD.
В случае с использованием в поисковом шаблоне точки (т.е. "любых символов") чтобы решить проблему слишком длинных совпадений, можно еще воспользоваться вместо плюса принудительным ограничением макимального числа "повторов".
Например, "не более восьми любых символов": std.{,8}f


Last edited by opk44 on Mon May 27, 2013 7:39 am; edited 1 time in total
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5324

PostPosted: Sun May 26, 2013 8:55 am    Post subject: Reply with quote

DV
Для конкретного примера можно еще std[^\n]+f
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group