The following example demonstrates how to register a custom language type using a plugin with a
LanguageType
annotation.
interface CustomLanguageSourceSet extends LanguageSourceSet {}
class DefaultCustomLanguageSourceSet extends BaseLanguageSourceSet implements CustomLanguageSourceSet {}
apply plugin: MySamplePlugin
class MySamplePlugin extends RuleSource {
@LanguageType
void declareCustomLanguage(LanguageTypeBuilder builder) {
builder.setLanguageName("custom")
builder.defaultImplementation(DefaultCustomLanguageSourceSet)
}
}