X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxfind.h;h=7d660eed1180cc18959b6302c3f9d4c4a3806990;hb=2098f1d8c20d51e63e670bcdc9da8996068975bf;hp=f7a85ccdb94f94a7e66b375c12a7c8ad85078654;hpb=fd6679bd345da445495ccb430d8d93cb90faf10c;p=lyx.git diff --git a/src/lyxfind.h b/src/lyxfind.h index f7a85ccdb9..7d660eed11 100644 --- a/src/lyxfind.h +++ b/src/lyxfind.h @@ -43,8 +43,8 @@ docstring const find2string(docstring const & search, * as a string that can be dispatched to the LyX core in a FuncRequest * wrapper. */ -docstring const replace2string(docstring const & search, - docstring const & replace, +docstring const replace2string(docstring const & replace, + docstring const & search, bool casesensitive, bool matchword, bool all, @@ -66,18 +66,37 @@ void replace(BufferView * bv, FuncRequest const &, bool has_deleted = false); /// find the next change in the buffer bool findNextChange(BufferView * bv); -class FindAdvOptions { +/// 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); + +// Hopefully, nobody will ever replace with something like this +#define LYX_FR_NULL_STRING "__LYX__F&R__NULL__STRING__" + +class FindAndReplaceOptions { public: - FindAdvOptions( + typedef enum { + S_BUFFER, + S_DOCUMENT, + S_OPEN_BUFFERS, + /*S_ALL_MANUALS*/ + } SearchScope; + FindAndReplaceOptions( docstring const & search, bool casesensitive, bool matchword, bool forward, bool expandmacros, bool ignoreformat, - bool regexp + bool regexp, + docstring const & replace, + bool keep_case, + SearchScope scope = S_BUFFER ); - FindAdvOptions() { } + FindAndReplaceOptions() { } docstring search; bool casesensitive; bool matchword; @@ -85,19 +104,19 @@ public: bool expandmacros; bool ignoreformat; bool regexp; + docstring replace; + bool keep_case; + SearchScope scope; }; /// Write a FindAdvOptions instance to a stringstream -std::ostringstream & operator<<(std::ostringstream & os, lyx::FindAdvOptions const & opt); +std::ostringstream & operator<<(std::ostringstream & os, lyx::FindAndReplaceOptions const & opt); /// Read a FindAdvOptions instance from a stringstream -std::istringstream & operator>>(std::istringstream & is, lyx::FindAdvOptions & opt); - -/// Dispatch a LFUN_WORD_FINDADV command request -void findAdv(BufferView * bv, FuncRequest const & ev); +std::istringstream & operator>>(std::istringstream & is, lyx::FindAndReplaceOptions & opt); /// Perform a FindAdv operation. -bool findAdv(BufferView * bv, FindAdvOptions const & opt); +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 @@ -107,7 +126,7 @@ bool findAdv(BufferView * bv, FindAdvOptions const & opt); ** Ideally, this should not be needed, and the opt.search field should become a Text const &. **/ docstring stringifyFromForSearch( - FindAdvOptions const & opt, + FindAndReplaceOptions const & opt, DocIterator const & cur, int len = -1);