Commit Graph

395 Commits

Author SHA1 Message Date
Yuriy Skalko
6a7c9d12f9 Amend d3c335a5d5 2021-10-05 17:10:51 +03:00
Yuriy Skalko
325c405541 Remove redundant semicolons reported by GCC with -Wextra-semi option 2021-09-28 11:28:43 +03:00
Scott Kostyshak
47b0c33820 find: give status message when auto-wrapping
When auto-wrap is enabled, it is sometimes informative to know
when the search wraps.

A status message is consistent with LibreOffice and Vim.
2021-07-16 15:50:30 -04:00
Scott Kostyshak
abc65d4700 refactor: keep meaning of a variable consistent
We now use a new variable, "wrap", to track if a wrap should be
done, which is true either if "auto_wrap" is true or if the user
chooses to wrap in the dialog.

This preserves the meaning of the "auto_wrap" variable and also
removes the confusion of why the previous code of

  if (!auto_wrap) {
    ...
  }
  if (auto_wrap) {

did not use an "else" instead of the second "if".

No change in functionality.
2021-07-16 15:50:30 -04:00
Kornel Benko
8f4ed83f9a FindAdv: Added handling of Thai characters 2021-06-04 14:49:46 +02:00
Juergen Spitzmueller
ebb34a4614 Set advanced repl_buffer internal as well (#12246) 2021-04-11 18:06:11 +02:00
Jean-Marc Lasgouttes
4828dfb441 Indicate that we do not use a return value
Please Coverity.
2021-03-05 13:12:58 +01:00
Jean-Marc Lasgouttes
e6a7da3b22 Fix warning when not using Qt regexps 2021-03-05 11:54:11 +01:00
Kornel Benko
a3e10cd067 FindAdv: Added handling of some chars found in unnicodesymbols 2021-02-27 14:14:28 +01:00
Kornel Benko
77e8037f84 FindAdv: Do not distinguish between different math constructs
This means that searching math-mode will find instances also in
math-environments like align*, multline, ...
2021-02-19 17:12:38 +01:00
Juergen Spitzmueller
b6945764a4 Do not report false find with empty string in instant search 2021-02-18 13:00:41 +01:00
Juergen Spitzmueller
80cb0650e4 Clean up previous selections with empty searchstr on instant 2021-02-17 16:55:55 +01:00
Juergen Spitzmueller
119e8c08d4 Fix replace all in selection with change tracking 2021-02-16 09:42:17 +01:00
Juergen Spitzmueller
5980afaee0 Add support for search/replace within selection (#2548) 2021-02-16 08:11:09 +01:00
Juergen Spitzmueller
958213ee52 Improve instant search 2021-02-15 14:12:07 +01:00
Juergen Spitzmueller
f59b8cb657 GuiSearch: Add auto-wrap option 2021-02-15 11:30:03 +01:00
Juergen Spitzmueller
b2a317c037 Sett forward to true by default in search string parsing 2021-02-15 09:44:27 +01:00
Kornel Benko
48528d0ff0 FindAdv: Use global declaration for findOne() to be usefull for unit tests
cherry-pick from unit-test-adoption/dff4779b06b, author: Yuriy Skalko <yuriy.skalko@gmail.com>
2021-02-14 09:08:23 +01:00
Kornel Benko
fe792d7efe FindAdv: Tweak language settings
Language settings will be ignored if

a.) User selects if with setIgnoreFormat("language", true, true)
or
b.) The pattern does not contain lang-specs other than the default language of document
or
c.) The pattern contains math parts
2021-02-13 16:20:23 +01:00
Stephan Witt
46bb8f22c9 #8055 correct processing of LFUN_WORD_FIND option flags for repeated search operations 2021-02-13 04:47:44 +01:00
Kornel Benko
4cd80de69e FindAdv: Ignore math hull if searching for normal text
Helps to find strings inside math also if the pattern does not use math hull.
Needed due to the algorithm-change of searching text.
2021-02-11 14:03:46 +01:00
Juergen Spitzmueller
e35574b3ce Store the AuthorList in the cut stack
Otherwise we crash when we paste text with markup into a different buffer
that has change tracking disabled (in this case, markup is now kept).
2021-02-09 16:54:21 +01:00
Kornel Benko
8d17594a33 FindAdv: Ignore '\ensuremath{' while searching
but keep contents
e.g. '\ensuremath{abc}' ==> 'abc'
2021-02-03 12:21:16 +01:00
Kornel Benko
3a1b19c5c3 FindAdv: Optimization
Using unordered_map instead of map.
Reasons:
1.) The relevant maps contain 166(Keys) and 649(Accents) entries.
  This mean that average access with 'map' needs 8 to 10 compares to find the value.
2.) Since we are using at least c++11, the unordered_map is available
2.) increasing the maps (in future) needs not to be considered anymore, because
  the access-time will not increase.
2021-01-31 09:53:06 +01:00
Kornel Benko
5d8cacf3ec FindAdv: Select search for language-format depending on document language.
In case of search with format:
If the pattern contains language spec different to the document language
then do not ignore language setting.

