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: | 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) |