[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jedit-cvs
Subject:    [ jEdit-commits ] SF.net SVN: jedit:[17926]
From:       shlomy () users ! sourceforge ! net
Date:       2010-05-30 6:12:01
Message-ID: E1OIbkf-0001s5-Jd () sfp-svn-1 ! v30 ! ch3 ! sourceforge ! com
[Download RAW message or body]

Revision: 17926
          http://jedit.svn.sourceforge.net/jedit/?rev=17926&view=rev
Author:   shlomy
Date:     2010-05-30 06:12:01 +0000 (Sun, 30 May 2010)

Log Message:
-----------
Removed the special code for a substring search. With Lucene (vs a relational DB), \
such queries should be fast, so there is no need to "prefetch" all matching tags.

Modified Paths:
--------------
    plugins/CtagsInterface/trunk/src/ctagsinterface/main/QuickSearchTagDialog.java

Modified: plugins/CtagsInterface/trunk/src/ctagsinterface/main/QuickSearchTagDialog.java
 ===================================================================
--- plugins/CtagsInterface/trunk/src/ctagsinterface/main/QuickSearchTagDialog.java	2010-05-30 \
                05:48:20 UTC (rev 17925)
+++ plugins/CtagsInterface/trunk/src/ctagsinterface/main/QuickSearchTagDialog.java	2010-05-30 \
06:12:01 UTC (rev 17926) @@ -9,7 +9,6 @@
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
-import java.util.Vector;
 
 import javax.swing.BorderFactory;
 import javax.swing.DefaultListCellRenderer;
@@ -49,7 +48,6 @@
 	private JList tags;
 	private DefaultListModel model;
 	private View view;
-	private Vector<QuickSearchTag> tagNames;
 	private String baseQuery;
 	private Timer filterTimer;
 	private String query;
@@ -145,7 +143,6 @@
 	private void prepareData()
 	{
 		TagIndex index = CtagsInterfacePlugin.getIndex();
-		String s = "";
 		if (query == null)
 		{
 			if (ProjectsOptionPane.getSearchActiveProjectOnly())
@@ -156,27 +153,12 @@
 				{
 					Origin origin = index.getOrigin(OriginType.PROJECT,
 						project, false);
-					s = index.getOriginScopedQuery(origin);
+					baseQuery = index.getOriginScopedQuery(origin);
 				}
 			}
 		}
 		else
-			s = query;
-		switch (mode) {
-		case SUBSTRING:
-			tagNames = new Vector<QuickSearchTag>();
-			index.runQuery(s, TagIndex.MAX_RESULTS, new DocHandler()
-			{
-				public void handle(Document doc)
-				{
-					tagNames.add(new QuickSearchTag(doc));
-				}
-			});
-			break;
-		case PREFIX:
-			baseQuery = s;
-			break;
-		}
+			baseQuery = query;
 	}
 
 	private void jumpToSelected() {
@@ -200,43 +182,28 @@
 			name.getText().toLowerCase();
 		if (showImmediately || (! input.isEmpty()))
 		{
-			switch (mode)
+			TagIndex index = CtagsInterfacePlugin.getIndex();
+			String s = baseQuery;
+			if (! input.isEmpty())
 			{
-			case SUBSTRING:
-				for (int i = 0; i < tagNames.size(); i++)
+				if (s.length() > 0)
+					s = s + " AND ";
+				String field = caseSensitive.isSelected() ?
+					TagIndex._NAME_FLD : TagIndex.NAME_FLD;
+				s = s + field + ":" + (mode == Mode.SUBSTRING ? "*" : "") +
+					input + "*";
+			}
+			index.runQuery(s, TagIndex.MAX_RESULTS, new DocHandler()
+			{
+				public void handle(Document doc)
 				{
-					QuickSearchTag t = tagNames.get(i);
-					String name = t.name;
+					String name = doc.getField(TagIndex._NAME_FLD).stringValue();
 					if (! caseSensitive.isSelected())
 						name = name.toLowerCase();
-					if (name.contains(input))
-						model.addElement(t);
+					if (name.startsWith(input))
+						model.addElement(new QuickSearchTag(doc));
 				}
-				break;
-			case PREFIX:
-				TagIndex index = CtagsInterfacePlugin.getIndex();
-				String s = baseQuery;
-				if (! input.isEmpty())
-				{
-					if (s.length() > 0)
-						s = s + " AND ";
-					String field = caseSensitive.isSelected() ?
-						TagIndex._NAME_FLD : TagIndex.NAME_FLD;
-					s = s + field + ":" + input + "*";
-				}
-				index.runQuery(s, TagIndex.MAX_RESULTS, new DocHandler()
-				{
-					public void handle(Document doc)
-					{
-						String name = doc.getField(TagIndex._NAME_FLD).stringValue();
-						if (! caseSensitive.isSelected())
-							name = name.toLowerCase();
-						if (name.startsWith(input))
-							model.addElement(new QuickSearchTag(doc));
-					}
-				});
-				break;
-			}
+			});
 		}
 		if (model.isEmpty())
 		{


This was sent by the SourceForge.net collaborative development platform, the world's \
largest Open Source development site.

------------------------------------------------------------------------------

_______________________________________________
jEdit-CVS mailing list
jEdit-CVS@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jedit-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic