diff --git a/packages/search-in-workspace/src/browser/search-in-workspace-widget.tsx b/packages/search-in-workspace/src/browser/search-in-workspace-widget.tsx index b98a1c9133117..b54c618dedb42 100644 --- a/packages/search-in-workspace/src/browser/search-in-workspace-widget.tsx +++ b/packages/search-in-workspace/src/browser/search-in-workspace-widget.tsx @@ -623,25 +623,40 @@ export class SearchInWorkspaceWidget extends BaseWidget implements StatefulWidge } protected renderSearchInfo(): React.ReactNode { - let message = ''; - if (this.searchTerm) { - if (this.searchInWorkspaceOptions.include && this.searchInWorkspaceOptions.include.length > 0 && this.resultNumber === 0) { - message = `No results found in '${this.searchInWorkspaceOptions.include}'`; - } else if (this.resultNumber === 0) { - message = 'No results found.'; + const message = this.getSearchResultMessage() || ''; + return
{message}
; + } + + protected getSearchResultMessage(): string | undefined { + + if (!this.searchTerm) { + return undefined; + } + + if (this.resultNumber === 0) { + const isIncludesPresent = this.searchInWorkspaceOptions.include && this.searchInWorkspaceOptions.include.length > 0; + const isExcludesPresent = this.searchInWorkspaceOptions.exclude && this.searchInWorkspaceOptions.exclude.length > 0; + + if (isIncludesPresent && isExcludesPresent) { + return `No results found in '${this.searchInWorkspaceOptions.include}' excluding '${this.searchInWorkspaceOptions.exclude}'`; + } else if (isIncludesPresent) { + return `No results found in '${this.searchInWorkspaceOptions.include}'`; + } else if (isExcludesPresent) { + return `No results found excluding '${this.searchInWorkspaceOptions.exclude}'`; } else { - if (this.resultNumber === 1 && this.resultTreeWidget.fileNumber === 1) { - message = `${this.resultNumber} result in ${this.resultTreeWidget.fileNumber} file`; - } else if (this.resultTreeWidget.fileNumber === 1) { - message = `${this.resultNumber} results in ${this.resultTreeWidget.fileNumber} file`; - } else if (this.resultTreeWidget.fileNumber > 0) { - message = `${this.resultNumber} results in ${this.resultTreeWidget.fileNumber} files`; - } else { - // if fileNumber === 0, return undefined so that `onUpdateRequest()` would not re-render component - return undefined; - } + return 'No results found.'; + } + } else { + if (this.resultNumber === 1 && this.resultTreeWidget.fileNumber === 1) { + return `${this.resultNumber} result in ${this.resultTreeWidget.fileNumber} file`; + } else if (this.resultTreeWidget.fileNumber === 1) { + return `${this.resultNumber} results in ${this.resultTreeWidget.fileNumber} file`; + } else if (this.resultTreeWidget.fileNumber > 0) { + return `${this.resultNumber} results in ${this.resultTreeWidget.fileNumber} files`; + } else { + // if fileNumber === 0, return undefined so that `onUpdateRequest()` would not re-render component + return undefined; } } - return
{message}
; } }