[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/kate
From: Bernhard Beschow <bbeschow () cs ! tu-berlin ! de>
Date: 2009-10-31 15:43:12
Message-ID: 1257003792.760825.29813.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1043044 by beschow:
introduce "search engines" for each search mode
M +3 -1 CMakeLists.txt
M +41 -3 document/katedocument.cpp
M +1 -1 document/katedocument.h
A search/kateescapedtextsearch.cpp search/katesearch.cpp#1042882 [License: LGPL (v2)]
A search/kateescapedtextsearch.h search/katesearch.h#1042882 [License: LGPL (v2)]
A search/kateplaintextsearch.cpp search/katesearch.cpp#1042882 [License: LGPL (v2)]
A search/kateplaintextsearch.h search/katesearch.h#1042882 [License: LGPL (v2)]
A search/kateregexpsearch.cpp search/katesearch.cpp#1042882 [License: LGPL (v2)]
A search/kateregexpsearch.h search/katesearch.h#1042882 [License: LGPL (v2)]
D search/katesearch.cpp
D search/katesearch.h
M +1 -2 search/katesearchbar.cpp
M +1 -1 search/katesearchbar.h
--- trunk/KDE/kdelibs/kate/CMakeLists.txt #1043043:1043044
@@ -91,7 +91,9 @@
# search stuff
search/kateregexp.cpp
-search/katesearch.cpp
+search/kateplaintextsearch.cpp
+search/kateescapedtextsearch.cpp
+search/kateregexpsearch.cpp
search/katesearchbar.cpp
# smart stuff (cursors, ranges, ...)
--- trunk/KDE/kdelibs/kate/document/katedocument.cpp #1043043:1043044
@@ -34,7 +34,10 @@
#include "kateprinter.h"
#include "katesmartcursor.h"
#include "katerenderer.h"
-#include "katesearch.h"
+#include "kateregexp.h"
+#include "kateplaintextsearch.h"
+#include "kateescapedtextsearch.h"
+#include "kateregexpsearch.h"
#include <ktexteditor/attribute.h>
#include "kateconfig.h"
#include "katemodemanager.h"
@@ -1530,14 +1533,49 @@
const QString & pattern,
const KTextEditor::Search::SearchOptions options)
{
- return KateSearch(this).searchText(range, pattern, options);
+ // TODO
+ // * support BlockInputRange
+ // * support DotMatchesNewline
+
+ const bool escapeSequences = options.testFlag(KTextEditor::Search::EscapeSequences);
+ const bool regexMode = options.testFlag(KTextEditor::Search::Regex);
+ const bool caseSensitive = !options.testFlag(KTextEditor::Search::CaseInsensitive);
+ const bool backwards = options.testFlag(KTextEditor::Search::Backwards);
+ const bool wholeWords = options.testFlag(KTextEditor::Search::WholeWords);
+
+ if (regexMode)
+ {
+ // regexp search
+ // escape sequences are supported by definition
+ KateRegExpSearch searcher(this, caseSensitive);
+ return searcher.search(range, pattern, backwards);
+ }
+
+ if (escapeSequences)
+ {
+ // escaped search
+ KateEscapedTextSearch searcher(this, caseSensitive, wholeWords);
+ return searcher.search(range, pattern, backwards);
+ }
+
+ // plaintext search
+ KatePlainTextSearch searcher(this, caseSensitive, wholeWords);
+ return searcher.search(range, pattern, backwards);
}
KTextEditor::Search::SearchOptions KateDocument::supportedSearchOptions() const
{
- return KateSearch::supportedSearchOptions();
+ KTextEditor::Search::SearchOptions supported(KTextEditor::Search::Default);
+ supported |= KTextEditor::Search::Regex;
+ supported |= KTextEditor::Search::CaseInsensitive;
+ supported |= KTextEditor::Search::Backwards;
+// supported |= KTextEditor::Search::BlockInputRange;
+ supported |= KTextEditor::Search::EscapeSequences;
+ supported |= KTextEditor::Search::WholeWords;
+// supported |= KTextEditor::Search::DotMatchesNewline;
+ return supported;
}
//END
--- trunk/KDE/kdelibs/kate/document/katedocument.h #1043043:1043044
@@ -328,7 +328,7 @@
//
// KTextEditor::SearchInterface stuff
//
- public Q_SLOTS:
+ public:
QVector<KTextEditor::Range> searchText(
const KTextEditor::Range & range,
const QString & pattern,
--- trunk/KDE/kdelibs/kate/search/katesearchbar.cpp #1043043:1043044
@@ -489,9 +489,8 @@
if (usePlaceholders) {
// Resolve references and escape sequences
QList<ReplacementPart> parts;
- QString writableHack(replacement);
const bool REPLACEMENT_GOODIES = true;
- KateSearch::escapePlaintext(writableHack, &parts, REPLACEMENT_GOODIES);
+ KateEscapedTextSearch::escapePlaintext(replacement, &parts, REPLACEMENT_GOODIES);
buildReplacement(finalReplacement, parts, match, replacementCounter);
} else {
// Plain text replacement
--- trunk/KDE/kdelibs/kate/search/katesearchbar.h #1043043:1043044
@@ -23,7 +23,7 @@
#include "katesmartrange.h"
#include "katedocument.h"
#include "katehistorymodel.h"
-#include "katesearch.h"
+#include "kateescapedtextsearch.h"
#include <kcolorscheme.h>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic