From 27c5c0c47b0339c8fda1c975ae6ecb4ef196a54c Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Mon, 27 Jan 2020 16:26:03 -0800 Subject: [PATCH] Clean up header hiding logic --- .../contrib/search/browser/searchEditor.ts | 11 ++++--- .../browser/searchEditorSerialization.ts | 30 +++++++------------ 2 files changed, 17 insertions(+), 24 deletions(-) diff --git a/src/vs/workbench/contrib/search/browser/searchEditor.ts b/src/vs/workbench/contrib/search/browser/searchEditor.ts index e73d8277b09..d7863b4565a 100644 --- a/src/vs/workbench/contrib/search/browser/searchEditor.ts +++ b/src/vs/workbench/contrib/search/browser/searchEditor.ts @@ -321,16 +321,19 @@ export class SearchEditor extends BaseEditor { private hideHeader() { const headerLines = - this.searchResultEditor + (this.searchResultEditor .getModel() ?.getValueInRange(new Range(1, 1, 6, 1)) .split('\n') .filter(line => line.startsWith('#')) .length - ?? 0; + ?? 0) + 1; - // const length = this.searchResultEditor.getModel()?.getLineLength(headerLines); - this.searchResultEditor.setHiddenAreas([new Range(1, 1, headerLines, 1)]); + if (headerLines !== this.searchResultEditor.getModel()?.getLineCount()) { + this.searchResultEditor.setHiddenAreas([new Range(1, 1, headerLines, 1)]); + } else { + this.searchResultEditor.setHiddenAreas([new Range(1, 1, headerLines - 1, 1)]); + } } layout(dimension: DOM.Dimension) { diff --git a/src/vs/workbench/contrib/search/browser/searchEditorSerialization.ts b/src/vs/workbench/contrib/search/browser/searchEditorSerialization.ts index 6264a1190f5..c3ef3a26700 100644 --- a/src/vs/workbench/contrib/search/browser/searchEditorSerialization.ts +++ b/src/vs/workbench/contrib/search/browser/searchEditorSerialization.ts @@ -106,26 +106,16 @@ function fileMatchToSearchResultFormat(fileMatch: FileMatch, labelFormatter: (x: } const contentPatternToSearchResultHeader = (pattern: ITextQuery | null, includes: string, excludes: string, contextLines: number): string[] => { - if (!pattern) { return []; } - - const removeNullFalseAndUndefined = (a: (T | null | false | undefined)[]) => a.filter(a => a !== false && a !== null && a !== undefined) as T[]; - - const escapeNewlines = (str: string) => str.replace(/\\/g, '\\\\').replace(/\n/g, '\\n'); - - return removeNullFalseAndUndefined([ - `# Query: ${escapeNewlines(pattern.contentPattern.pattern)}`, - - (pattern.contentPattern.isCaseSensitive || pattern.contentPattern.isWordMatch || pattern.contentPattern.isRegExp || pattern.userDisabledExcludesAndIgnoreFiles) - && `# Flags: ${coalesce([ - pattern.contentPattern.isCaseSensitive && 'CaseSensitive', - pattern.contentPattern.isWordMatch && 'WordMatch', - pattern.contentPattern.isRegExp && 'RegExp', - pattern.userDisabledExcludesAndIgnoreFiles && 'IgnoreExcludeSettings' - ]).join(' ')}`, - includes ? `# Including: ${includes}` : undefined, - excludes ? `# Excluding: ${excludes}` : undefined, - contextLines ? `# ContextLines: ${contextLines}` : undefined - ]); + return serializeSearchConfiguration({ + query: pattern?.contentPattern.pattern, + regexp: pattern?.contentPattern.isRegExp, + caseSensitive: pattern?.contentPattern.isCaseSensitive, + wholeWord: pattern?.contentPattern.isWordMatch, + excludes, includes, + showIncludesExcludes: !!(includes || excludes || pattern?.userDisabledExcludesAndIgnoreFiles), + useIgnores: pattern?.userDisabledExcludesAndIgnoreFiles === undefined ? undefined : !pattern.userDisabledExcludesAndIgnoreFiles, + contextLines, + }).split(lineDelimiter); }; export const serializeSearchConfiguration = (config: Partial): string => { -- GitLab