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

Clean up header hiding logic

上级 2ce17a57
......@@ -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) {
......
......@@ -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 = <T>(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<SearchConfiguration>): string => {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册