Commit Graph

370 Commits

Author SHA1 Message Date
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
Kornel Benko
ac6b27040a FindAdv: Small refactoring 2021-01-04 16:57:56 +01:00
Yuriy Skalko
e8099942c7 Show caught exception message in findAdv 2021-01-04 15:45:26 +02:00
Kornel Benko
6750724717 Amend(2) 8c67cb8c: (FindAdv: Try to make regex search with format enabled somehow faster)
Use innermost nesting to start searches.
Some fine tuning to determine correct match.
(If the regex contains '(\S)\1' at the end, then this regex would match '}}',
but this is often the case at and of examined string. We have to disable this invalid match.
)
2021-01-04 07:25:29 +01:00
Thibaut Cuvelier
649755f481 Rename WriteStream to TeXMathStream. 2021-01-02 19:52:23 +01:00
Kornel Benko
8c67cb8c3a Amend f500a287 (FindAdv: Try to make regex search with format enabled somehow faster)
Remove 1 out of range access,
Estimate the search result of regular expression for further processing
2021-01-02 18:44:40 +01:00
Kornel Benko
f500a287d4 FindAdv: Try to make regex search with format enabled somehow faster 2021-01-01 21:53:07 +01:00
Kornel Benko
4e9dc856e4 FindAdv: Added handling for \w' in regex using non-ascii chars
Also fix some 'out of range accesses' (causing crash in debug-glibc-mode)
2020-12-31 17:00:49 +01:00
Kornel Benko
f7772849b9 FindAdv: Let lyx use QRegularExpression if available
This regex handling is part of QT5. For lyx which uses QT4
findafv will still work, but is not good for caseinsensitive matchings
in handling non ASCII characters
2020-12-30 13:00:03 +01:00
Kornel Benko
5a192d28f0 FindAdv: fix converting unicode-point to utf-8
I misinterpreted the unicode creation 'u8"\uF00xx"'.
The C++-compiler saw 'u8"\uF00x" "x"', but this was not intended.

The routine which mimicked is doing the right job now.
2020-12-29 09:59:44 +01:00
Kornel Benko
ab7ac800dc FindAdv: Allow compilation with c++20 2020-12-28 16:45:02 +01:00
Kornel Benko
c7bc46d707 Amend 3736bee4: Forgot to set the cassensitivity flag in regex statement 2020-12-27 12:16:37 +01:00
Kornel Benko
3736bee4b7 FindAdv: Use stdregex to handle case-insensitivity (if regex is used)
For search we used to lowercase for everything, but sonce the regex itself
should be left unchanged, this change was needed.
Works nice with ASCII, but fails miserably on on other UTF8 points (like Cyrillic chars)
2020-12-27 12:01:23 +01:00
Kornel Benko
b3d4271e78 Adv-Find: Try to use some more unicode chars (instead of latex macros) 2020-12-15 18:08:02 +01:00
Kornel Benko
d384136ff9 Find-Adv: A try to handle cyrillic chars also in regexp-mode 2020-12-14 20:43:39 +01:00
Kornel Benko
2d2e2f1c6d Adv-Search: Use some free unicodes as replacement for searched spaces
Without this, it is difficult to find backslashed macros if in regexp-mode.
2020-12-10 11:36:09 +01:00
Yuriy Skalko
c0a5987181 Better naming for enums 2020-12-01 00:46:21 +02:00
Yuriy Skalko
ecf62a8f21 Refactor OutputParams
Now all Inset hierarchy uses OutputParams.h included in Inset.h.
Forward declare some enums to reduce header dependencies.
2020-11-30 13:05:03 +02:00
Yuriy Skalko
7779316e6c Include standard <regex> 2020-11-29 15:27:28 +02:00
Yuriy Skalko
8cb728c2d7 Constify 2020-11-27 12:16:45 +02:00
Kornel Benko
be50eb507f Adv-Find: Add handling for \cdot (at least if using format-search 2020-11-23 21:55:13 +01:00
Yuriy Skalko
81a5e7927b Use default member initialization 2020-11-01 22:25:03 +02:00
Yuriy Skalko
196d9caeb0 Clean includes using the output of iwyu tool 2020-10-20 11:38:55 +03:00
Yuriy Skalko
d25c10ed81 Remove duplicate and unused header includes in .cpp files 2020-10-19 18:01:11 +03:00
Yuriy Skalko
919a06718a Constify 2020-10-12 15:06:16 +02:00
Yuriy Skalko
7d38a4d126 Loop refactoring 2020-10-09 09:04:20 +03:00