Home / Function/ ensureRangeIsInFrontmatter() — astro Function Reference

ensureRangeIsInFrontmatter() — astro Function Reference

Architecture documentation for the ensureRangeIsInFrontmatter() function in utils.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  f4d5d378_8ebd_87fe_28ad_afb2016fd0e9["ensureRangeIsInFrontmatter()"]
  839dada7_8bd4_2ee4_9498_f38d21d2f7e9["utils.ts"]
  f4d5d378_8ebd_87fe_28ad_afb2016fd0e9 -->|defined in| 839dada7_8bd4_2ee4_9498_f38d21d2f7e9
  097cfab7_aaea_d6ab_1435_9208279c4a99["ensureProperEditForFrontmatter()"]
  097cfab7_aaea_d6ab_1435_9208279c4a99 -->|calls| f4d5d378_8ebd_87fe_28ad_afb2016fd0e9
  style f4d5d378_8ebd_87fe_28ad_afb2016fd0e9 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/language-tools/language-server/src/plugins/utils.ts lines 82–111

export function ensureRangeIsInFrontmatter(
	range: Range,
	metadata: AstroMetadata,
	position: FrontmatterEditPosition = 'top',
): Range {
	if (metadata.frontmatter.status === 'open' || metadata.frontmatter.status === 'closed') {
		const frontmatterEndPosition = metadata.frontmatter.position.end
			? metadata.tsxRanges.frontmatter.end
			: undefined;

		// If the range start is outside the frontmatter, return a range at the start of the frontmatter
		if (
			range.start.line < metadata.tsxRanges.frontmatter.start.line ||
			(frontmatterEndPosition && range.start.line > frontmatterEndPosition.line)
		) {
			if (frontmatterEndPosition && position === 'bottom') {
				return Range.create(frontmatterEndPosition, frontmatterEndPosition);
			}

			return Range.create(
				metadata.tsxRanges.frontmatter.start,
				metadata.tsxRanges.frontmatter.start,
			);
		}

		return range;
	}

	return range;
}

Domain

Subdomains

Frequently Asked Questions

What does ensureRangeIsInFrontmatter() do?
ensureRangeIsInFrontmatter() is a function in the astro codebase, defined in packages/language-tools/language-server/src/plugins/utils.ts.
Where is ensureRangeIsInFrontmatter() defined?
ensureRangeIsInFrontmatter() is defined in packages/language-tools/language-server/src/plugins/utils.ts at line 82.
What calls ensureRangeIsInFrontmatter()?
ensureRangeIsInFrontmatter() is called by 1 function(s): ensureProperEditForFrontmatter.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free