| Summary: | support for non-greedy matching | ||
|---|---|---|---|
| Product: | [Applications] kregexpeditor | Reporter: | Stian Haklev <shaklev> |
| Component: | general | Assignee: | Jesper Pedersen <blackie> |
| Status: | RESOLVED FIXED | ||
| Severity: | wishlist | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Debian testing | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed In: | ||
| Sentry Crash Report: | |||
|
Description
Stian Haklev
2004-04-27 07:57:45 UTC
I'd like to extend this one to a plea to support perl REs. Although I understand kregexpeditor was built for qt's REs, the menu already offers emacs REs. Building/testing perl REs too, with assertions and non-greedy matches, would be teriffic. *** This bug has been confirmed by popular vote. *** SVN commit 448854 by bram:
o GUI option created for greedy regexp matching (80453)
o Accellerator added to ASCII edit field.
FEATURE: 80453
M +11 -2 kregexpeditorprivate.cpp
M +2 -0 kregexpeditorprivate.h
M +8 -0 verifybuttons.cpp
M +1 -0 verifybuttons.h
--- trunk/KDE/kdeutils/kregexpeditor/kregexpeditorprivate.cpp #448853:448854
@@ -55,7 +55,7 @@
KRegExpEditorPrivate::KRegExpEditorPrivate(QWidget *parent, const char *name)
- : QWidget(parent, name), _updating( false ), _autoVerify( true )
+ : QWidget(parent, name), _updating( false ), _autoVerify( true ), _matchGreedy( false )
{
setMinimumSize(730,300);
Q3DockArea* area = new Q3DockArea( Qt::Horizontal, Q3DockArea::Normal, this );
@@ -132,6 +132,7 @@
connect( _verifyButtons, SIGNAL( autoVerify( bool ) ), this, SLOT( setAutoVerify( bool ) ) );
connect( _verifyButtons, SIGNAL( verify() ), this, SLOT( doVerify() ) );
connect( _verifyButtons, SIGNAL( changeSyntax( const QString& ) ), this, SLOT( setSyntax( const QString& ) ) );
+ connect( _verifyButtons, SIGNAL( matchGreedy( bool ) ), this, SLOT( setMatchGreedy( bool ) ) );
connect( this, SIGNAL( canUndo( bool ) ), _auxButtons, SLOT( slotCanUndo( bool ) ) );
connect( this, SIGNAL( canRedo( bool ) ), _auxButtons, SLOT( slotCanRedo( bool ) ) );
@@ -163,7 +164,7 @@
// Line Edit
QHBoxLayout* layout = new QHBoxLayout( topLayout, 6 );
- QLabel* label = new QLabel( i18n("ASCII syntax:"), this );
+ QLabel* label = new QLabel( i18n("ASCII synta&x:"), this );
layout->addWidget( label );
clearButton = new QToolButton( this );
const QString icon( QString::fromLatin1( QApplication::reverseLayout() ? "clear_left" : "locationbar_erase" ) );
@@ -172,6 +173,7 @@
layout->addWidget( clearButton );
QToolTip::add( clearButton, i18n("Clear expression") );
_regexpEdit = new QLineEdit( this );
+ label->setBuddy( _regexpEdit );
layout->addWidget( _regexpEdit );
_regexpEdit->setWhatsThis( i18n( "This is the regular expression in ASCII syntax. You are likely only "
"to be interested in this if you are a programmer, and need to "
@@ -430,3 +432,10 @@
{
_verifyButtons->setAllowNonQtSyntax( b );
}
+
+void KRegExpEditorPrivate::setMatchGreedy( bool b )
+{
+ _matchGreedy = b;
+ _verifier->setMinimal( !b );
+ doVerify();
+}
--- trunk/KDE/kdeutils/kregexpeditor/kregexpeditorprivate.h #448853:448854
@@ -64,6 +64,7 @@
void doVerify();
void setAutoVerify( bool );
void setVerifyText( const QString& fileName );
+ void setMatchGreedy( bool );
public slots:
void slotUndo();
@@ -100,6 +101,7 @@
bool _autoVerify;
ErrorMap _errorMap;
QToolButton *clearButton;
+ bool _matchGreedy;
};
#endif
--- trunk/KDE/kdeutils/kregexpeditor/verifybuttons.cpp #448853:448854
@@ -129,6 +129,14 @@
"If the verify window contains much text, or if the regular expression is either "
"complex or matches a lot of time, this may be very slow."));
+ QAction* matchGreedy = new QAction( i18n("Match Greedy"), 0, this );
+ matchGreedy->setToggleAction( true );
+ matchGreedy->setOn( false );
+ connect( matchGreedy, SIGNAL( toggled( bool ) ), this, SIGNAL( matchGreedy( bool ) ) );
+ matchGreedy->addTo( _configMenu );
+ matchGreedy->setToolTip( i18n("Toggle greedy matching when verifying the regular expression.") );
+ matchGreedy->setWhatsThis( i18n( "When this option is enabled, the regular expression will be evaluated on a so-called greedy way." ) );
+
// RegExp Languages
Q3PopupMenu* languages = new Q3PopupMenu( _configMenu );
_languageId = _configMenu->insertItem( i18n("RegExp Language"), languages );
--- trunk/KDE/kdeutils/kregexpeditor/verifybuttons.h #448853:448854
@@ -42,6 +42,7 @@
void verify();
void autoVerify( bool );
void loadVerifyText( const QString& );
+ void matchGreedy( bool );
// Qt anchors do not work for <pre>...</pre>, thefore scrolling to next/prev match
// do not work. Enable this when they work.
Nick: You should have submitted a separate bug report for that. The original wish is fulfilled, but your wish isn't. If you submit a new bug report, we won't forget about it. I'm running KDE 3.5.1 Level a, but this feature is still not implemented in kregexpeditor. When do we get the feature? When I click on the help-button of kregexpeditor, the handbook opens and shows the following version: Version 0.1 (2001-07-03) |