Commit Graph

391 Commits

Author SHA1 Message Date
Kornel Benko
e487274ff4 Findadv: Polishing
1.) Do not remove '{}' unconditionally from \item parameter
2.) Do not output last empty entry
2018-11-05 12:58:45 +01:00
Kornel Benko
70e2f09c4f Findadv: Some glitches found while searching for English text in fr/UserGuide.lyx
Ignore \index
Handle \og and \bg as characters
Remove space in empty list-item (description or labeling)
2018-11-04 21:41:04 +01:00
Kornel Benko
aa68dcefa0 Findadv: 'Optimized' detection of matched string
This is clearly a hack, because I don't understand why the
previous code did not work.
2018-11-04 14:57:40 +01:00
Kornel Benko
e6418431dd Findadv: Handle the problem with list environments
The problem was, that the different list ennvironments
did not look different in tha latex output used for
search.
So the input of "\item ..." did not give information
if it is description, lyxlist, enumeration or labeling.

In search modus we use now "\item{enumeration}" etc.
2018-11-03 11:15:12 +01:00
Kornel Benko
5c83ad37d0 Findadv: Use '\n' as delimiter for end of data with same features
This allows to use '.' in regex without matching also wrong data.

Also added modified patch from ajd (see #11241).
2018-11-02 10:32:28 +01:00
Kornel Benko
5af8ec3240 Findadv: Allow multiple math statements in a line 2018-10-30 20:54:32 +01:00
Kornel Benko
f0d7432608 Findadv: Remaining findadv tests pass now
Exception: findadv-21, but it is not a regression,
because this one never passed.
The problem here is, that we cannot differentiate
between enumeration, itemize, description and labeling
environment here.
2018-10-29 13:17:54 +01:00
Kornel Benko
aecd98dc46 Findadv: Adapt search for special chars '[', ']', '%' and '#' 2018-10-29 07:37:32 +01:00
Kornel Benko
2d477c5e0a Changes to match math equations
Now tests findadv-01 ... findadv-20 pass too.

keytest.py: Expanded time for controll keys (like \[Return])
findadv*: expanded time for normal keys
lyxfind.cpp: Handle math equations
2018-10-28 19:40:14 +01:00
Scott Kostyshak
645d42f451 Revert "Comment out unused functions to restore -Werror"
This reverts commit bceb2390b4.

For details, see:

https://www.mail-archive.com/search?l=mid&q=4724814.5HqUF52VLN%40amd64
2018-10-28 11:43:47 -04:00
Scott Kostyshak
bceb2390b4 Comment out unused functions to restore -Werror
This commit restores compilation with -Werror and g++ version 7.3.0.

Consistent with 6dc450bc.
2018-10-27 20:59:26 -04:00
Kornel Benko
0f72179a07 Amend(4) 74c849d Advanced search with format
Prepare for use with func request. For instance to
ignore language while searching:
	setIgnoreFormat("language", true);
2018-10-27 16:57:42 +02:00
Kornel Benko
0b3f644469 Amend(3) 74c849d Advanced search with format
* Discard now unneeded code
* Remove macro '\uldepth=...'
2018-10-24 11:07:11 +02:00
Kornel Benko
2dd522472a Amend(2) 74c849d Advanced search with format
Added missing handling for chapter/chapter*
Also added frontmatter (title, author etc), but disabled ATM
2018-10-23 21:12:22 +02:00
Kornel Benko
ff9c32b382 Amend 74c849d, Advanced search with format
Remove macros like '\tiny ' or '\tiny{}' or '\tiny' followed by
any other non-alpha char correctly
2018-10-23 20:03:50 +02:00
Kornel Benko
74c849d651 Advanced search with format, preparing for selective searching
As it is now, searching with format needs ALL the features set
in order to match the pattern.
What needs to be done is a GUI specifying which of the features are
important.
1.) language
2.) font (series, shape)
3.) markup, underline, strikeout
4.) color
Having this info, the implementation is easy. Set
some variables and be done
2018-10-22 20:19:36 +02:00
Kornel Benko
140f843690 Advanced search with format, consider also sectioning macros 2018-10-20 12:47:37 +02:00
Kornel Benko
0be01de61f Advanced search with format, refactoring 2018-10-19 19:11:20 +02:00
Kornel Benko
6dc450bc46 Commented out an unused function to please a picky compiler 2018-10-19 11:10:54 +02:00
Kornel Benko
d6cc58f4a3 Amend(4) 7a03fa6: Advanced search with format:
Further normalize the latex input in case of enabled format search.

It was not enough to split the latex input on \foreignlanguage and \textcolor
macros only.
Instead also macros like \textt, or \noun etc had to be accounted for.

This patch uses therefore a different algorithm.
2018-10-18 17:37:15 +02:00
Kornel Benko
162c1f316b Amend(3) 7a03fa6: Advanced search with format:
Grrr... enable the search without format again
2018-10-15 08:09:19 +02:00
Kornel Benko
8b21b2f8fb Amend(2) 7a03fa6: Advanced search with format:
Further tweeking.
2018-10-14 20:39:13 +02:00
Kornel Benko
1967d5411c Amend edca2e0: copy && paste error 2018-10-13 22:22:48 +02:00
Kornel Benko
edca2e0c4a Amend 7a03fa6: Advanced search with format:
In the latexified text:
* Check and handle contained regex properly
* Discard superfluos '{' preventing our search engine
  to match with the search pattern
2018-10-13 21:08:26 +02:00
Kornel Benko
7a03fa6f1d Advanced search with format: Prepare latex for find
Our findadv expects something like
	prefix + 'search'
so that the regex (which is latexified too)
can work on 'search'
(In the source, the prefix is denoted by lead_as_string)

The latex output contains structs like
	\foreignlaguage(abc}{xx\textbf{boldxx\textcolor{blue}{blue 1 blue 2} XX}}
which would never match the simple prefix.

