feat: Treat contextual colon-suffixed lines as headings for indexing

Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
2026-02-05 15:36:39 -07:00
parent c75d5d89f7
commit 2ef3a1392f

View File

@@ -229,6 +229,28 @@ export class DocumentsRepository {
metadata?.frontmatter?.[this.plugin.settings.displayTitle] ?? '' metadata?.frontmatter?.[this.plugin.settings.displayTitle] ?? ''
} }
const tags = getTagsFromMetadata(metadata) const tags = getTagsFromMetadata(metadata)
const headings1 = metadata ? extractHeadingsFromCache(metadata, 1) : []
const headings2 = metadata ? extractHeadingsFromCache(metadata, 2) : []
const headings3 = metadata ? extractHeadingsFromCache(metadata, 3) : []
const lines = content.split('\n')
const colonHeadings: string[] = []
for (let i = 0; i < lines.length; i++) {
const line = lines[i].trim()
if (line.endsWith(':')) {
const prevLine = i > 0 ? lines[i - 1].trim() : null
const nextLine = i < lines.length - 1 ? lines[i + 1].trim() : null
if (
prevLine === '' &&
nextLine !== null &&
nextLine !== ''
) {
colonHeadings.push(line.slice(0, -1).trim())
}
}
}
return { return {
basename: file.basename, basename: file.basename,
displayTitle, displayTitle,
@@ -241,15 +263,9 @@ export class DocumentsRepository {
tags: tags, tags: tags,
unmarkedTags: tags.map(t => t.replace('#', '')), unmarkedTags: tags.map(t => t.replace('#', '')),
aliases: getAliasesFromMetadata(metadata).join(''), aliases: getAliasesFromMetadata(metadata).join(''),
headings1: metadata headings1: headings1.join(' '),
? extractHeadingsFromCache(metadata, 1).join(' ') headings2: headings2.join(' '),
: '', headings3: [...headings3, ...colonHeadings].join(' '),
headings2: metadata
? extractHeadingsFromCache(metadata, 2).join(' ')
: '',
headings3: metadata
? extractHeadingsFromCache(metadata, 3).join(' ')
: '',
} }
} }
} }