From 6493f0e06cb444458d54badf74b8dcd60fea5f98 Mon Sep 17 00:00:00 2001 From: Randy Edmunds Date: Tue, 16 Oct 2012 08:55:59 -0700 Subject: [PATCH] changes for code review --- src/nls/root/strings.js | 1 + src/search/FindInFiles.js | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/nls/root/strings.js b/src/nls/root/strings.js index 38b47794af4..2b9287f8f83 100644 --- a/src/nls/root/strings.js +++ b/src/nls/root/strings.js @@ -110,6 +110,7 @@ define({ "FIND_IN_FILES_FILES" : "files", "FIND_IN_FILES_MATCH" : "match", "FIND_IN_FILES_MATCHES" : "matches", + "FIND_IN_FILES_MORE_THAN" : "More than ", "FIND_IN_FILES_MAX" : " (showing the first {0} matches)", "FIND_IN_FILES_FILE_PATH" : "File: {0}", "FIND_IN_FILES_LINE" : "line: {0}", diff --git a/src/search/FindInFiles.js b/src/search/FindInFiles.js index c2ff91a14c0..16de5db4c1b 100644 --- a/src/search/FindInFiles.js +++ b/src/search/FindInFiles.js @@ -58,7 +58,8 @@ define(function (require, exports, module) { var searchResults = []; - var FIND_IN_FILES_MAX = 100; + var FIND_IN_FILES_MAX = 100, + maxHitsFoundInFile = false; var PREFERENCES_CLIENT_ID = module.id, defaultPrefs = { height: 200 }; @@ -173,8 +174,11 @@ define(function (require, exports, module) { line: line }); - // We have the max hits in just this 1 file. Stop searching. + // We have the max hits in just this 1 file. Stop searching this file. + // This fixed issue #1829 where code hangs on too many hits. if (matches.length >= FIND_IN_FILES_MAX) { + queryExpr.lastIndex = 0; + maxHitsFoundInFile = true; break; } } @@ -196,9 +200,15 @@ define(function (require, exports, module) { }); // Show result summary in header + var numMatchesStr = ""; + if (maxHitsFoundInFile) { + numMatchesStr = Strings.FIND_IN_FILES_MORE_THAN; + } + numMatchesStr += String(numMatches); + var summary = StringUtils.format( Strings.FIND_IN_FILES_TITLE, - numMatches, + numMatchesStr, (numMatches > 1) ? Strings.FIND_IN_FILES_MATCHES : Strings.FIND_IN_FILES_MATCH, searchResults.length, (searchResults.length > 1 ? Strings.FIND_IN_FILES_FILES : Strings.FIND_IN_FILES_FILE), @@ -312,6 +322,7 @@ define(function (require, exports, module) { var initialString = currentEditor && currentEditor.getSelectedText(); searchResults = []; + maxHitsFoundInFile = false; dialog.showDialog(initialString) .done(function (query) {