fixed up missing descriptions and added support for KProperty
This commit is contained in:
@@ -19,6 +19,7 @@ import org.jetbrains.jet.lang.descriptors.CallableDescriptor
|
|||||||
import org.jetbrains.jet.lang.resolve.scopes.receivers.ExtensionReceiver
|
import org.jetbrains.jet.lang.resolve.scopes.receivers.ExtensionReceiver
|
||||||
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor
|
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor
|
||||||
import org.jetbrains.jet.lang.psi.JetFile
|
import org.jetbrains.jet.lang.psi.JetFile
|
||||||
|
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor
|
||||||
|
|
||||||
fun containerName(descriptor: DeclarationDescriptor): String = qualifiedName(descriptor.containingDeclaration)
|
fun containerName(descriptor: DeclarationDescriptor): String = qualifiedName(descriptor.containingDeclaration)
|
||||||
|
|
||||||
@@ -147,6 +148,12 @@ class KModel(var context: BindingContext, var title: String = "Documentation", v
|
|||||||
if (function != null) {
|
if (function != null) {
|
||||||
list.add(function)
|
list.add(function)
|
||||||
}
|
}
|
||||||
|
} else if (descriptor is PropertyDescriptor) {
|
||||||
|
if (owner is KClass) {
|
||||||
|
val name = descriptor.getName()
|
||||||
|
val property = KProperty(descriptor, name)
|
||||||
|
owner.properties.add(property)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e: Throwable) {
|
} catch (e: Throwable) {
|
||||||
@@ -250,12 +257,18 @@ class KModel(var context: BindingContext, var title: String = "Documentation", v
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
abstract class KAnnotated {
|
||||||
|
public open var description: String = ""
|
||||||
|
|
||||||
|
public open var detailedDescription: String = ""
|
||||||
|
get() = if ($detailedDescription.notEmpty()) $detailedDescription else description
|
||||||
|
}
|
||||||
|
|
||||||
class KPackage(val model: KModel, val descriptor: NamespaceDescriptor,
|
class KPackage(val model: KModel, val descriptor: NamespaceDescriptor,
|
||||||
val name: String, var external: Boolean = false,
|
val name: String, var external: Boolean = false,
|
||||||
var description: String = "",
|
|
||||||
var detailedDescription: String = "",
|
|
||||||
var functions: SortedSet<KFunction> = TreeSet<KFunction>(),
|
var functions: SortedSet<KFunction> = TreeSet<KFunction>(),
|
||||||
var local: Boolean = false) : Comparable<KPackage>, KClassOrPackage {
|
var local: Boolean = false) : KAnnotated(), Comparable<KPackage>, KClassOrPackage {
|
||||||
|
|
||||||
override fun compareTo(other: KPackage): Int = name.compareTo(other.name)
|
override fun compareTo(other: KPackage): Int = name.compareTo(other.name)
|
||||||
|
|
||||||
fun equals(other: KPackage) = name == other.name
|
fun equals(other: KPackage) = name == other.name
|
||||||
@@ -343,14 +356,14 @@ class KPackage(val model: KModel, val descriptor: NamespaceDescriptor,
|
|||||||
class KClass(val pkg: KPackage, val descriptor: ClassDescriptor,
|
class KClass(val pkg: KPackage, val descriptor: ClassDescriptor,
|
||||||
val simpleName: String,
|
val simpleName: String,
|
||||||
var kind: String = "class", var group: String = "Other",
|
var kind: String = "class", var group: String = "Other",
|
||||||
var description: String = "", var detailedDescription: String = "",
|
|
||||||
var annotations: List<KAnnotation> = arrayList<KAnnotation>(),
|
var annotations: List<KAnnotation> = arrayList<KAnnotation>(),
|
||||||
var since: String = "",
|
var since: String = "",
|
||||||
var authors: List<String> = arrayList<String>(),
|
var authors: List<String> = arrayList<String>(),
|
||||||
var functions: SortedSet<KFunction> = TreeSet<KFunction>(),
|
var functions: SortedSet<KFunction> = TreeSet<KFunction>(),
|
||||||
|
var properties: SortedSet<KProperty> = TreeSet<KProperty>(),
|
||||||
var baseClasses: List<KClass> = arrayList<KClass>(),
|
var baseClasses: List<KClass> = arrayList<KClass>(),
|
||||||
var nestedClasses: List<KClass> = arrayList<KClass>(),
|
var nestedClasses: List<KClass> = arrayList<KClass>(),
|
||||||
var sourceLine: Int = 2) : Comparable<KClass>, KClassOrPackage {
|
var sourceLine: Int = 2) : KAnnotated(), Comparable<KClass>, KClassOrPackage {
|
||||||
|
|
||||||
override fun compareTo(other: KClass): Int = name.compareTo(other.name)
|
override fun compareTo(other: KClass): Int = name.compareTo(other.name)
|
||||||
|
|
||||||
@@ -388,7 +401,6 @@ class KClass(val pkg: KPackage, val descriptor: ClassDescriptor,
|
|||||||
|
|
||||||
class KFunction(val owner: KClassOrPackage, val name: String,
|
class KFunction(val owner: KClassOrPackage, val name: String,
|
||||||
var returnType: KClass,
|
var returnType: KClass,
|
||||||
var description: String = "", var detailedDescription: String = "",
|
|
||||||
var deprecated: Boolean = false,
|
var deprecated: Boolean = false,
|
||||||
var extensionClass: KClass? = null,
|
var extensionClass: KClass? = null,
|
||||||
var modifiers: List<String> = arrayList<String>(),
|
var modifiers: List<String> = arrayList<String>(),
|
||||||
@@ -396,7 +408,7 @@ class KFunction(val owner: KClassOrPackage, val name: String,
|
|||||||
var parameters: List<KParameter> = arrayList<KParameter>(),
|
var parameters: List<KParameter> = arrayList<KParameter>(),
|
||||||
var exceptions: List<KClass> = arrayList<KClass>(),
|
var exceptions: List<KClass> = arrayList<KClass>(),
|
||||||
var annotations: List<KAnnotation> = arrayList<KAnnotation>(),
|
var annotations: List<KAnnotation> = arrayList<KAnnotation>(),
|
||||||
var sourceLine: Int = 2) : Comparable<KFunction> {
|
var sourceLine: Int = 2) : KAnnotated(), Comparable<KFunction> {
|
||||||
|
|
||||||
override fun compareTo(other: KFunction): Int {
|
override fun compareTo(other: KFunction): Int {
|
||||||
var answer = name.compareTo(other.name)
|
var answer = name.compareTo(other.name)
|
||||||
@@ -428,9 +440,17 @@ class KFunction(val owner: KClassOrPackage, val name: String,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class KProperty(var descriptor: PropertyDescriptor, var name: String) : KAnnotated(), Comparable<KProperty> {
|
||||||
|
|
||||||
|
override fun compareTo(other: KProperty): Int = name.compareTo(other.name)
|
||||||
|
|
||||||
|
fun equals(other: KFunction) = name == other.name
|
||||||
|
|
||||||
|
fun toString() = "property $name}"
|
||||||
|
}
|
||||||
|
|
||||||
class KParameter(val name: String,
|
class KParameter(val name: String,
|
||||||
var klass: KClass,
|
var klass: KClass) : KAnnotated() {
|
||||||
var description: String = "", var detailedDescription: String = "") {
|
|
||||||
|
|
||||||
fun toString() = "$name: ${klass.name}"
|
fun toString() = "$name: ${klass.name}"
|
||||||
}
|
}
|
||||||
@@ -444,8 +464,7 @@ class KTypeParameter(val name: String,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class KAnnotation(var klass: KClass,
|
class KAnnotation(var klass: KClass) : KAnnotated() {
|
||||||
var description: String = "", var detailedDescription: String = "") {
|
|
||||||
|
|
||||||
// TODO add some parameter values?
|
// TODO add some parameter values?
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user