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