1. A non-transitory computer readable medium having instructions stored thereon that, when executed by a processor, causes the processor to function as a computer software editor, the instructions comprising: defining a Java® programming language annotation that comprises an annotation identifier, a plurality of members, a value for each member, and an associated language for each value of each member, wherein each associated language is indicated within the annotation, and wherein defining the annotation creates an interface used to read the annotation; associating each associated language that is indicated within the annotation with each value using a Java® programming language meta-annotation, wherein an editing user interface that reads the annotation provides a customized editing experience for each associated language when editing each value; displaying the annotation identifier with a first value and a first associated language in the editing user interface, wherein the displaying comprises interspersing the annotation identifier between source code statements of a second language different from the first associated language; detecting that a user is editing or is about to edit the first value by detecting a cursor position within the first value; and in response to the detecting, dynamically revising the display of the first value, and the editing user interface based on the first associated language, wherein the annotation annotates a source code statement of the second language.