#Lint Rule API

#Meta information

In order to effectively showcase our product in the marketplace and during installation, it is crucial to include the meta information.

#id

messageLintRule.${string}.${string} required

Unique id of module. Consists of type (messageLintRule), author and name.

// Example
id: "messageLintRule.inlang.missingTranslation" 

#displayName

Record<LanguageTag, string> required The name that is displayed in the marketplace. The name will be localized in the future that's why there is the languageTag. For now en is fine.

// Example
displayName: { en: "Lint Rule Name" }

#description

Record<LanguageTag, string> required The description that is displayed in the marketplace. It will be localized in the future that's why there is the languageTag. For now en is fine.

// Example
description: { en: "This is the Lint Rule description" }

#Lint Logic

Where you define and execute your custom linting logic, analyzing message variants and reporting issues as needed.

#message

function

This function named message receives a message along with additional contextual information, such as languageTags, sourceLanguageTag, and a report callback.

	message: (args: {
		message: Message
		settings: ProjectSettings & ExternalSettings
		report: (args: {
			messageId: Message["id"]
			languageTag: LanguageTag
			body: MessageLintReport["body"]
		}) => void
	}) => MaybePromise<void>

You can find a video tutorial here: https://www.youtube.com/watch?v=MW9LjRghSWg

Was this helpful?

Thank you for your feedback ♥️