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