From 522f34430f34dbca6456535a3969784c682a6870 Mon Sep 17 00:00:00 2001 From: Jens Fischer Date: Tue, 7 Apr 2020 21:01:59 +0200 Subject: [PATCH] Add tooltips with descriptions for compiler metadata closes #240 --- CHANGELOG.md | 1 + README.md | 2 +- resources/meta.json | 1263 ++++++++++++++++++++++++++ {images => resources}/screenshot.png | Bin run.n | Bin 467206 -> 504699 bytes runBase.hxml | 1 + src/dox/Api.hx | 16 + themes/default/templates/macros.mtt | 2 +- 8 files changed, 1283 insertions(+), 2 deletions(-) create mode 100644 resources/meta.json rename {images => resources}/screenshot.png (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd183afe2..5c90d3b4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - added support for deprecation messages on types ([#261](https://github.com/HaxeFoundation/dox/issues/261)) - added support for `@:noCompletion` implying `@:dox(hide)` ([#250](https://github.com/HaxeFoundation/dox/issues/250)) - added a `--keep-field-order` argument ([#258](https://github.com/HaxeFoundation/dox/issues/258)) +- added tooltips with descriptions for compiler metadata ([#240](https://github.com/HaxeFoundation/dox/issues/240)) - improved function type printing to use Haxe 4 syntax ([#273](https://github.com/HaxeFoundation/dox/issues/273)) - fixed JS version being used if the node version is not supported (< 8.10.0) - fixed interfaces with multiple `extends` only showing the first one ([#260](https://github.com/HaxeFoundation/dox/issues/260)) diff --git a/README.md b/README.md index b45292757..1f9195e76 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ A Haxe documentation generator used by many popular projects such as: - [HaxePunk](http://haxepunk.com/documentation/api/) - [Kha](http://api.kha.tech/) -![image](images/screenshot.png) +![image](resources/screenshot.png) ### Installation diff --git a/resources/meta.json b/resources/meta.json new file mode 100644 index 000000000..208c6e713 --- /dev/null +++ b/resources/meta.json @@ -0,0 +1,1263 @@ +[ + { + "name": "Abi", + "metadata": ":abi", + "doc": "Function ABI/calling convention.", + "platforms": ["cpp"] + }, + { + "name": "Abstract", + "metadata": ":abstract", + "doc": "Sets the underlying class implementation as `abstract`.", + "platforms": ["java", "cs"] + }, + { + "name": "Access", + "metadata": ":access", + "doc": "Forces private access to package, type or field.", + "params": ["Target path"], + "targets": ["TClass", "TClassField"], + "links": ["https://haxe.org/manual/lf-access-control.html"] + }, + { + "name": "Accessor", + "metadata": ":accessor", + "doc": "Used internally by DCE to mark property accessors.", + "targets": ["TClassField"], + "internal": true + }, + { + "name": "Allow", + "metadata": ":allow", + "doc": "Allows private access from package, type or field.", + "params": ["Target path"], + "links": ["https://haxe.org/manual/lf-access-control.html"] + }, + { + "name": "Analyzer", + "metadata": ":analyzer", + "doc": "Used to configure the static analyzer." + }, + { + "name": "Annotation", + "metadata": ":annotation", + "doc": "Annotation (`@interface`) definitions on `--java-lib` imports will be annotated with this metadata. Has no effect on types compiled by Haxe.", + "platforms": ["java"], + "targets": ["TClass"] + }, + { + "name": "ArrayAccess", + "metadata": ":arrayAccess", + "doc": "Allows array access on an abstract.", + "targets": ["TAbstract", "TAbstractField"], + "links": ["https://haxe.org/manual/types-abstract-array-access.html"] + }, + { + "name": "AssemblyMeta", + "metadata": ":cs.assemblyMeta", + "doc": "Used to declare a native C# assembly attribute", + "platforms": ["cs"], + "targets": ["TClass"] + }, + { + "name": "AssemblyStrict", + "metadata": ":cs.assemblyStrict", + "doc": "Used to declare a native C# assembly attribute; is type checked", + "platforms": ["cs"], + "targets": ["TClass"] + }, + { + "name": "Ast", + "metadata": ":ast", + "doc": "Internally used to pass the AST source into the typed AST.", + "internal": true + }, + { + "name": "AstSource", + "metadata": ":astSource", + "doc": "Filled by the compiler with the parsed expression of the field.", + "targets": ["TClassField"] + }, + { + "name": "AutoBuild", + "metadata": ":autoBuild", + "doc": "Extends `@:build` metadata to all extending and implementing classes.", + "params": ["Build macro call"], + "targets": ["TClass"], + "links": ["https://haxe.org/manual/macro-auto-build.html"] + }, + { + "name": "Bind", + "metadata": ":bind", + "doc": "Override SWF class declaration.", + "platforms": ["flash"], + "targets": ["TClass"] + }, + { + "name": "Bitmap", + "metadata": ":bitmap", + "doc": "Embeds given bitmap data into the class (must extend `flash.display.BitmapData`).", + "platforms": ["flash"], + "params": ["Bitmap file path"], + "targets": ["TClass"], + "links": ["https://haxe.org/manual/target-flash-resources.html"] + }, + { + "name": "BridgeProperties", + "metadata": ":bridgeProperties", + "doc": "Creates native property bridges for all Haxe properties in this class.", + "platforms": ["cs"], + "targets": ["TClass"] + }, + { + "name": "Build", + "metadata": ":build", + "doc": "Builds a class or enum from a macro.", + "params": ["Build macro call"], + "targets": ["TClass", "TEnum"], + "links": ["https://haxe.org/manual/macro-type-building.html"] + }, + { + "name": "BuildXml", + "metadata": ":buildXml", + "doc": "Specify XML data to be injected into `Build.xml`.", + "platforms": ["cpp"] + }, + { + "name": "BypassAccessor", + "metadata": ":bypassAccessor", + "doc": "Do not call property accessor method and access the field directly.", + "targets": ["TExpr"], + "links": ["https://haxe.org/manual/class-field-property.html"] + }, + { + "name": "Callable", + "metadata": ":callable", + "doc": "Abstract forwards call to its underlying type.", + "targets": ["TAbstract"] + }, + { + "name": "Class", + "metadata": ":class", + "doc": "Used internally to annotate an enum that will be generated as a class.", + "platforms": ["java", "cs"], + "targets": ["TEnum"], + "internal": true + }, + { + "name": "ClassCode", + "metadata": ":classCode", + "doc": "Used to inject platform-native code into a class.", + "platforms": ["java", "cs"], + "targets": ["TClass"] + }, + { + "name": "Commutative", + "metadata": ":commutative", + "doc": "Declares an abstract operator as commutative.", + "targets": ["TAbstractField"], + "links": ["https://haxe.org/manual/types-abstract-operator-overloading.html"] + }, + { + "name": "CompilerGenerated", + "metadata": ":compilerGenerated", + "doc": "Marks a field as generated by the compiler. Should not be used by the end user.", + "internal": true + }, + { + "name": "Const", + "metadata": ":const", + "doc": "Allows a type parameter to accept expression values.", + "targets": ["TTypeParameter"] + }, + { + "name": "CoreApi", + "metadata": ":coreApi", + "doc": "Identifies this class as a core API class (forces API check).", + "targets": ["TClass", "TEnum", "TTypedef", "TAbstract"] + }, + { + "name": "CoreType", + "metadata": ":coreType", + "doc": "Identifies an abstract as core type so that it requires no implementation.", + "targets": ["TAbstract"], + "links": ["https://haxe.org/manual/types-abstract-core-type.html"] + }, + { + "name": "CppFileCode", + "metadata": ":cppFileCode", + "doc": "Code to be injected into generated cpp file.", + "platforms": ["cpp"] + }, + { + "name": "CppInclude", + "metadata": ":cppInclude", + "doc": "File to be included in generated cpp file.", + "platforms": ["cpp"] + }, + { + "name": "CppNamespaceCode", + "metadata": ":cppNamespaceCode", + "doc": "", + "platforms": ["cpp"] + }, + { + "name": "CsNative", + "metadata": ":csNative", + "doc": "Automatically added by `--net-lib` on classes generated from .NET DLL files.", + "platforms": ["cs"], + "targets": ["TClass", "TEnum"], + "internal": true + }, + { + "name": "CsUsing", + "metadata": ":cs.using", + "doc": "Add using directives to your module", + "platforms": ["cs"], + "targets": ["TClass"] + }, + { + "name": "Dce", + "metadata": ":dce", + "doc": "Forces dead code elimination even when `--dce full` is not specified.", + "targets": ["TClass", "TEnum"], + "links": ["https://haxe.org/manual/cr-dce.html"] + }, + { + "name": "Debug", + "metadata": ":debug", + "doc": "Forces debug information to be generated into the SWF even without `--debug`.", + "platforms": ["flash"], + "targets": ["TClass", "TClassField"] + }, + { + "name": "Decl", + "metadata": ":decl", + "doc": "", + "platforms": ["cpp"] + }, + { + "name": "DefParam", + "metadata": ":defParam", + "doc": "Default function argument value loaded from the SWF and used for documentation in Genxml.", + "platforms": ["flash"], + "internal": true + }, + { + "name": "Delegate", + "metadata": ":delegate", + "doc": "Automatically added by `--net-lib` on delegates.", + "platforms": ["cs"], + "targets": ["TAbstract"] + }, + { + "name": "Depend", + "metadata": ":depend", + "doc": "", + "platforms": ["cpp"] + }, + { + "name": "Deprecated", + "metadata": ":deprecated", + "doc": "Mark a type or field as deprecated." + }, + { + "name": "DirectlyUsed", + "metadata": ":directlyUsed", + "doc": "Marks types that are directly referenced by non-extern code.", + "internal": true + }, + { + "name": "DisplayOverride", + "metadata": ":?display.override", + "doc": "Internally used to mark override fields for completion", + "internal": true + }, + { + "name": "DynamicObject", + "metadata": ":dynamicObject", + "doc": "Used internally to identify the Dynamic Object implementation.", + "platforms": ["java", "cs"], + "targets": ["TClass"], + "internal": true + }, + { + "name": "Eager", + "metadata": ":eager", + "doc": "Forces typedefs to be followed early.", + "targets": ["TTypedef"] + }, + { + "name": "Enum", + "metadata": ":enum", + "doc": "Defines finite value sets to abstract definitions.", + "targets": ["TAbstract"], + "links": ["https://haxe.org/manual/types-abstract-enum.html"] + }, + { + "name": "EnumConstructorParam", + "metadata": ":enumConstructorParam", + "doc": "Used internally to annotate GADT type parameters.", + "targets": ["TClass"], + "internal": true + }, + { + "name": "Event", + "metadata": ":event", + "doc": "Automatically added by `--net-lib` on events. Has no effect on types compiled by Haxe.", + "platforms": ["cs"], + "targets": ["TClassField"] + }, + { + "name": "Exhaustive", + "metadata": ":exhaustive", + "doc": "Used internally to mark that a switch is exhaustive.", + "internal": true, + "links": ["https://haxe.org/manual/lf-pattern-matching-exhaustiveness.html"] + }, + { + "name": "Expose", + "metadata": ":expose", + "doc": "Includes the class or field in Haxe exports (default name is the classpath).", + "platforms": ["js", "lua"], + "params": ["name"], + "links": ["https://haxe.org/manual/target-javascript-expose.html"] + }, + { + "name": "Extern", + "metadata": ":extern", + "doc": "Marks the field as extern so it is not generated.", + "targets": ["TClassField"] + }, + { + "name": "File", + "metadata": ":file", + "doc": "Includes a given binary file into the target SWF and associates it with the class (must extend `flash.utils.ByteArray`).", + "platforms": ["flash"], + "params": ["File path"], + "targets": ["TClass"], + "links": ["https://haxe.org/manual/target-flash-resources.html"] + }, + { + "name": "FileXml", + "metadata": ":fileXml", + "doc": "Include a given XML attribute snippet in the `Build.xml` entry for the file.", + "platforms": ["cpp"], + "targets": ["TClass"] + }, + { + "name": "Final", + "metadata": ":final", + "doc": "Prevents a class or interface from being extended or a method from being overridden. Deprecated by the keyword `final`.", + "targets": ["TClass", "TClassField"], + "links": ["https://haxe.org/manual/class-field-final.html"] + }, + { + "devcomment": "this used to have UsedOn TObjectDecl(_)", + "name": "Fixed", + "metadata": ":fixed", + "doc": "Declares an anonymous object to have fixed fields." + }, + { + "name": "FlashProperty", + "metadata": ":flash.property", + "doc": "", + "platforms": ["flash"], + "targets": ["TClassField"] + }, + { + "name": "FlatEnum", + "metadata": ":flatEnum", + "doc": "Internally used to mark an enum as being flat, i.e. having no function constructors.", + "targets": ["TEnum"], + "internal": true + }, + { + "name": "Font", + "metadata": ":font", + "doc": "Embeds the given TrueType font into the class (must extend `flash.text.Font`).", + "params": ["TTF path", "Range String"], + "targets": ["TClass"], + "links": ["https://haxe.org/manual/target-flash-resources.html"] + }, + { + "name": "ForLoopVariable", + "metadata": ":forLoopVariable", + "doc": "Internally used to mark for-loop variables.", + "internal": true + }, + { + "name": "Forward", + "metadata": ":forward", + "doc": "Forwards field access to underlying type.", + "params": ["List of field names"], + "targets": ["TAbstract"], + "links": ["https://haxe.org/manual/types-abstract-forward.html"] + }, + { + "name": "ForwardStatics", + "metadata": ":forwardStatics", + "doc": "Forwards static field access to underlying type.", + "params": ["List of field names"], + "targets": ["TAbstract"], + "links": ["https://haxe.org/manual/types-abstract-forward.html"] + }, + { + "name": "From", + "metadata": ":from", + "doc": "Specifies that the field of the abstract is a cast operation from the type identified in the function.", + "targets": ["TAbstractField"], + "links": ["https://haxe.org/manual/types-abstract-implicit-casts.html"] + }, + { + "name": "FunctionCode", + "metadata": ":functionCode", + "doc": "Used to inject platform-native code into a function.", + "platforms": ["cpp", "java", "cs"] + }, + { + "name": "FunctionTailCode", + "metadata": ":functionTailCode", + "doc": "", + "platforms": ["cpp"] + }, + { + "name": "Generic", + "metadata": ":generic", + "doc": "Marks a class or class field as generic so each type parameter combination generates its own type/field.", + "links": ["https://haxe.org/manual/type-system-generic.html"] + }, + { + "name": "GenericBuild", + "metadata": ":genericBuild", + "doc": "Builds instances of a type using the specified macro.", + "targets": ["TClass"] + }, + { + "name": "GenericInstance", + "metadata": ":genericInstance", + "doc": "Internally used to mark instances of `@:generic` methods.", + "targets": ["TClassField"], + "internal": true + }, + { + "name": "GenericClassPerMethod", + "metadata": ":genericClassPerMethod", + "doc": "Makes compiler generate separate class per generic static method specialization", + "targets": ["TClass"] + }, + { + "name": "Getter", + "metadata": ":getter", + "doc": "Generates a native getter function on the given field.", + "platforms": ["flash"], + "params": ["Class field name"], + "targets": ["TClassField"] + }, + { + "name": "Hack", + "metadata": ":hack", + "doc": "Allows extending classes marked as `@:final`. Not guaranteed to work on all targets.", + "targets": ["TClass"] + }, + { + "name": "HasUntyped", + "metadata": ":has_untyped", + "doc": "Used by the typer to mark fields that have untyped expressions.", + "internal": true + }, + { + "name": "HaxeGeneric", + "metadata": ":haxeGeneric", + "doc": "Used internally to annotate non-native generic classes.", + "platforms": ["cs"], + "targets": ["TClass", "TEnum"], + "internal": true + }, + { + "name": "HeaderClassCode", + "metadata": ":headerClassCode", + "doc": "Code to be injected into the generated class, in the header.", + "platforms": ["cpp"] + }, + { + "name": "HeaderCode", + "metadata": ":headerCode", + "doc": "Code to be injected into the generated header file.", + "platforms": ["cpp"] + }, + { + "name": "HeaderInclude", + "metadata": ":headerInclude", + "doc": "File to be included in generated header file.", + "platforms": ["cpp"] + }, + { + "name": "HeaderNamespaceCode", + "metadata": ":headerNamespaceCode", + "doc": "", + "platforms": ["cpp"] + }, + { + "name": "HlNative", + "metadata": ":hlNative", + "doc": "Specifies `hdll` name and function prefix for native functions.", + "platforms": ["hl"], + "targets": ["TClass", "TClassField"] + }, + { + "name": "HxGen", + "metadata": ":hxGen", + "doc": "Annotates that an extern class was generated by Haxe.", + "platforms": ["java", "cs"], + "targets": ["TClass", "TEnum"] + }, + { + "name": "IfFeature", + "metadata": ":ifFeature", + "doc": "Causes a field to be kept by DCE if the given feature is part of the compilation.", + "params": ["Feature name"], + "targets": ["TClassField"], + "links": ["https://haxe.org/manual/cr-dce.html"] + }, + { + "name": "Impl", + "metadata": ":impl", + "doc": "Used internally to mark abstract implementation fields.", + "targets": ["TAbstractField"], + "internal": true + }, + { + "name": "PythonImport", + "metadata": ":pythonImport", + "doc": "Generates python import statement for extern classes.", + "platforms": ["python"], + "targets": ["TClass"] + }, + { + "name": "ImplicitCast", + "metadata": ":implicitCast", + "doc": "Generated automatically on the AST when an implicit abstract cast happens.", + "targets": ["TExpr"], + "internal": true + }, + { + "name": "ImplicitReturn", + "metadata": ":implicitReturn", + "doc": "Generated automatically on the AST when an implicit return is inserted for arrow function.", + "targets": ["TExpr"], + "internal": true + }, + { + "name": "Include", + "metadata": ":include", + "doc": "", + "platforms": ["cpp"] + }, + { + "name": "InitPackage", + "metadata": ":initPackage", + "doc": "Some weird thing for Genjs we want to remove someday.", + "platforms": ["js"], + "internal": true + }, + { + "name": "Inline", + "metadata": ":inline", + "doc": "Inserted by the parser in case of `inline expr` and `inline function`.", + "targets": ["TExpr"] + }, + { + "name": "InlineConstructorArgument", + "metadata": ":inlineConstructorArgument", + "doc": "Internally used to mark expressions that were passed as arguments of an inlined constructor.", + "internal": true + }, + { + "name": "Internal", + "metadata": ":internal", + "doc": "Generates the annotated field/class with 'internal' access.", + "platforms": ["java", "cs"], + "targets": ["TClass", "TEnum", "TClassField"] + }, + { + "name": "IsVar", + "metadata": ":isVar", + "doc": "Forces a physical field to be generated for properties that otherwise would not require one.", + "targets": ["TClassField"], + "links": ["https://haxe.org/manual/class-field-property-rules.html"] + }, + { + "name": "JavaCanonical", + "metadata": ":javaCanonical", + "doc": "Used by the Java target to annotate the canonical path of the type.", + "platforms": ["java"], + "params": ["Output type package", "Output type name"], + "targets": ["TClass", "TEnum"] + }, + { + "name": "JavaNative", + "metadata": ":javaNative", + "doc": "Automatically added by `--java-lib` on classes generated from JAR/class files.", + "platforms": ["java"], + "targets": ["TClass", "TEnum"], + "internal": true + }, + { + "name": "JvmSynthetic", + "metadata": ":jvm.synthetic", + "doc": "Mark generated class, field or method as synthetic", + "platforms": ["java"], + "targets": ["TClass", "TEnum", "TAnyField"] + }, + { + "name": "JsRequire", + "metadata": ":jsRequire", + "doc": "Generate JavaScript module require expression for given extern.", + "platforms": ["js"], + "targets": ["TClass"], + "links": ["https://haxe.org/manual/target-javascript-require.html"] + }, + { + "name": "LuaRequire", + "metadata": ":luaRequire", + "doc": "Generate Lua module require expression for given extern.", + "platforms": ["lua"], + "targets": ["TClass"] + }, + { + "name": "LuaDotMethod", + "metadata": ":luaDotMethod", + "doc": "Indicates that the given extern type instance should have dot-style invocation for methods instead of colon.", + "platforms": ["lua"] + }, + { + "name": "Keep", + "metadata": ":keep", + "doc": "Causes a field or type to be kept by DCE.", + "links": ["https://haxe.org/manual/cr-dce.html"] + }, + { + "name": "KeepInit", + "metadata": ":keepInit", + "doc": "Causes a class to be kept by DCE even if all its field are removed.", + "targets": ["TClass"], + "links": ["https://haxe.org/manual/cr-dce.html"] + }, + { + "name": "KeepSub", + "metadata": ":keepSub", + "doc": "Extends `@:keep` metadata to all implementing and extending classes.", + "targets": ["TClass"], + "links": ["https://haxe.org/manual/cr-dce.html"] + }, + { + "name": "LibType", + "metadata": ":libType", + "doc": "Used by `--net-lib` and `--java-lib` to mark a class that should not be checked (overrides, interfaces, etc) by the type loader.", + "platforms": ["java", "cs"], + "targets": ["TClass"], + "internal": true + }, + { + "name": "LoopLabel", + "metadata": ":loopLabel", + "doc": "Mark loop and break expressions with a label to support breaking from within switch.", + "internal": true + }, + { + "name": "Markup", + "metadata": ":markup", + "doc": "Used as a result of inline XML parsing.", + "links": ["https://haxe.org/manual/lf-markup.html"] + }, + { + "name": "Meta", + "metadata": ":meta", + "doc": "Internally used to mark a class field as being the metadata field.", + "internal": true + }, + { + "name": "Macro", + "metadata": ":macro", + "doc": "(deprecated)" + }, + { + "name": "MaybeUsed", + "metadata": ":maybeUsed", + "doc": "Internally used by DCE to mark fields that might be kept.", + "internal": true + }, + { + "name": "MergeBlock", + "metadata": ":mergeBlock", + "doc": "Merge the annotated block into the current scope.", + "targets": ["TExpr"] + }, + { + "name": "MultiReturn", + "metadata": ":multiReturn", + "doc": "Annotates an extern class as the result of multi-return function.", + "platforms": ["lua"], + "targets": ["TClass"], + "links": ["https://haxe.org/manual/target-lua-multireturns.html"] + }, + { + "name": "MultiType", + "metadata": ":multiType", + "doc": "Specifies that an abstract chooses its this-type from its `@:to` functions.", + "params": ["Relevant type parameters"], + "targets": ["TAbstract"] + }, + { + "name": "Native", + "metadata": ":native", + "doc": "Rewrites the path of a type or class field during generation.", + "params": ["Output path"], + "targets": ["TClass", "TEnum", "TAbstract", "TClassField"], + "links": ["https://haxe.org/manual/lf-externs.html"] + }, + { + "name": "NativeJni", + "metadata": ":java.native", + "doc": "Annotates that a function has implementation in native code through JNI.", + "platforms": ["java"], + "targets": ["TClassField"] + }, + { + "name": "NativeChildren", + "metadata": ":nativeChildren", + "doc": "Annotates that all children from a type should be treated as if it were an extern definition - platform native.", + "platforms": ["java", "cs"], + "targets": ["TClass"] + }, + { + "name": "NativeGen", + "metadata": ":nativeGen", + "doc": "Annotates that a type should be treated as if it were an extern definition - platform native.", + "platforms": ["java", "cs", "python"], + "targets": ["TClass", "TEnum"] + }, + { + "name": "NativeGeneric", + "metadata": ":nativeGeneric", + "doc": "Used internally to annotate native generic classes.", + "platforms": ["cs"], + "targets": ["TClass", "TEnum"], + "internal": true + }, + { + "name": "NativeProperty", + "metadata": ":nativeProperty", + "doc": "Use native properties which will execute even with dynamic usage.", + "platforms": ["cpp"] + }, + { + "name": "NativeStaticExtension", + "metadata": ":nativeStaticExtension", + "doc": "Converts static function syntax into member call.", + "platforms": ["cpp"] + }, + { + "name": "NoCompletion", + "metadata": ":noCompletion", + "doc": "Prevents the compiler from suggesting completion on this field or type.", + "targets": ["TClassField"], + "links": ["https://haxe.org/manual/cr-completion.html"] + }, + { + "name": "NoClosure", + "metadata": ":noClosure", + "doc": "Prevents a method or all methods in a class from being used as a value.", + "targets": ["TClass", "TClassField"] + }, + { + "name": "NoDebug", + "metadata": ":noDebug", + "doc": "Does not generate debug information even if `--debug` is set.", + "platforms": ["flash", "cpp"], + "targets": ["TClass", "TClassField"] + }, + { + "name": "NoDoc", + "metadata": ":noDoc", + "doc": "Prevents a type from being included in documentation generation." + }, + { + "name": "NoExpr", + "metadata": ":noExpr", + "doc": "Internally used to mark abstract fields which have no expression by design.", + "internal": true + }, + { + "name": "NoImportGlobal", + "metadata": ":noImportGlobal", + "doc": "Prevents a static field from being imported with `import Class.*`.", + "targets": ["TAnyField"] + }, + { + "name": "NonVirtual", + "metadata": ":nonVirtual", + "doc": "Declares function to be non-virtual in cpp.", + "platforms": ["cpp"] + }, + { + "name": "NoPackageRestrict", + "metadata": ":noPackageRestrict", + "doc": "Allows a module to be accessed across all targets if found on its first type.", + "internal": true + }, + { + "name": "NoPrivateAccess", + "metadata": ":noPrivateAccess", + "doc": "Disallow private access to anything for the annotated expression.", + "targets": ["TExpr"] + }, + { + "name": "NoStack", + "metadata": ":noStack", + "doc": "", + "platforms": ["cpp"] + }, + { + "name": "NotNull", + "metadata": ":notNull", + "doc": "Declares an abstract type as not accepting null values.", + "targets": ["TAbstract"], + "links": ["https://haxe.org/manual/types-nullability.html"] + }, + { + "name": "NoUsing", + "metadata": ":noUsing", + "doc": "Prevents a field from being used with static extension.", + "targets": ["TClassField"], + "links": ["https://haxe.org/manual/lf-static-extension.html"] + }, + { + "name": "Ns", + "metadata": ":ns", + "doc": "Internally used by the SWF generator to handle namespaces.", + "platforms": ["flash"], + "internal": true + }, + { + "name": "NullSafety", + "metadata": ":nullSafety", + "doc": "Enables null safety for classes or fields. Disables null safety for classes, fields or expressions if provided with `Off` as an argument.", + "params": ["Off | Loose | Strict | StrictThreaded"], + "targets": ["TClass", "TClassField", "TExpr"], + "links": ["https://haxe.org/manual/cr-null-safety.html"] + }, + { + "name": "Objc", + "metadata": ":objc", + "doc": "Declares a class or interface that is used to interoperate with Objective-C code.", + "platforms": ["cpp"], + "targets": ["TClass"] + }, + { + "name": "ObjcProtocol", + "metadata": ":objcProtocol", + "doc": "Associates an interface with, or describes a function in, a native Objective-C protocol.", + "platforms": ["cpp"] + }, + { + "name": "Op", + "metadata": ":op", + "doc": "Declares an abstract field as being an operator overload.", + "params": ["The operation"], + "targets": ["TAbstractField"], + "links": ["https://haxe.org/manual/types-abstract-operator-overloading.html"] + }, + { + "name": "Optional", + "metadata": ":optional", + "doc": "Marks the field of a structure as optional.", + "targets": ["TClassField"], + "links": ["https://haxe.org/manual/types-nullability-optional-arguments.html"] + }, + { + "name": "Overload", + "metadata": ":overload", + "doc": "Allows the field to be called with different argument types.", + "params": ["Function specification (no expression)"], + "targets": ["TClassField"], + "links": ["https://haxe.org/manual/target-javascript-external-libraries.html"] + }, + { + "name": "Persistent", + "metadata": ":persistent", + "doc": "Keeps the value of static variables in macro context across compilations.", + "targets": ["TAnyField"], + "platforms": ["eval"] + }, + { + "name": "PhpGlobal", + "metadata": ":phpGlobal", + "doc": "Indicates that static fields of an extern class actually are located in the global PHP namespace.", + "platforms": ["php"], + "targets": ["TClass"] + }, + { + "name": "PhpClassConst", + "metadata": ":phpClassConst", + "doc": "Indicates that a static var of an extern class is a PHP class constant.", + "platforms": ["php"], + "targets": ["TClassField"] + }, + { + "name": "PhpMagic", + "metadata": ":phpMagic", + "doc": "Treat annotated field as special PHP magic field - this meta makes compiler avoid renaming such fields on generating PHP code.", + "platforms": ["php"], + "targets": ["TClassField"] + }, + { + "name": "PhpNoConstructor", + "metadata": ":phpNoConstructor", + "doc": "Special meta for extern classes which do not have native constructor in PHP, but need a constructor in Haxe extern.", + "platforms": ["php"], + "targets": ["TClass"] + }, + { + "name": "Pos", + "metadata": ":pos", + "doc": "Sets the position of a reified expression.", + "params": ["Position"], + "targets": ["TExpr"], + "links": ["https://haxe.org/manual/macro-reification.html"] + }, + { + "name": "Public", + "metadata": ":public", + "doc": "Marks a class field as being public.", + "targets": ["TClassField"], + "internal": true + }, + { + "name": "PublicFields", + "metadata": ":publicFields", + "doc": "Forces all class fields of inheriting classes to be public.", + "targets": ["TClass"] + }, + { + "name": "Private", + "metadata": ":private", + "doc": "Marks a class field as being private.", + "platforms": ["cs"], + "targets": ["TClassField"] + }, + { + "name": "PrivateAccess", + "metadata": ":privateAccess", + "doc": "Allow private access to anything for the annotated expression.", + "targets": ["TExpr"] + }, + { + "name": "Protected", + "metadata": ":protected", + "doc": "Marks a class field as being protected.", + "platforms": ["cs", "java", "flash"], + "targets": ["TClassField"] + }, + { + "name": "Property", + "metadata": ":property", + "doc": "Marks a field to be compiled as a native C# property.", + "platforms": ["cs"], + "targets": ["TClassField"] + }, + { + "name": "Pure", + "metadata": ":pure", + "doc": "Marks a class field, class or expression as pure (side-effect free).", + "targets": ["TClass", "TClassField", "TExpr"] + }, + { + "name": "ReadOnly", + "metadata": ":readOnly", + "doc": "Generates a field with the `readonly` native keyword.", + "platforms": ["cs"], + "targets": ["TClassField"] + }, + { + "name": "RealPath", + "metadata": ":realPath", + "doc": "Internally used on `@:native` types to retain original path information.", + "internal": true + }, + { + "name": "Remove", + "metadata": ":remove", + "doc": "Causes an interface to be removed from all implementing classes before generation.", + "targets": ["TClass"] + }, + { + "name": "Require", + "metadata": ":require", + "doc": "Allows access to a field only if the specified compiler flag is set.", + "params": ["Compiler flag to check"], + "targets": ["TClassField"], + "links": ["https://haxe.org/manual/lf-condition-compilation.html"] + }, + { + "name": "RequiresAssign", + "metadata": ":requiresAssign", + "doc": "Used internally to mark certain abstract operator overloads.", + "internal": true + }, + { + "name": "Resolve", + "metadata": ":resolve", + "doc": "Abstract fields marked with this metadata can be used to resolve unknown fields.", + "targets": ["TClassField"] + }, + { + "name": "Rtti", + "metadata": ":rtti", + "doc": "Adds runtime type information.", + "targets": ["TClass"], + "links": ["https://haxe.org/manual/cr-rtti.html"] + }, + { + "name": "Runtime", + "metadata": ":runtime", + "doc": "", + "internal": true + }, + { + "name": "RuntimeValue", + "metadata": ":runtimeValue", + "doc": "Marks an abstract as being a runtime value.", + "targets": ["TAbstract"] + }, + { + "name": "Scalar", + "metadata": ":scalar", + "doc": "Used by hxcpp to mark a custom coreType abstract.", + "platforms": ["cpp"], + "targets": ["TAbstract"] + }, + { + "name": "SelfCall", + "metadata": ":selfCall", + "doc": "Translates method calls into calling object directly.", + "platforms": ["js", "lua"], + "targets": ["TClassField"], + "links": ["https://haxe.org/manual/target-javascript-external-libraries.html"] + }, + { + "name": "Semantics", + "metadata": ":semantics", + "doc": "The native semantics of the type.", + "params": ["value | reference | variable"], + "targets": ["TClass", "TTypedef", "TAbstract"] + }, + { + "name": "Setter", + "metadata": ":setter", + "doc": "Generates a native setter function on the given field.", + "platforms": ["flash"], + "params": ["Class field name"], + "targets": ["TClassField"] + }, + { + "name": "SkipCtor", + "metadata": ":skipCtor", + "doc": "Used internally to generate a constructor as if it were a native type (no `__hx_ctor`).", + "platforms": ["java", "cs"], + "internal": true + }, + { + "name": "SkipReflection", + "metadata": ":skipReflection", + "doc": "Used internally to annotate a field that shouldn't have its reflection data generated.", + "platforms": ["java", "cs"], + "targets": ["TClassField"], + "internal": true + }, + { + "name": "Sound", + "metadata": ":sound", + "doc": "Includes a given .wav or .mp3 file into the target SWF and associates it with the class (must extend `flash.media.Sound`).", + "platforms": ["flash"], + "params": ["File path"], + "targets": ["TClass"], + "links": ["https://haxe.org/manual/target-flash-resources.html"] + }, + { + "name": "SourceFile", + "metadata": ":sourceFile", + "doc": "Source code filename for external class.", + "platforms": ["cpp"] + }, + { + "name": "StackOnly", + "metadata": ":stackOnly", + "doc": "Instances of this type can only appear on the stack.", + "platforms": ["cpp"] + }, + { + "name": "StaticExtension", + "metadata": "haxe.internal.static_extension", + "doc": "Used internally to mark static extension fields.", + "internal": true + }, + { + "name": "StoredTypedExpr", + "metadata": ":storedTypedExpr", + "doc": "Used internally to reference a typed expression returned from a macro.", + "internal": true + }, + { + "name": "Strict", + "metadata": ":strict", + "doc": "Used to declare a native C# attribute or a native Java metadata; is type checked.", + "platforms": ["java", "cs"] + }, + { + "name": "Struct", + "metadata": ":struct", + "doc": "Marks a class definition as a struct.", + "platforms": ["cs", "hl"], + "targets": ["TClass"] + }, + { + "name": "StructAccess", + "metadata": ":structAccess", + "doc": "Marks an extern class as using struct access (`.`) not pointer (`->`).", + "platforms": ["cpp"], + "targets": ["TClass"] + }, + { + "name": "StructInit", + "metadata": ":structInit", + "doc": "Allows one to initialize the class with a structure that matches constructor parameters.", + "targets": ["TClass"] + }, + { + "name": "SuppressWarnings", + "metadata": ":suppressWarnings", + "doc": "Adds a `SuppressWarnings` annotation for the generated Java class.", + "platforms": ["java"], + "targets": ["TClass"] + }, + { + "name": "TailRecursion", + "metadata": ":tailRecursion", + "doc": "Internally used for tail recursion elimination.", + "internal": true + }, + { + "name": "TemplatedCall", + "metadata": ":templatedCall", + "doc": "Indicates that the first parameter of static call should be treated as a template argument.", + "platforms": ["cpp"], + "targets": ["TClassField"] + }, + { + "name": "Throws", + "metadata": ":throws", + "doc": "Adds a `throws` declaration to the generated function.", + "platforms": ["java"], + "params": ["Type as String"], + "targets": ["TClassField"] + }, + { + "name": "This", + "metadata": ":this", + "doc": "Internally used to pass a `this` expression to macros.", + "targets": ["TExpr"], + "internal": true + }, + { + "name": "To", + "metadata": ":to", + "doc": "Specifies that the field of the abstract is a cast operation to the type identified in the function.", + "targets": ["TAbstractField"], + "links": ["https://haxe.org/manual/types-abstract-implicit-casts.html"] + }, + { + "name": "ToString", + "metadata": ":toString", + "doc": "Internally used.", + "internal": true + }, + { + "name": "Transient", + "metadata": ":transient", + "doc": "Adds the `transient` flag to the class field.", + "platforms": ["java"], + "targets": ["TClassField"] + }, + { + "name": "ValueUsed", + "metadata": ":valueUsed", + "doc": "Internally used by DCE to mark an abstract value as used.", + "internal": true + }, + { + "name": "Volatile", + "metadata": ":volatile", + "doc": "", + "platforms": ["java", "cs"] + }, + { + "name": "UnifyMinDynamic", + "metadata": ":unifyMinDynamic", + "doc": "Allows a collection of types to unify to `Dynamic`.", + "targets": ["TClassField"] + }, + { + "name": "Unreflective", + "metadata": ":unreflective", + "doc": "", + "platforms": ["cpp"] + }, + { + "name": "Unsafe", + "metadata": ":unsafe", + "doc": "Declares a class, or a method with the C#'s `unsafe` flag.", + "platforms": ["cs"], + "targets": ["TClass", "TClassField"] + }, + { + "name": "Used", + "metadata": ":used", + "doc": "Internally used by DCE to mark a class or field as used.", + "internal": true + }, + { + "name": "Using", + "metadata": ":using", + "doc": "Automatically uses the argument types as static extensions for the annotated type.", + "targets": ["TClass", "TEnum", "TAbstract"], + "links": ["https://haxe.org/manual/lf-static-extension-metadata.html"] + }, + { + "name": "Value", + "metadata": ":value", + "doc": "Used to store default values for fields and function arguments.", + "targets": ["TClassField"], + "internal": true + }, + { + "name": "HaxeArguments", + "metadata": ":haxe.arguments", + "doc": "Used to store function arguments.", + "targets": ["TClassField"], + "internal": true + }, + { + "name": "Void", + "metadata": ":void", + "doc": "Use Cpp native `void` return type.", + "platforms": ["cpp"] + }, + { + "name": "NeedsExceptionStack", + "metadata": ":needsExceptionStack", + "doc": "Internally used for some of auto-generated `catch` vars", + "internal": true + } +] diff --git a/images/screenshot.png b/resources/screenshot.png similarity index 100% rename from images/screenshot.png rename to resources/screenshot.png diff --git a/run.n b/run.n index 28bee67c4c408ce3f7dbbf8e7cb2f1949d7e7c28..5a8356fa2318e9d80ea661fa4ff9f8047242abf8 100644 GIT binary patch delta 115860 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 diff --git a/runBase.hxml b/runBase.hxml index c2dda479d..a42e8611c 100644 --- a/runBase.hxml +++ b/runBase.hxml @@ -5,4 +5,5 @@ -cp src -main dox.Dox -dce no +--resource resources/meta.json # --macro nullSafety("dox") \ No newline at end of file diff --git a/src/dox/Api.hx b/src/dox/Api.hx index c086c91ba..62e12d4b5 100644 --- a/src/dox/Api.hx +++ b/src/dox/Api.hx @@ -1,5 +1,6 @@ package dox; +import haxe.Resource; import haxe.Json; import haxe.rtti.CType; @@ -36,9 +37,16 @@ class Api { **/ public var std = Std; + /** + Information about compiler metadata by name. + **/ + public var metas:Map; + public function new(cfg:Config, infos:Infos) { this.config = cfg; this.infos = infos; + var metas:Array<{metadata:String}> = Json.parse(Resource.getString("resources/meta.json")); + this.metas = [for (meta in metas) meta.metadata => meta]; } /** @@ -160,6 +168,14 @@ class Api { return sentence.match(stripped) ? sentence.matched(1) : ""; } + public function getMetaDesc(meta:String):String { + if (!metas.exists(meta)) { + return ""; + } + var doc = metas[meta].doc; + return if (doc == null) "" else doc; + } + /** Turns a dot-path into a slash-path and appends ".html". **/ diff --git a/themes/default/templates/macros.mtt b/themes/default/templates/macros.mtt index 1572b71f5..bf40811c2 100644 --- a/themes/default/templates/macros.mtt +++ b/themes/default/templates/macros.mtt @@ -98,7 +98,7 @@ ::if (meta.name != ":deprecated")::::if false::::end:: ::set metaName = meta.name.substr(1):: ::set displayMetaName = "@" + meta.name:: - ::displayMetaName:: + ::displayMetaName:: ::if (meta.params != null && meta.params.length > 0)::( ::foreach param meta.params:: $$printMetaParam(::param::)