All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.kotlinx.serialization.json.internal.FormatLanguage.kt Maven / Gradle / Ivy

There is a newer version: 1.7.3
Show newest version
package kotlinx.serialization.json.internal;

import kotlinx.serialization.InternalSerializationApi

/**
 * Multiplatform analogue of `org.intellij.lang.annotations.Language` annotation.
 *
 * An alias is used instead of class, because the actual class in the JVM will conflict with the class from the stdlib -
 * we want to avoid the situation with different classes having the same fully qualified name.
 * [see](https://github.com/JetBrains/java-annotations/issues/34)
 *
 * Specifies that an element of the program represents a string that is a source code on a specified language.
 * Code editors may use this annotation to enable syntax highlighting, code completion and other features
 * inside the literals that assigned to the annotated variables, passed as arguments to the annotated parameters,
 * or returned from the annotated methods.
 * 

* This annotation also could be used as a meta-annotation, to define derived annotations for convenience. * E.g. the following annotation could be defined to annotate the strings that represent Java methods: * *

 *   @Language(value = "JAVA", prefix = "class X{", suffix = "}")
 *   @interface JavaMethod {}
 * 
*

* Note that using the derived annotation as meta-annotation is not supported. * Meta-annotation works only one level deep. */ @InternalSerializationApi @Retention(AnnotationRetention.BINARY) @Target( AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.FIELD, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.LOCAL_VARIABLE, AnnotationTarget.ANNOTATION_CLASS ) public expect annotation class FormatLanguage( public val value: String, // default parameters are not used due to https://youtrack.jetbrains.com/issue/KT-25946/ public val prefix: String, public val suffix: String, )





© 2015 - 2024 Weber Informatics LLC | Privacy Policy