Now the above is converted to
	\foreignlaguage(abc}{xx}\\
	\foreignlaguage(abc}{\textbf{boldxx}}
	\foreignlaguage(abc}{\textbf{\textcolor{blue}{blue 1 blue 2}}}\\
	\foreignlaguage(abc}{\textbf{ XX}}
Of course, more than one language or color in an inset can be searched for now.
2018-10-12 16:47:07 +02:00
Kornel Benko
ff933b52f5 Amend(2) b78bdf8
Modified language handling

Still, there are problems, because sometimes the search pattern
does not contain the the requested info. So the 'find' often fails
for strings inside a list environment.
2018-10-06 23:50:50 +02:00
Kornel Benko
f2d82f879e Amend(1) b78bdf8
In advanced search:
* Ignore font sizes
* ignore \\[a-z]+par{} macros
* ignore \\inputencoding{...} macros
2018-10-06 09:58:29 +02:00
Kornel Benko
b78bdf80a8 Added better handling for languages and colors for advanced F&R
The change is significant if the search format is not disabled.
We try to analyze the pattern string first to get needed features
for the search.
We try to analyse the searched string and if it does not
contain all expected featers (color, language, char style, char decoration)

Still some problems though
2018-10-05 20:26:44 +02:00
Kornel Benko
2348e0b615 Advaced search: Added handling to search for colored text
if used with format enabled
2018-10-02 11:53:01 +02:00
Kornel Benko
4eb5ac9a2c Amend(4) 73188e3
* Added textsl, texttt, uline, uuline, sout, xout to the list of possible
  leading strings.
* Account for correct number of open braces in regex.
  Now the search works for enbled format too.

This is hopefully the last amend
2018-10-01 12:06:42 +02:00
Kornel Benko
cc0c58839f Amend(3) 73188e3
Adapt the positional references in regex supplied by user
so that for instance '([a-z]+)\s\1' to find identical words in sequence
is changed to '([a-z]+)\s\2'.
2018-09-30 18:37:55 +02:00
Kornel Benko
2fdc52df19 Amend(2) 73188e3.
Added noun, textsf and texit to the list of possible
leading strings if searche with format enabled.
Searching seems to work as intended now.
2018-09-30 16:15:45 +02:00
Kornel Benko
0e61e6f014 Amend(1) 73188e3.
This is slightly better, but still not satisfying.

Enable format search
Given the latexified string
	\emph{Fox jUMps}
and using emphasized regex '\w*', we find 'Fox'. That is OK.
But the next find finds ' ', which is not OK.
In contrast, searching with '\w+', we find the correct string 'jUMps'.
2018-09-29 18:46:21 +02:00
Kornel Benko
ded0dc4c1c Try to make findadv more robust if not ignoring format
If searching for instance '.+' , the found string expanded
to the end of search buffer. So we have to replace
'.' with '[^\}]'.
Also all constructs like '[^abc]' had to be changed to '[^abc\}]'
to not go behind the actual format.
There is still problem using '*', but constructs usin '+' seem to work now.
('.*' finds everything from first char in correct format
 to (including) end of next format change
 while '.+' find _only_ characters in correct format)
2018-09-29 09:38:45 +02:00
Jean-Marc Lasgouttes
e4dba53232 Do not remove character at start of paragraph when cutting
The part of code that removed space at start of paragraph have been
there forever, but its intent is unclear. For example, cutting text at
the end of a paragraph will lead to remove space at the start of this
same paragraph.

The removal of this functionality is offset by a rewrite of DEPM that
makes it more thorough.

Fixes bug #10503.
2018-07-22 23:20:21 +02:00
Richard Heck
b98cb77364 Fix bug #10933. 2018-02-24 00:32:14 -05:00
Christian Ridderström
e30f3d76d2 Bulk cleanup/fix incorrect annotation at the end of namespaces.
This commit does a bulk fix of incorrect annotations (comments) at the
end of namespaces.

The commit was generated by initially running clang-format, and then
from the diff of the result extracting the hunks corresponding to
fixes of namespace comments. The changes being applied and all the
results have been manually reviewed. The source code successfully
builds on macOS.

Further details on the steps below, in case they're of interest to
someone else in the future.

1. Checkout a fresh and up to date version of src/

    git pull && git checkout -- src && git status src

2. Ensure there's a suitable .clang-format in place, i.e. with options
   to fix the comment at the end of namespaces, including:

    FixNamespaceComments:                           true
    SpacesBeforeTrailingComments:                   1

and that clang-format is >= 5.0.0, by doing e.g.:

    clang-format -dump-config | grep Comments:
    clang-format --version

3. Apply clang-format to the source:

    clang-format -i $(find src -name "*.cpp" -or -name "*.h")

4. Create and filter out hunks related to fixing the namespace

    git diff -U0 src > tmp.patch
    grepdiff '^} // namespace' --output-matching=hunk tmp.patch  > fix_namespace.patch

5. Filter out hunks corresponding to simple fixes into to a separate patch:

    pcregrep -M -e '^diff[^\n]+\nindex[^\n]+\n--- [^\n]+\n\+\+\+ [^\n]+\n'  \
        -e '^@@ -[0-9]+ \+[0-9]+ @@[^\n]*\n-\}[^\n]*\n\+\}[^\n]*\n'         \
        fix_namespace.patch > fix_namespace_simple.patch

6. Manually review the simple patch and then apply it, after first
   restoring the source.

    git checkout -- src
    patch -p1 < fix_namespace_simple.path

7. Manually review the (simple) changes and then stage the changes

    git diff src
    git add src

8. Again apply clang-format and filter out hunks related to any
   remaining fixes to the namespace, this time filter with more
   context. There will be fewer hunks as all the simple cases have
   already been handled:

    clang-format -i $(find src -name "*.cpp" -or -name "*.h")
    git diff src > tmp.patch
    grepdiff '^} // namespace' --output-matching=hunk tmp.patch  > fix_namespace2.patch

9. Manually review/edit the resulting patch file to remove hunks for files
   which need to be dealt with manually, noting the file names and
   line numbers. Then restore files to as before applying clang-format
   and apply the patch:

    git checkout src
    patch -p1 < fix_namespace2.patch

