提交 27c5c0c4 编写于 作者: J Jackson Kearl

Clean up header hiding logic

上级 2ce17a57
...@@ -321,16 +321,19 @@ export class SearchEditor extends BaseEditor { ...@@ -321,16 +321,19 @@ export class SearchEditor extends BaseEditor {
private hideHeader() { private hideHeader() {
const headerLines = const headerLines =
this.searchResultEditor (this.searchResultEditor
.getModel() .getModel()
?.getValueInRange(new Range(1, 1, 6, 1)) ?.getValueInRange(new Range(1, 1, 6, 1))
.split('\n') .split('\n')
.filter(line => line.startsWith('#')) .filter(line => line.startsWith('#'))
.length .length
?? 0; ?? 0) + 1;
// const length = this.searchResultEditor.getModel()?.getLineLength(headerLines); if (headerLines !== this.searchResultEditor.getModel()?.getLineCount()) {
this.searchResultEditor.setHiddenAreas([new Range(1, 1, headerLines, 1)]); this.searchResultEditor.setHiddenAreas([new Range(1, 1, headerLines, 1)]);
} else {
this.searchResultEditor.setHiddenAreas([new Range(1, 1, headerLines - 1, 1)]);
}
} }
layout(dimension: DOM.Dimension) { layout(dimension: DOM.Dimension) {
......
...@@ -106,26 +106,16 @@ function fileMatchToSearchResultFormat(fileMatch: FileMatch, labelFormatter: (x: ...@@ -106,26 +106,16 @@ function fileMatchToSearchResultFormat(fileMatch: FileMatch, labelFormatter: (x:
} }
const contentPatternToSearchResultHeader = (pattern: ITextQuery | null, includes: string, excludes: string, contextLines: number): string[] => { const contentPatternToSearchResultHeader = (pattern: ITextQuery | null, includes: string, excludes: string, contextLines: number): string[] => {
if (!pattern) { return []; } return serializeSearchConfiguration({
query: pattern?.contentPattern.pattern,
const removeNullFalseAndUndefined = <T>(a: (T | null | false | undefined)[]) => a.filter(a => a !== false && a !== null && a !== undefined) as T[]; regexp: pattern?.contentPattern.isRegExp,
caseSensitive: pattern?.contentPattern.isCaseSensitive,
const escapeNewlines = (str: string) => str.replace(/\\/g, '\\\\').replace(/\n/g, '\\n'); wholeWord: pattern?.contentPattern.isWordMatch,
excludes, includes,
return removeNullFalseAndUndefined([ showIncludesExcludes: !!(includes || excludes || pattern?.userDisabledExcludesAndIgnoreFiles),
`# Query: ${escapeNewlines(pattern.contentPattern.pattern)}`, useIgnores: pattern?.userDisabledExcludesAndIgnoreFiles === undefined ? undefined : !pattern.userDisabledExcludesAndIgnoreFiles,
contextLines,
(pattern.contentPattern.isCaseSensitive || pattern.contentPattern.isWordMatch || pattern.contentPattern.isRegExp || pattern.userDisabledExcludesAndIgnoreFiles) }).split(lineDelimiter);
&& `# 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
]);
}; };
export const serializeSearchConfiguration = (config: Partial<SearchConfiguration>): string => { export const serializeSearchConfiguration = (config: Partial<SearchConfiguration>): string => {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册