Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulian Ruppel2021-04-23 21:03:02 +0000
committerMickael Istria2021-04-26 10:14:23 +0000
commit34b30bce9608a8fab1e06c12fe14e609c0ccb660 (patch)
tree42ce936c5d595221afff5a5f40e6abddae74c5d3
parent5e36e41ff73134411ac12749d4566737b1880b89 (diff)
downloadeclipse.platform.text-34b30bce9608a8fab1e06c12fe14e609c0ccb660.tar.gz
eclipse.platform.text-34b30bce9608a8fab1e06c12fe14e609c0ccb660.tar.xz
eclipse.platform.text-34b30bce9608a8fab1e06c12fe14e609c0ccb660.zip
Bug 567062 - [Quicksearch] Configurable max results limit and label
Adds a preference option to configure the limit of results. If the search dialog hits the limit a indication is shown. Change-Id: I2e6b30da407561a6b3e562bdb15d8874bc225903 Signed-off-by: Julian Ruppel <julian.ruppel@sap.com> Reviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.text/+/179768 Tested-by: Platform Bot <platform-bot@eclipse.org> Reviewed-by: Mickael Istria <mistria@redhat.com>
-rw-r--r--org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/core/QuickTextSearcher.java3
-rw-r--r--org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/core/preferences/QuickSearchPreferences.java7
-rw-r--r--org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/Messages.java2
-rw-r--r--org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/QuickSearchDialog.java9
-rw-r--r--org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/QuickSearchPreferencesPage.java3
-rw-r--r--org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/messages.properties2
6 files changed, 24 insertions, 2 deletions
diff --git a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/core/QuickTextSearcher.java b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/core/QuickTextSearcher.java
index 0fc64840e19..880b1f4a9f4 100644
--- a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/core/QuickTextSearcher.java
+++ b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/core/QuickTextSearcher.java
@@ -56,13 +56,14 @@ public class QuickTextSearcher {
*/
private QuickTextQuery newQuery;
+ public static final int DEFAULT_MAX_RESULTS = 200;
/**
* If number of accumulated results reaches maxResults the search will be suspended.
* <p>
* Note that more results may still arrive beyond the limit since the searcher does not (yet) have the
* capability to suspend/resume a search in the middle of a file.
*/
- private int maxResults = 200;
+ private int maxResults = DEFAULT_MAX_RESULTS;
/**
* If a line of text is encountered longer than this, the searcher will stop searching
diff --git a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/core/preferences/QuickSearchPreferences.java b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/core/preferences/QuickSearchPreferences.java
index 422d9b2b1e5..b10f3594bb3 100644
--- a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/core/preferences/QuickSearchPreferences.java
+++ b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/core/preferences/QuickSearchPreferences.java
@@ -16,6 +16,7 @@ import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.text.quicksearch.internal.core.QuickTextSearcher;
import org.eclipse.text.quicksearch.internal.core.priority.DefaultPriorityFunction;
import org.eclipse.text.quicksearch.internal.ui.QuickSearchActivator;
import org.eclipse.text.quicksearch.internal.util.LineReader;
@@ -32,6 +33,7 @@ public class QuickSearchPreferences {
public static final String IGNORED_NAMES = "ignored.names"; //$NON-NLS-1$
public static final String IGNORED_PREFIXES = "ignored.prefixes"; //$NON-NLS-1$
public static final String MAX_LINE_LEN = "LineReader.MAX_LINE_LEN"; //$NON-NLS-1$
+ public static final String MAX_RESULTS = "QuickTextSearcher.MAX_RESULTS"; //$NON-NLS-1$
private static boolean initializedDefaults;
private IPreferenceStore store;
@@ -57,6 +59,10 @@ public class QuickSearchPreferences {
return store.getInt(MAX_LINE_LEN);
}
+ public int getMaxResults() {
+ return store.getInt(MAX_RESULTS);
+ }
+
private String[] getAndParseStringList(String key) {
String raw = store.getString(key);
if (raw!=null) {
@@ -89,6 +95,7 @@ public class QuickSearchPreferences {
initializedDefaults = true;
IPreferenceStore store = QuickSearchActivator.getDefault().getPreferenceStore();
store.setDefault(QuickSearchPreferences.MAX_LINE_LEN, LineReader.DEFAULT_MAX_LINE_LENGTH);
+ store.setDefault(QuickSearchPreferences.MAX_RESULTS, QuickTextSearcher.DEFAULT_MAX_RESULTS);
DefaultPriorityFunction dpf = new DefaultPriorityFunction();
store.setDefault(QuickSearchPreferences.IGNORED_EXTENSIONS, encode(dpf.ignoredExtensions));
diff --git a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/Messages.java b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/Messages.java
index 88b1c408a6b..67f236d94f8 100644
--- a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/Messages.java
+++ b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/Messages.java
@@ -21,6 +21,7 @@ public class Messages extends NLS {
public static String QuickSearchPreferencesPage_Tooltip_Names;
public static String QuickSearchPreferencesPage_MaxLineLength;
public static String QuickSearchPreferencesPage_Tooltip_MaxLineLength;
+ public static String QuickSearchPreferencesPage_MaxResults;
public static String QuickSearchPreferencesPage_Ignored_Extensions;
public static String QuickSearchPreferencesPage_Ignored_Prefixes;
public static String QuickSearchPreferencesPage_Ignored_Names;
@@ -37,6 +38,7 @@ public class Messages extends NLS {
public static String QuickSearchDialog_caseSensitive_toggle;
public static String QuickSearchDialog_title;
public static String QuickSearchDialog_listLabel;
+ public static String QuickSearchDialog_listLabel_limit_reached;
public static String QuickSearchDialog_caseSensitive_label;
public static String QuickSearchDialog_caseInsensitive_label;
public static String QuickTextSearch_updateMatchesJob;
diff --git a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/QuickSearchDialog.java b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/QuickSearchDialog.java
index 7d6aa7e5d89..873daad43f0 100644
--- a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/QuickSearchDialog.java
+++ b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/QuickSearchDialog.java
@@ -344,6 +344,7 @@ public class QuickSearchDialog extends SelectionStatusDialog {
private static final String EMPTY_STRING = ""; //$NON-NLS-1$
private final int MAX_LINE_LEN;
+ private final int MAX_RESULTS;
private IHandlerActivation showViewHandler;
@@ -389,6 +390,7 @@ public class QuickSearchDialog extends SelectionStatusDialog {
contentProvider = new ContentProvider();
selectionMode = NONE;
MAX_LINE_LEN = QuickSearchActivator.getDefault().getPreferences().getMaxLineLen();
+ MAX_RESULTS = QuickSearchActivator.getDefault().getPreferences().getMaxResults();
progressJob.setSystem(true);
}
@@ -1099,7 +1101,11 @@ public class QuickSearchDialog extends SelectionStatusDialog {
if (list != null && !list.getTable().isDisposed()) {
int itemCount = contentProvider.getNumberOfElements();
list.setItemCount(itemCount);
- listLabel.setText(NLS.bind(Messages.QuickSearchDialog_listLabel, itemCount));
+ if (itemCount < MAX_RESULTS) {
+ listLabel.setText(NLS.bind(Messages.QuickSearchDialog_listLabel, itemCount));
+ } else {
+ listLabel.setText(NLS.bind(Messages.QuickSearchDialog_listLabel_limit_reached, itemCount));
+ }
listLabel.pack();
list.refresh(true, false);
Button openButton = getButton(OPEN_BUTTON_ID);
@@ -1295,6 +1301,7 @@ public class QuickSearchDialog extends SelectionStatusDialog {
contentProvider.refresh();
}
});
+ this.searcher.setMaxResults(MAX_RESULTS);
applyPathMatcher();
refreshWidgets();
}
diff --git a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/QuickSearchPreferencesPage.java b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/QuickSearchPreferencesPage.java
index 60a9cb9995a..04f51aec32e 100644
--- a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/QuickSearchPreferencesPage.java
+++ b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/QuickSearchPreferencesPage.java
@@ -59,6 +59,9 @@ public class QuickSearchPreferencesPage extends FieldEditorPreferencePage implem
Messages.QuickSearchPreferencesPage_Tooltip_MaxLineLength);
addField(fieldMaxLineLen);
+ IntegerFieldEditor fieldMaxResults = new IntegerFieldEditor(QuickSearchPreferences.MAX_RESULTS, Messages.QuickSearchPreferencesPage_MaxResults, getFieldEditorParent());
+ addField(fieldMaxResults);
+
for (int i = 0; i < fieldLabels.length; i++) {
final String tooltip = toolTips[i];
StringFieldEditor field = new StringFieldEditor(prefsKeys[i], fieldLabels[i], StringFieldEditor.UNLIMITED, 5, StringFieldEditor.VALIDATE_ON_FOCUS_LOST, getFieldEditorParent()) {
diff --git a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/messages.properties b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/messages.properties
index 8010e50bc98..8719f33e1b9 100644
--- a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/messages.properties
+++ b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/messages.properties
@@ -3,6 +3,7 @@ QuickSearchPreferencesPage_Tooltip_Prefixes=Enter a list of file prefixes. Eleme
QuickSearchPreferencesPage_Tooltip_Names=Enter a list of file names. Elements in the list can be separated by commas or newlines. Any file or folder who's name equals one of the listed names will be ignored.
QuickSearchPreferencesPage_MaxLineLength=Max Line Length
QuickSearchPreferencesPage_Tooltip_MaxLineLength=When QuickSearch encounters a line of text longer than 'Max Line Length' it stops searching the current file. This is meant to avoid searching in machine generated text files, such as minified JavaScript.
+QuickSearchPreferencesPage_MaxResults=Max Results
QuickSearchPreferencesPage_Ignored_Extensions=Ignored Extensions
QuickSearchPreferencesPage_Ignored_Prefixes=Ignored Prefixes
QuickSearchPreferencesPage_Ignored_Names=Ignored Names
@@ -19,6 +20,7 @@ QuickSearchDialog_keepOpen_toggle=Keep Open
QuickSearchDialog_caseSensitive_toggle=Case sensitive
QuickSearchDialog_title=Quick Search
QuickSearchDialog_listLabel = &Matching items: {0}
+QuickSearchDialog_listLabel_limit_reached = &Matching items: {0} (limit reached)
QuickSearchDialog_caseSensitive_label=Case SENSITIVE &Pattern (? = any character, * = any string)
QuickSearchDialog_caseInsensitive_label=Case INSENSITIVE &Pattern (? = any character, * = any string)
QuickTextSearch_updateMatchesJob=Update matches

Back to the top