X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxfind.h;h=61f44366ec0671a93f48a9349d8bd8a3298d73c4;hb=7309ae50b4c40bdbd5c4e45962f132ec0e1a4249;hp=ff68b8ee643852295bb7d5ad2d4b415873ad318e;hpb=82e07a41859dceea240a05aeff1f361e417db355;p=lyx.git diff --git a/src/lyxfind.h b/src/lyxfind.h index ff68b8ee64..61f44366ec 100644 --- a/src/lyxfind.h +++ b/src/lyxfind.h @@ -26,6 +26,7 @@ namespace lyx { class Buffer; +class Cursor; class BufferView; class DocIterator; class FuncRequest; @@ -48,20 +49,23 @@ docstring const replace2string(docstring const & replace, bool casesensitive, bool matchword, bool all, - bool forward); + bool forward, + bool findnext = true); /** Parse the string encoding of the find request that is found in * \c ev.argument and act on it. * The string is encoded by \c find2string. * \return true if the string was found. */ -bool find(BufferView * bv, FuncRequest const & ev); +bool lyxfind(BufferView * bv, FuncRequest const & ev); /** Parse the string encoding of the replace request that is found in * \c ev.argument and act on it. * The string is encoded by \c replace2string. + * \return whether we did anything */ -void replace(BufferView * bv, FuncRequest const &, bool has_deleted = false); +bool lyxreplace(BufferView * bv, + FuncRequest const &, bool has_deleted = false); /// find the next change in the buffer bool findNextChange(BufferView * bv); @@ -69,12 +73,9 @@ bool findNextChange(BufferView * bv); /// find the previous change in the buffer bool findPreviousChange(BufferView * bv); -/// find the change in the buffer -/// \param next true to find the next change, otherwise the previous -bool findChange(BufferView * bv, bool next); +/// select change under the cursor +bool selectChange(Cursor & cur, bool forward = true); -// Hopefully, nobody will ever replace with something like this -#define LYX_FR_NULL_STRING "__LYX__F&R__NULL__STRING__" class FindAndReplaceOptions { public: @@ -82,31 +83,38 @@ public: S_BUFFER, S_DOCUMENT, S_OPEN_BUFFERS, - /*S_ALL_MANUALS*/ + S_ALL_MANUALS } SearchScope; + typedef enum { + R_EVERYTHING, + R_ONLY_MATHS + } SearchRestriction; FindAndReplaceOptions( - docstring const & search, + docstring const & find_buf_name, bool casesensitive, bool matchword, bool forward, bool expandmacros, bool ignoreformat, - bool regexp, - docstring const & replace, + docstring const & repl_buf_name, bool keep_case, - SearchScope scope = S_BUFFER + SearchScope scope = S_BUFFER, + SearchRestriction restr = R_EVERYTHING ); - FindAndReplaceOptions() { } - docstring search; + FindAndReplaceOptions() : casesensitive(false), matchword(false), forward(false), + expandmacros(false), ignoreformat(false), + keep_case(false), scope(S_BUFFER), restr(R_EVERYTHING) {} + docstring find_buf_name; bool casesensitive; bool matchword; bool forward; bool expandmacros; bool ignoreformat; - bool regexp; - docstring replace; + /// This is docstring() if no replace was requested + docstring repl_buf_name; bool keep_case; SearchScope scope; + SearchRestriction restr; }; /// Write a FindAdvOptions instance to a stringstream @@ -115,12 +123,9 @@ std::ostringstream & operator<<(std::ostringstream & os, lyx::FindAndReplaceOpti /// Read a FindAdvOptions instance from a stringstream std::istringstream & operator>>(std::istringstream & is, lyx::FindAndReplaceOptions & opt); -/// Dispatch a LFUN_WORD_FINDADV command request -void findAdv(BufferView * bv, FuncRequest const & ev); - /// Perform a FindAdv operation. bool findAdv(BufferView * bv, FindAndReplaceOptions const & opt); - + /** Computes the simple-text or LaTeX export (depending on opt) of buf starting ** from cur and ending len positions after cur, if len is positive, or at the ** paragraph or innermost inset end if len is -1.