Am Freitag, dem 08.01.2021 um 11:39 +0100 schrieb Kornel Benko:
> I have problems to _use_ matched substrings in replace-mode.
> 
> For instance given regular expression containing some groups, like
>       '(xxxx)(zzzz)(yyyy)'
> and I want to change the found value to 'yyyyzzzzxxxx', so in regex I
> would write
>       '\3\2\1'
> 
> Now the selection contains '\3\2\1', this is selected (in
> lyxfind.cpp:findAdvReplace())
> with
>               cap::pasteParagraphList(cur,
> repl_buffer.paragraphs(),
>                                        
> repl_buffer.params().documentClassPtr(),
>                                         bv-
> > buffer().errorList("Paste"));
>                 LYXERR(Debug::FIND, "After pasteParagraphList() cur="
> << cur << endl);
>                 sel_len = repl_buffer.paragraphs().begin()->size();
> and then follows
>       bv->putSelectionAt(DocIterator(cur), sel_len, !opt.forward);
>         bv->processUpdateFlags(Update::Force);
> 
> How can I modify the data prior to inserting into buffer ?
> The values of '\1', '\2', '\3' are known here, but are not used.

I think you should write a function similar to changeFirstCase() that
iterates over repl_buffer and replaces the placeholder in all
paragraphs. Then the cap::pasteParagraphList() function in question
should insert the modified paragraph(s).

I don't know how difficult such a function would be, though.

Jürgen

Attachment: signature.asc
Description: This is a digitally signed message part

-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to