Also renamed 'matchstart' in FindAndReplaceOptions to 'matchAtStart'
2021-01-25 10:52:14 +01:00
Kornel Benko
961e393b95 FindAdv: Make search for text in deleted regions configurable.
The function call 'search-ignore deleted false'
makes findadv to search also deleted parts,
while 'search-ignore deleted true' will omit these parts.
2021-01-22 21:11:28 +01:00
Kornel Benko
469b43c791 FindAdv: Do not search in deleted text. 2021-01-22 17:03:54 +01:00
Kornel Benko
d81673ecf0 FindAdv: Fix backward search and search for special char '{' and '}'
Change effects mostly searches with ignored format search.
Backwards search is much slower, but at least more or less working.
2021-01-21 13:39:25 +01:00
Kornel Benko
5f6027281d Amend c041bb66: Unintended debug output slipped in 2021-01-20 17:10:39 +01:00
Kornel Benko
c041bb667a FindAdv: Fix interpretation of match-results
Since commit c600906d92 all matches are match-results of examined strings starting
with a character of the same cursor depth, we can be sure to match the same string again if:
1.) the number of characters to the end of the examined strings match.
2.) the match-lengths are identical
2021-01-20 12:41:37 +01:00
Kornel Benko
052cad8b17 FindAdv: Reduce the count of debug messages 2021-01-19 17:54:17 +01:00
Kornel Benko
3259f3c73e FindAdv: Remove dead code
+ correct detection of backspaced '{' and '}' in regex with format search enabled
2021-01-18 17:06:05 +01:00
Kornel Benko
96f9c8fb19 FindAdv: Amend2 dacd2c45: Handle search for '{' and '}'
Allow for using 'a{2,7}' to find 2 to 7 consecutive chars 'a'
2021-01-18 16:06:40 +01:00
Kornel Benko
dacd2c45b7 FindAdv: Amend ec387b6d: Handle search for '{' and '}'
1) Take care of different input if changed the search-mode (with/without format)
	This amends ec387b6d
2) Make the braces used in text to be treated as single characters
	e.g. transform '\braceleft' to some unicode value
3) Try to use '$' as 'end of sequence' in regex
	We have to remove '}' and '\n' chars from the examined string
2021-01-18 12:17:57 +01:00
Kornel Benko
ec387b6d65 FindAdv: Handle search for '{' and '}'
In format-search the chars '{' and '}' are understood as latex parentheses, which normally are not
part of text and are discarded.
Instead we fake them as if they were a char like \backslash or \guilemotright or such.
2021-01-18 01:10:07 +01:00
Kornel Benko
c600906d92 FindAdv: Optimizing forward search
Still not as fast as quick search

Also started to remove some unused code.
2021-01-17 13:35:07 +01:00
Kornel Benko
7b8e26e3ad FindAdv: Search for innermost depth needed if matched string not inside some other inset. 2021-01-15 17:12:41 +01:00
Kornel Benko
dff9438a36 FindAdv: Discard the optional arguments of \part, \chapter, ...
Not easy selectable anyway, and hard to use while searching.
2021-01-14 23:25:58 +01:00
Kornel Benko
a7590d33e3 FindAdv: Add handling of regex char '^' at start also for search with disabled format
lyxfind.cpp:
	handle \mathcircumflex inside regex
output_latex.cpp:
	don't mark extra end of parameters if no options involved
2021-01-14 14:44:21 +01:00
Kornel Benko
8ca508d004 FindAdv: Refactoring some routines which was hard to understand
Most of the previous code is only commented out, will remove them completely later.
(Debugging this code was extremely exhausting)
2021-01-12 19:33:29 +01:00
Juergen Spitzmueller
1b2a56e2d2 Ignore tracked deletions in simple replace (#11194) 2021-01-12 16:13:47 +01:00
Juergen Spitzmueller
d87511308b Ignore tracked deletions in simple find (#11051) 2021-01-12 16:11:58 +01:00
Kornel Benko
2318baec7b FindAdv: Allow regex searches at start of paragraph
For example regex '^\w+' finds now only the first word in any paragraph
even if searching without 'ignore format' is set.
2021-01-11 14:50:03 +01:00
Kornel Benko
29b9dd8b2f FindAdv: Search for 'whole words' with help of modified regex. 2021-01-10 23:02:55 +01:00
Kornel Benko
31c3bddd6e FindAdv: Converting patterns without regex to use regex instead
Makes the code with less exceptions
  (no need to differentiate beteen use_regex and !use_regex)

Move the creation of regexes to own subroutine (Handles '#if QTSEARCH ... #endif')
Use cursor position differences instead of length of matched string. This is important for putSelectionAt()
2021-01-10 17:17:37 +01:00
Kornel Benko
60980b0eda FindAdv: Amend 474cb42e, implement sub-match replace. 2021-01-09 17:03:30 +01:00
Kornel Benko
c3cda5ffd4 FindAdv: Save sub-matches in MatchStringAdv class
Prepare for use while replacing:
(backslashed numbers in the replace buffer should be replaced with the relevant
sub-matched strings.)
2021-01-08 12:05:51 +01:00
Kornel Benko
f2e49938f3 FindAdv: Save found matches (e.g. \0, \1, \2, ...)
Only while debugging for now. Later we may use the saved values in replace string
2021-01-07 17:04:27 +01:00
Kornel Benko
54a0b95a2b Amend 6211469b: FindAdv: Fine tuning
Handle gracefully multiple '\\'
2021-01-06 14:22:26 +01:00
Kornel Benko
6211469b5f FindAdv: A try to handle backslashes in text
Otherwise we are unable to distinguish text from latex commands.
For instance '\color{blue}' in text-part is normal text, while othervise
it defines following characters as being blue colored)
2021-01-06 02:20:15 +01:00