10. Manually fix the files noted in the previous step. Stage files,
    review changes and commit.
2017-07-23 13:11:54 +02:00
Richard Heck
75bfed5507 Fix trailing whitespace in cpp files. 2017-07-03 13:53:14 -04:00
Tommaso Cucinotta
cf6bbe2147 findadv: amend [8c101829/lyxgit] check that opt.find_buf_name is found in theBuffers(). 2017-05-03 17:32:31 +02:00
Tommaso Cucinotta
3610cdf669 findadv: fix crash on wrong syntax/usage of word-findadv LFUN from mini-command. 2017-05-03 01:31:57 +02:00
Tommaso Cucinotta
4f75026176 lyxfind: cleanup regex_replace() and back to a sane amount of logging during findadv operations. 2017-04-17 00:41:29 +02:00
Tommaso Cucinotta
6d05a96546 findadv: match \textbackslash and \textasciicircum also without trailing {} (fixes autotest findadv-re-02-in.txt). 2017-04-17 00:38:31 +02:00
Tommaso Cucinotta
664798128a findadv: almost all test cases, including \regex[{}, back to working with std::regex. 2017-04-17 00:15:26 +02:00
Kornel Benko
28c320e1a0 findadv: fix compilation issue from [lyxgit/ecc36be6], when using boost instead of std regex. 2017-04-16 19:43:54 +02:00
Tommaso Cucinotta
ecc36be60b findadv: avoid crash when regexp-based search fails (mitigates #10625). 2017-04-16 11:27:34 +02:00
Jean-Marc Lasgouttes
cb888293d4 A better way to tell coverity that we do not care about result 2017-03-31 11:38:30 +02:00
Jean-Marc Lasgouttes
d7dfa27574 Try alternative syntax for signaling false positive 2017-03-24 15:54:16 +01:00
Richard Heck
ed0e4064d2 Don't need the else, since all codepaths return. 2016-12-30 11:05:01 -05:00
Richard Heck
410b0fa581 Invert logic. 2016-12-30 11:05:01 -05:00
Richard Heck
ee251c626c Re-organize, whitespace. 2016-12-30 11:05:01 -05:00
Richard Heck
b8216513d6 Remove useless for loop. 2016-12-30 11:05:01 -05:00
Tommaso Cucinotta
9740c36e80 Remove assert on advanced find with knitr module (#10444). 2016-10-27 09:38:35 +02:00
Juergen Spitzmueller
f089f60f4e Implement wrapping in next-change (#10388). 2016-10-15 16:34:16 +02:00
Jean-Marc Lasgouttes
84050268ee Remove useless #include
Including MathData.h in InsetMath.h is expensive and not required.
2016-10-14 11:08:04 +02:00
Guillaume Munch
3fd2398a28 Remove option to disable texrow
I suspect that the gain was negligible, yet it made debugging and maintainance
harder.
2016-09-23 23:39:48 +02:00
Juergen Spitzmueller
c0a425a319 Move wrap check for simple search/replace to lyxfind
This gets rid of some dirty dispatch tricks and fixes wrap-around
on replace and in the spellchecker

Fixes: #10378
2016-09-14 10:23:39 +02:00
Guillaume Munch
670efa8f64 Rationalise includes
Modifying TexRow.h or texstream.h no longer triggers the recompilation of the
complete source tree.
2016-07-04 02:42:17 +02:00
Richard Heck
355395174b Mark a number of coverity false positives.
Fixes coverity #23284, 23285, 23286, 23287, 23289.
2016-06-11 23:09:30 -04:00
Scott Kostyshak
62190855bf Revert "Now math previews are correctly updated when replacing math contents inside"
Updating all previews (even if only one has changed) is more costly
than I thought. Thanks to Guillaume for tracking down this
performance issue.

This reversion is related to the reversions at 358745d0 and
a7a14395. See also #7242 and #9855.

This reverts commit 29948eec26.
2015-11-13 00:54:15 -05:00
Scott Kostyshak
a7a143950a Revert "Update previews after doing a find/replace (#7242)"
Updating all previews (even if only one has changed) is more costly
than I thought. Thanks to Guillaume for tracking down this
performance issue.

This reversion is related to the reversion at 358745d0.
See also #7242 and #9855.

This reverts commit 66f527e417.
2015-11-13 00:50:39 -05:00
Guillaume Munch
460a764b7f Adding TexRow information on math latex output (#4725)
WriteStream is now built from an otexstream instead of an odocstream, and
therefore counts lines in a TexRow. Calls to TexRow are added in relevant places
in math insets.

This finishes adding line tracking for math in the source panel and for forward
search.
2015-10-19 06:55:17 +01:00
Georg Baum
d3b5260f45 Remove unused variables
Found by cppcheck: (style) Unused variable: x
2015-10-10 21:28:28 +02:00
Georg Baum
60e594a0f7 Fix duplicated pointer check
Found by cppcheck: (style) Same expression on both sides of '&&'.
2015-10-10 21:23:52 +02:00
Stephan Witt
d5f7ed38fc Add missing adjustment of end_pos if given length exceeds last pos 2015-10-09 08:16:23 +02:00
Stephan Witt
77cc2c7c8c Fix "dead store" warnings of Xcode analyze tool 2015-10-09 08:16:23 +02:00
Guillaume Munch
afed7d06fa Improvements to cursor highlighting in the source panel
* TexRow now computes rows from a DocIterator. In practice, the cursor
  highlighting is now correct inside insets, it is no longer restricted to the
  topmost level. It certainly also makes forward-search more precise.

* Added the option to disable a texrow when not needed, for perf.

* Fixed a bug where the last paragraph was not properly highlighted.

Limitations:

* TexRow still does not handle: math (e.g. multi-cell), sub-captions, inset
  arguments.
2015-10-01 21:51:08 +01:00
Georg Baum
b6aed54c45 Fix cppcheck variable scope warnings
These were all flagged by "(style) The scope of the variable 'x' can be reduced."
Narowing the scope improves readability, and if it is in a loop then the
compiler will be clever enough to produce efficient code, we do not need
manual optimization for POD types.
2015-09-20 10:42:35 +02:00
Georg Baum
84cca2dd94 Fix indentation 2015-05-17 17:27:27 +02:00
Georg Baum
b596330093 Fix compilation with boost 1.58
Newer boost versions use complicated type traits for boost::next and
boost::prior, which do not work with the RandomAccessList iterators.
The long term solution is to use std::next and std::prev, for now supply
simple replacements for compilers that do not support C++11 yet.
2015-05-16 00:05:23 +02:00
Scott Kostyshak
66f527e417 Update previews after doing a find/replace (#7242)
This commit addresses #7242 for normal Find/Replace. That issue was
fixed for Advanced Find at 29948eec.
2015-04-18 21:47:21 -04:00
Alfredo Braunstein
8f821dba70 Rewrite of change-related helpers
lyxfind.cpp(findNextChange, findPreviousChange, findChange, selectChange): factor the change-selection part out of the change-finding part
Text.cpp (acceptOrRejectChanges): call only selectChange
2014-10-14 17:40:44 +02:00
Jean-Marc Lasgouttes
7c3d1d7423 Fix crash when accepting change
The problem is the use of cursor movement methods to update cursor.
Cursor::forwardPos() steps into insets, which is not always what we
want. The problem here is that there is a math inset just after the
accepted change, and that the cursor steps into it for some reason.

This code is a nightmare anyway.

Fixes: bug #9145
2014-06-05 12:23:19 +02:00
Tommaso Cucinotta
cb79658e54 Workaround for #7987: deleted text in change-tracking mode is not found in Advanced F&R any more. 2014-04-21 11:51:59 -04:00
Tommaso Cucinotta
13cb7da11d Merged Paragraph::stringify into asString(). 2014-04-21 11:51:59 -04:00
Juergen Spitzmueller
ad6f96bf48 Do not substract cursors pos from two different cells (fix assertion while doing adv search)
Fixes: #7944.
2014-04-21 11:51:59 -04:00
Richard Heck
0a6ff99f28 Typos and style. 2014-04-21 11:51:59 -04:00
Vincent van Ravesteijn
53b60462ac Revert "Fixing #7987: deleted text in change-tracking mode is not found in Advanced F&R any more."
This reverts commit cb351665f4.
2014-03-29 22:21:40 +01:00
Tommaso Cucinotta
cb351665f4 Fixing #7987: deleted text in change-tracking mode is not found in Advanced F&R any more.
Merged Paragraph::stringify into asString().
Added ignore of deleted text to Advanced F&R.
2014-03-27 23:36:15 +00:00
Jean-Marc Lasgouttes
c98ce56a03 Fix bug #8884: Crash when "navigate to next change"
The two fixes here a obviously right, although it is not clear why they are sufficient to fix the bug. Anyway I cannot reproduce any crash with it.

 * the first part just conditions a whole if/else to change_next_pos.changed(). Originally, only the if branch was concerned.

 * the second part is to avoid calling CursorSlice::backwardPos() when position is 0. Doing this leads to an assertion.
2014-03-03 11:16:56 +01:00
Scott Kostyshak
f52eb9d823 Comment a minor bug not worth fixing (#8986) 2014-02-19 16:21:46 -05:00
Tommaso Cucinotta
b93f2c20d3 Added restrict-search-to-maths-only checkbox to advanced pane of Advanced F&R. 2013-10-13 00:59:46 +01:00
Tommaso Cucinotta
7081fed380 Fixed a number of bugs in "preserve first case" feature of Advanced F&R (addressing #8383). 2013-07-22 10:39:11 +01:00
Pavel Sanda
4c0ef38200 Header cleanup cont. 2013-05-19 18:07:53 -07:00
Jean-Marc Lasgouttes
249d96ed94 Small clanup (just move functions around) 2013-05-06 22:50:26 +02:00
Jean-Marc Lasgouttes
68202fdf44 Fix bug 6055: change-next does not work in tables
The problem was just the faulty use of CursorSlice::at_begin/end(), which does not look for end of cell, but end of inset.
2013-05-06 12:29:27 +02:00
Richard Heck
d79225ae98 Remove all messages to user related to assertions. We'll just use
a basic message which is defined in lassert.cpp now.
2013-04-27 17:52:55 -04:00
Richard Heck
1b1f8dd235 Audit all the LASSERT calls, and try to do something sensible at
each failure.

There are several places I was not sure what to do. These are marked
by comments beginning "LASSERT:" so they can be found easily. At the
moment, they are at:

Author.cpp:105: // LASSERT: What should we do here?
Author.cpp:121: // LASSERT: What should we do here?
Buffer.cpp:4525:        // LASSERT: Is it safe to continue here, or should we just return?
Cursor.cpp:345:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:403:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:1143:                // LASSERT: There have been several bugs around this code, that seem
CursorSlice.cpp:83:     // LASSERT: This should only ever be called from an InsetMath.
CursorSlice.cpp:92:     // LASSERT: This should only ever be called from an InsetMath.
LayoutFile.cpp:303:                     // LASSERT: Why would this fail?
Text.cpp:995:           // LASSERT: Is it safe to continue here?
2013-04-25 17:27:10 -04:00
Jean-Marc Lasgouttes
77bf805155 Fix bug #3199: change-next may leave empty lines behind
Using Cursor::setCursor or even BufferView::setCursor is often a bad
idea since it does not run DEPM. In this case (and other cases in
f&replace code) it is better to use BufferView::mouseSetCursor (which
should maybe be renamed...).
2013-04-25 15:37:15 +02:00
Jean-Marc Lasgouttes
a88e5cbf74 Fix bug #8370: crash when searching for next change
Cursor::backwardPos() may enter in a nested inset, while CursorSlice::backwardPos() will not.
2013-04-07 14:22:37 +02:00
Tommaso Cucinotta
6ea1479252 Just refactoring patch 5e5115c3 in simpler terms. 2013-04-04 00:50:02 +01:00
Tommaso Cucinotta
5e5115c376 Fixed issue #8543 also for advanced search (cursor moved at proper end of selection before starting Find Advanced operation). 2013-04-04 00:43:36 +01:00
Scott Kostyshak
2427e9b57a Remove exclamation mark from "String not found!"
When using 'find' and a string is not found, this is not an error or a
surprising event. It is often expected (e.g. after searching through
the whole document for a certain string eventually you will get this
message). The exclamation mark should be reserved for messages that
are unexpected or that need extra attention, such as errors.
2013-04-01 15:33:41 -04:00
Kornel Benko
415343d19b Advanced search: Allow faster searching for normal (non-regular) strings
Setting variable 'par_as_string_nolead' also in case we are ignoring format,
drastically accelerates the search.
2013-04-01 10:16:45 +02:00
Jean-Marc Lasgouttes
0082d183b3 Fix confusing behavior in search when changing directions (bug 8543) 2013-02-22 15:53:40 +01:00
Lars Gullik Bjønnes
6b2232a29c src/*.cpp: reformatting to increase consistency 2012-10-28 17:42:07 +01:00
Lars Gullik Bjønnes
43f6b1672b Use empty() to check empty and non-empty'ness not size()
Also add FormatList::empty().
2012-10-27 01:25:38 +02:00
Lars Gullik Bjønnes
abc81db388 src/lyxfind.cpp: use local typedef to simplify
Use a local typedef pair<string, string> P to avoid having to repeat
that multiple times.
2012-10-23 23:48:35 +02:00
Lars Gullik Bjønnes
48bba7fb74 src/lyxfind.cpp: use make_pair
Use make_pair(...) instead of pair<T, U>(...).
2012-10-23 23:48:25 +02:00
Lars Gullik Bjønnes
cf193344d0 src/lyxfind.cpp: cleanup formatting
Remove some eol space
re-indent where required
make some ?: constructs a bit easier to read.
2012-10-23 23:48:25 +02:00
Tommaso Cucinotta
0e81930597 Fixed bug in escape sequence, showing up with ignore format off (addressing #8380). 2012-10-22 01:05:29 +01:00
Stephan Witt
430cf3ee5e Fix the wrong cursor move when forward flag is false:
The forward flag is used to place the cursor behind the replaced text if it's true.
But it's not correct to move the cursor if it's false. The cursor is in front of the
replacement already after the replaceSelectionWithString() was done.
2012-07-30 14:32:29 +02:00
Jean-Marc Lasgouttes
a117a51226 In replaceSelectionWithString, do not select the new string
This is a patch from Scott Kostyshak. The problem it solves is as follows:

1. enable continuous spell check.
2. type a misspelled word and press space so that it has a wavy red underline.
3. right-click and choose a suggested replacement word.
4. press the backspace button.

Result: nothing happens. If you press the backspace button again, then it works as normal.

The selection code was added for the benefit of the spellchecker, but the code has been rewritten since then.
2012-04-18 12:44:31 +02:00
Tommaso Cucinotta
c324d6eae6 Now ESC cancels long Advanced Find and Replace operations.
(see #7217 and #7965 for related issues and discussion)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40877 a592a061-630c-0410-9148-cb99ea01b6c8
2012-03-06 23:21:12 +00:00
Georg Baum
a74153da0b cur.inTexted() != !cur.inMathed()
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39883 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-18 18:57:42 +00:00
Tommaso Cucinotta
ab73c741c2 With the move from \regexp{...} to \regexp{...\endregexp{}}, now I'd need
a special method to find \endregexp{}}, not merely the closing brace.
This is now obsolete, so ok to remove this dead code.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39780 a592a061-630c-0410-9148-cb99ea01b6c8
2011-09-27 23:09:31 +00:00
Richard Heck
144a69f4eb Comment out unused function.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39740 a592a061-630c-0410-9148-cb99ea01b6c8
2011-09-23 17:52:20 +00:00
Tommaso Cucinotta
ef7a142f3f Fixed longstanding bug in Advanced Find&Replace, when dealing with documents containing braces.
Corresponding test-case needed a fix as well and now it is passed.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39518 a592a061-630c-0410-9148-cb99ea01b6c8
2011-08-25 19:16:14 +00:00
Tommaso Cucinotta
bc9e5607fb After replacing with multi-cell contents, now advanced find and replace leaves the cursor after the inserted material.
Addressing http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg169981.html



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39266 a592a061-630c-0410-9148-cb99ea01b6c8
2011-07-10 00:19:11 +00:00
Tommaso Cucinotta
a48baee56f Now Adv. F&R correctly interprets escape sequences within regexp insets, e.g., \\ or \(, for finding characters with a special meaning in regular expression context (\^()[]).
Added corresponding regression tests findadv-re-01 and -02 for finding these special characters.
Unfortunately, braces {} are a little bit special and don't work yet. Added findadv-re-03 regression test to not forget about this case.
This goes along the line of fixing issues reported by Andrew Parsloe and summarised as #7638.
Last note: Still there will be cases when the Advanced F&R won't work, especially if the text to be found and/or the search pattern is preceded by backslashes or others.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39135 a592a061-630c-0410-9148-cb99ea01b6c8
2011-06-19 16:41:23 +00:00
Tommaso Cucinotta
c7e609135a Now backslash-prefixed regexps like "\s", "\d", etc., are all understood by Advanced F&R.
Fixing issue 4 reported at: http://permalink.gmane.org/gmane.editors.lyx.devel/136992


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39016 a592a061-630c-0410-9148-cb99ea01b6c8
2011-06-12 00:12:26 +00:00
Tommaso Cucinotta
69ab1306a8 Avoid extra ' ' in text-only export of consecutive macros in math mode, for Advanced F&R matching, with ignore-format off.
For example, this wasn't allowing to match '\beta\alpha' in the sequence '\alpha\beta\alpha', as
in the accompanying regression test-case (added case for ignore-format off).


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38888 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-29 14:08:29 +00:00
Tommaso Cucinotta
2d8108cf4c Avoid extra ' ' in text-only export of consecutive macros in math mode, for Advanced F&R matching.
For example, this wasn't allowing to match '\beta\alpha' in the sequence '\alpha\beta\alpha', as
in the accompanying regression test-case.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38883 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-29 13:40:34 +00:00
Tommaso Cucinotta
ec46b98d8c Fixed bug in matching at borders within *-environments with ignore-format off.
(related to #7596)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38863 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-27 21:14:36 +00:00
Tommaso Cucinotta
386c8291ed Fixed Advanced F&R issue in matching things at environment borders with ignore-format off.
Added accompanying regression tests for displayed math and numbered equations.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38860 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-27 20:39:58 +00:00
Tommaso Cucinotta
f1965e9ff1 Bugfix in how the search buffer was exported for the Advanced Find & Replace.
For example, before this footnotes were not correctly found.
Added also accompanying regression test.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38846 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-26 17:08:48 +00:00
Tommaso Cucinotta
c92c9057e1 Now advanced find and replace doesn't ignore white spaces while matching with ignore format.
This fixes #7584.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38839 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-26 13:44:44 +00:00
Vincent van Ravesteijn
a522dd5035 Whitespace: correct whitespace after r38779 and r38789.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38799 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-21 10:44:27 +00:00
Richard Heck
ddc585317c Revert r38779. I guess even the most innocent seeming of these will need more work.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38789 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-19 11:56:36 +00:00
Stephan Witt
56960daa7c #7564 add new argument to the documentation of LFUN_WORD_REPLACE, make the default of the new argument backward compatible
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38785 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-19 05:50:55 +00:00
Stephan Witt
cec318896c #7564 make the move forward to next match after text replacement optional and suppress it when replace a word by selected suggestion
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38781 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-18 20:33:57 +00:00
Richard Heck
17af57ed0c This should not need doing, as we are called from
BufferView::dispatch(), and the screen update is done properly there.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38779 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-17 01:58:52 +00:00
Richard Heck
5db4b7eb16 Move a bunch of code from Buffer to BufferParams. The point of this
is contained in the next commit.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38742 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-13 19:39:56 +00:00
Tommaso Cucinotta
8fd08e4ece Nearly cosmetics.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38410 a592a061-630c-0410-9148-cb99ea01b6c8
2011-04-16 10:48:55 +00:00
Tommaso Cucinotta
29948eec26 Now math previews are correctly updated when replacing math contents inside
through Advanced Find and Replace.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38355 a592a061-630c-0410-9148-cb99ea01b6c8
2011-04-12 20:16:57 +00:00
Tommaso Cucinotta
62411b7c0f Fixes a weird bug found while playing with #7363.
Indeed, unchecking ignore format in that scenario was not matching anyway while searching.
This patch fixes that behavior.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37943 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-18 00:47:42 +00:00
Enrico Forestieri
d866717ef7 Integrate texrow with otexstream in order to perform automatic line
counting when exporting to latex. This is done for the code comprised
between \begin{document} and \end{document}, while the preamble code
still needs manual calls to TexRow::newline() for registering new lines.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37584 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-10 20:02:48 +00:00
Tommaso Cucinotta
dc4abad361 Removing dependency on longOperationCancelled() patch.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37562 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-08 09:11:58 +00:00
Tommaso Cucinotta
fcae022192 Search and replace buffers are now passed from the GUI to the Model
just by their file-name, and directly accessed there.
All string/latex exporting of those buffers is handled on the Model
side (lyxfind.cpp) according to the selected options.
Fixed bugs when searching with ignore-format disabled material
in the middle of a paragraph, and when using regular expressions.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37549 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-07 20:36:40 +00:00
Enrico Forestieri
1ef605f625 Introduce a wrapper class for odocstream to help ensuring that no
blank lines may be inadvertently output. This is achieved by using two
special iomanip-like variables (breakln and safebreakln) in the lyx::
namespace. When they are inserted in the stream, a newline is output
only if not already at the beginning of a line. The difference between
breakln and safebreakln is that, if needed, the former outputs '\n'
and the latter "%\n".
In future, the new class will also be used for counting the number of
newlines issued. Even if the infractrure for doing that is already in
place, the counting is essentially still done the old way.
There are still places in the code where the functionality of the
class could be used, most probably. ATM, it is used for InsetTabular,
InsetListings, InsetFloat, and InsetText.
The Comment and GreyedOut insets required a special treatment and a
new InsetLayout parameter (Display) has been introduced. The default
for Display is "true", meaning that the corresponding latex
environment is of "display" type, i.e., it stands on its own, whereas
"false" means that the contents appear inline with the text. The
latter is the case for both Comment and GreyedOut insets.
Mostly, the only visible effects on latex exports should be the
disappearing of some redundant % chars and the appearing/disappearing
of null {} latex groups after a comment or lyxgreyedout environments
(they are related to the presence or absence of a space immediately
after those environments), as well as the fact that math environments
are now started on their own lines.
As a last thing, only the latex code between \begin{document} and
\end{document} goes through the new class, the preamble being directly
output through odocstream, as usual.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37360 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-29 02:41:13 +00:00
Tommaso Cucinotta
e05d115be8 Fixing regression bug after last commit. Couldn't find anything better, however now it apparently works and doesn't crash
(when replacing text which is longer than the replaced contents in math mode and similar).



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37335 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-26 23:54:12 +00:00
Tommaso Cucinotta
c005af6749 Puts the selection at the correct position after replacing math contents with Advanced Search.
Fixes crashes reported as #7245 and also #7241.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37333 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-26 23:06:02 +00:00
Tommaso Cucinotta
22d245312a Addressing #6560.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37048 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-30 17:59:59 +00:00
Tommaso Cucinotta
fa0e638b95 Fix of #4388 also for non advanced find.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37047 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-30 15:34:09 +00:00
Tommaso Cucinotta
fab8c264aa Applying (variation of) fix by stwitt to solve #7172.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37043 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-29 19:59:41 +00:00
Abdelrazak Younes
1614a64e15 TeXOnePar() simplification: use pit_type instead of iterator
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36936 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-18 15:57:27 +00:00
Jean-Marc Lasgouttes
3370b1d2fa Fix the last part of #3733:
- In GuiApplication::dispatch, do not call markDirty() for lfuns that are not ReadOnly
- In Undo::Private::recordUndo, call markDirty(). The indicator of dirtyness is now the existence of an undo element.
- In lyxfind, remove several markDirty calls that are not needed anymore.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36772 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-08 10:30:45 +00:00
Tommaso Cucinotta
5e5122699d Ignore ligature breaks and hyphenations during simple search (fixes #1468).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36427 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-22 07:50:34 +00:00
Uwe Stöhr
ce2ca9bd7e lyxfind.cpp: squash compiler warnings
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36414 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-20 18:28:28 +00:00
Tommaso Cucinotta
630953e613 Finds formatted matches in the middle of paragraphs, when no regular expressions are involved (fixes #6891).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36411 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-20 15:57:54 +00:00
Tommaso Cucinotta
df8e614237 Fix update of document buffer on last replace operation.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36405 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-20 11:04:40 +00:00
Tommaso Cucinotta
55641a1a74 Some more debugging stuff.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36404 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-20 11:03:24 +00:00
Pavel Sanda
058c815515 Fix order of return value
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36299 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-14 23:23:20 +00:00
Richard Heck
97b82d285d Fix up some of the find and replace code again. This solves a bug
involving the messages and will also help sort out some dispatch stuff.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35649 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-14 14:32:58 +00:00
Pavel Sanda
0978e91ecf This stuff is general enough for lstrings
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35646 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-14 11:01:15 +00:00
Richard Heck
3fe55bccc4 const
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35642 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-13 18:59:24 +00:00
Richard Heck
e9cf7aabcb Const.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35640 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-13 18:57:57 +00:00
Richard Heck
d3e4bfb124 Change how some of the updating stuff is handled in lyxfind. I had no
idea what a mess this was.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35639 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-13 18:53:41 +00:00
Richard Heck
3b00f19cc2 Anonymize some things.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35638 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-13 18:30:37 +00:00
Richard Heck
9511e345c1 Why have an argument in an anonymous method if you aren't going to use
it?


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35637 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-13 18:27:40 +00:00
Richard Heck
77a9dfcdba More find cleanup.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35636 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-13 18:24:53 +00:00
Richard Heck
b261a6d247 Begin some cleanup of the find code. I'm trying to sort out some odd
dispatch behavior, but can't understand this code as it is. Why isn't
there any documenation here?


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35635 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-13 18:19:21 +00:00
Richard Heck
5577e877bb Try to move all updateBuffer() calls to a central location. We now use
DispatchResult to store a flag that tells us whether we need a buffer
update or not. 

So: If you find a missing one, go to an appropriate place in the
dispatch and call cur.forceBufferUpdate() or, if you don't have a cursor
but do have a DispatchResult, call dr.forceBufferUpdate().

There is one remaining call I could not move, in
TextMetrics::redoParagraph. But this looks like an emergency call when
the macro context has not been set. There are also a couple calls that
are connected with buffer creation that I commented out, since the same
call is done again almost immediately. But I'm not positive about those.

Now the nice thing would be to do the same for updateMacros().


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34826 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-09 14:37:00 +00:00
Peter Kümmel
615d42d357 TR1: use std::tr1 regex with msvc10
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34725 a592a061-630c-0410-9148-cb99ea01b6c8
2010-06-29 17:09:40 +00:00
Vincent van Ravesteijn
d9fab1ecc6 * lyxfind: Remove unnecessary non-const reference as parameter.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34355 a592a061-630c-0410-9148-cb99ea01b6c8
2010-05-02 22:33:36 +00:00
Vincent van Ravesteijn
d8db0e8515 Rename anchor() to normalAnchor() as the anchor() function was already returning a normalized anchor in stead of the real one.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34145 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-15 17:49:15 +00:00
Richard Heck
b79d8e5e2d Make members of FuncRequest private, per the FIXME there. Again, this is
basically a massive renaming, with no real changes.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34106 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-09 19:00:42 +00:00
Richard Heck
4c7a5d0024 This is just a giant renaming of member variables in FuncRequest,
preparatory to making them private.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34105 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-09 18:15:17 +00:00
Tommaso Cucinotta
4bac24026d Fixed #2674 (Find and replace should restore initial cursor position), occurring on replace all.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33818 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-21 10:36:59 +00:00
Tommaso Cucinotta
57aa866a1c Fixed issues in backward search in various corner cases (fixed #6482 and #6596).
Now, when scope includes multiple documents, the switch_buffer LFUN is only issues if buffer actually changes.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33812 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-20 13:59:46 +00:00
Tommaso Cucinotta
83104beee3 Limit the search for the word at current cursor position only to the case in which cursor is in texted.
Fixes crash in #6573.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33811 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-20 12:15:05 +00:00
Richard Heck
d65020b293 s/updateLabels/updateBuffer/g, per a suggestion of Abdel's.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33613 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-03 22:13:45 +00:00
Tommaso Cucinotta
a7f63005f0 Fixed #6555 (crash when trying to replace starting from multi-par selection with end pos < beg pos).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33542 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-22 21:44:59 +00:00
Abdelrazak Younes
377cdd5f6c Transfer LyXfunc code to GuiApplication::dispatch() and getStatus(). Now
a lot of simplification is possible. Except some instability period...


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33389 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-09 16:11:13 +00:00
Tommaso Cucinotta
c0c1e1fd2b Most common cases with regexps seem to work, at least with ignore-format on.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33355 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-07 21:44:31 +00:00
Tommaso Cucinotta
b8af0d1cfd Fixed crash on searching for empty list inside empty list with ignore-format off (bug #6500).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33318 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-02 20:36:12 +00:00
Vincent van Ravesteijn
b7ff36304d Use Change::isSimilarTo to find a change when merging changes.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33284 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-31 00:21:52 +00:00
Tommaso Cucinotta
c0d42b97ee Made replace behaviour more standard: when pressing replace (next or previous) button:
-) if a selection exists, and it matches, then it is replaced;
-) next match is searched for and, if found, it is selected.
After a replace, next match is searched for only beyond the replaced text
(and not inside the replaced text).


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33267 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-30 10:11:24 +00:00
Tommaso Cucinotta
52c059e68a Make the fake sequence for braces highly unlikely (addressing #6478).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33253 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-29 07:35:13 +00:00
Tommaso Cucinotta
c6784d708d Open or closed braces ({ or }) are now translated to non-braces fake constructs while searching (fixes #6478, avoiding assert).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33248 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-28 17:26:18 +00:00
Tommaso Cucinotta
ddebdc4514 Now the local text language is kept while replacing text (addressing #6171).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32961 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-11 02:20:51 +00:00
Vincent van Ravesteijn
43c8de8138 Cosmetics mainly: Rename math.h to cmath, reorder some includes, remove some includes and remove some superfluous "lyx::".
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32934 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-10 12:37:50 +00:00
Tommaso Cucinotta
fb4dfdf189 Implemented "whose words" option of the Advanced F&R feature.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32905 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-09 12:39:29 +00:00
Vincent van Ravesteijn
5079badb65 Fix bug #6428: Assertion when navigating to next change while in math mode.
We need to leave the math inset before trying to access cur.paragraph().

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32791 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-06 17:29:39 +00:00
Vincent van Ravesteijn
b0910eb6d4 Why was there a 1 ? We only have to make sure that pos - 1 >= 0.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32772 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-05 16:34:52 +00:00
Tommaso Cucinotta
5cc2d6d73c Advanced F&R rework:
- scopes now handled in FindAndReplaceWidget, while lyxfind.cpp only searches within single buffer
- cursor().result().dispatched() now encodes whether a match was found or not, after LFUN_WORD_FINDADV dispatch
- removed a few unneeded functions
- followed a few cosmetic advices


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32760 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-04 12:29:38 +00:00
Tommaso Cucinotta
9e5a12b905 No need for the new LyXView::selectDocumentBuffer() method, same thing may be done with LFUN_SWITCH_BUFFER (vfr advice).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32739 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-01 11:14:01 +00:00
Tommaso Cucinotta
82e07a4185 Code cleanup.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32682 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-30 22:21:23 +00:00
Tommaso Cucinotta
24e2c495fe Implemented S_OPEN_BUFFERS scope in Advanced Find feature (keep searching and find all occurrences within all open buffers).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32680 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-30 21:50:55 +00:00
Tommaso Cucinotta
605ac8e46a Cosmetics: removed unneeded std::
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32679 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-30 18:58:20 +00:00
Tommaso Cucinotta
5da4ccb931 Implemented the "Current Buffer" & "Current (Master) Document" scopes in the Advanced Find and Replace feature.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32678 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-30 18:40:18 +00:00
Tommaso Cucinotta
6675847986 Fixed bug: now, when searching backwards, after wrap-around question, if match is beyond the cursor position then it is correctly found.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32651 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-26 22:31:59 +00:00
Tommaso Cucinotta
569a0e4629 Fixed infinite loop on backwards search when matching in nested inset(s) at begin of document.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32650 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-26 22:10:14 +00:00
Tommaso Cucinotta
378d32bc06 indentation fix.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32559 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-17 07:57:50 +00:00
Tommaso Cucinotta
ad0060454d Fix of bug ##6334 - now if you search for something not in the doc, it wraps around only once.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32558 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-17 07:53:20 +00:00
Richard Heck
c47c34b1c8 Fix typo.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31277 a592a061-630c-0410-9148-cb99ea01b6c8
2009-09-04 13:52:49 +00:00
Jürgen Spitzmüller
56fcb589ae stylistics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31274 a592a061-630c-0410-9148-cb99ea01b6c8
2009-09-04 13:08:09 +00:00
Jürgen Spitzmüller
2509ff8236 stylistics.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31273 a592a061-630c-0410-9148-cb99ea01b6c8
2009-09-04 13:06:43 +00:00
Tommaso Cucinotta
50c6ba17e5 Fix of issue when searching at paragraph boundaries when non-ignoring format.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31201 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-22 16:06:19 +00:00
Uwe Stöhr
91854df691 lyxfind.cpp: this was accidentally removed in r31163
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31164 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-20 00:36:52 +00:00
Uwe Stöhr
8a35204454 lyxfind.cpp/h: make LyX compilable
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31163 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-20 00:28:34 +00:00
Tommaso Cucinotta
edd8e78612 First implementation of feature in bug #3696. Needs testing.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31156 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-19 22:55:38 +00:00
Tommaso Cucinotta
5b1e7027ba Fixed Find LyX with replace, in common use cases.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31141 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-19 15:14:28 +00:00
Pavel Sanda
4304901faf Add find debug level. Patch from Tommaso.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31092 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-17 14:39:00 +00:00
Pavel Sanda
3fa15cc0a0 Backward search. Next bits from Tommaso.
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg154007.html


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31085 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-17 08:08:21 +00:00
Pavel Sanda
e040bcebbf Next bits from Tommaso, part of bug #6139.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31081 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-17 07:06:01 +00:00
Vincent van Ravesteijn
a492f5d553 Fix warnings.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31061 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-15 20:03:41 +00:00
Pavel Sanda
ab36804b6c Fix searching bug #6139.
Patch by Tommaso.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31053 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-15 15:35:14 +00:00
Vincent van Ravesteijn
27a0ac410f Remove some unnecessary negated logic.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30864 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-04 22:44:23 +00:00
Abdelrazak Younes
b8e5440bef LFUN_WORD_REPLACE: Invert replacement and searched strings in the FuncRequest argument. This is to allow replacement of current word even if it is not selected.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30360 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-04 23:02:27 +00:00
Abdelrazak Younes
73b48c22e5 Squash gcc warnings.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29560 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-07 12:40:35 +00:00