Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit239f669

Browse files
authored
add max find result count for which to show decorations (#3745)
1 parentda33543 commit239f669

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

‎addons/xterm-addon-search/src/SearchAddon.ts‎

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,7 @@ export class SearchAddon implements ITerminalAddon {
122122
if(searchOptions?.decorations){
123123
this._highlightAllMatches(term,searchOptions);
124124
}
125-
constnext=this._findNextAndSelect(term,searchOptions);
126-
if(searchOptions?.decorations){
127-
if(next&&this._resultIndex!==undefined&&this._searchResults?.size){
128-
this._onDidChangeResults.fire({resultIndex:this._resultIndex,resultCount:this._searchResults.size});
129-
}else{
130-
this._onDidChangeResults.fire(undefined);
131-
}
132-
}
133-
returnnext;
125+
returnthis._fireResults(this._findNextAndSelect(term,searchOptions),searchOptions);
134126
}
135127

136128
private_highlightAllMatches(term:string,searchOptions:ISearchOptions):void{
@@ -157,6 +149,11 @@ export class SearchAddon implements ITerminalAddon {
157149
result.col+result.term.length>=this._terminal.cols ?0 :result.col+1,
158150
searchOptions
159151
);
152+
if(this._searchResults.size>2000){
153+
this.clearDecorations();
154+
this._resultIndex=-1;
155+
return;
156+
}
160157
}
161158
this._searchResults.forEach(result=>{
162159
constresultDecoration=this._createResultDecoration(result,searchOptions.decorations!);
@@ -300,15 +297,20 @@ export class SearchAddon implements ITerminalAddon {
300297
if(searchOptions?.decorations){
301298
this._highlightAllMatches(term,searchOptions);
302299
}
303-
constprevious=this._findPreviousAndSelect(term,searchOptions);
300+
returnthis._fireResults(this._findPreviousAndSelect(term,searchOptions),searchOptions);
301+
}
302+
303+
private_fireResults(found:boolean,searchOptions?:ISearchOptions):boolean{
304304
if(searchOptions?.decorations){
305-
if(previous&&this._resultIndex!==undefined&&this._searchResults?.size){
305+
if(found&&this._resultIndex!==undefined&&this._searchResults?.size){
306306
this._onDidChangeResults.fire({resultIndex:this._resultIndex,resultCount:this._searchResults.size});
307+
}elseif(this._resultIndex===-1){
308+
this._onDidChangeResults.fire({resultIndex:-1,resultCount:-1});
307309
}else{
308310
this._onDidChangeResults.fire(undefined);
309311
}
310312
}
311-
returnprevious;
313+
returnfound;
312314
}
313315

314316
private_findPreviousAndSelect(term:string,searchOptions?:ISearchOptions):boolean{

‎addons/xterm-addon-search/typings/xterm-addon-search.d.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ declare module 'xterm-addon-search' {
115115
* When decorations are enabled, fires when
116116
* the search results or the selected result changes,
117117
* returning undefined if there are no matches.
118+
* -1 is returned for resultCount/resultIndex when the threshold of 2k results
119+
* is exceeded and decorations are disposed of.
118120
*/
119121
readonlyonDidChangeResults:IEvent<{resultIndex:number,resultCount:number}|undefined>;
120122
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp