--- /dev/null
+HypotheticalModule
+ +staticProperty <String>
+ +anotherStaticProperty <Boolean>
+ ::toggleAnotherStaticProperty()
+ ::setStaticProperty(newValue <String>)
+ -instanceProperty <Number>
+ -anotherInstanceProperty <String>
+ #instanceMethodSync([optionalParameter]<Boolean>) => resultOfCall <String>
+ #instanceMethodAsync(someValue <Number>, [callback] <Function>) ->(error <String|null>, result <Number|null>)
+
+EventHypotheticalClass
+ +>AnotherClass<+staticEventToListen(eventData <PredefinedObject>)
+ <+staticEventDispatched(someData <SomeData>)
+ ~>listenedSocketEvent(eventData <SomeObject>)
+ <~dispatchedSocketEvent(eventData <BlaBla>)
+ ->AnotherClass<-instanceEventToListen(eventData <Object>)
+ <-instanceEventDispatched(specificDataType <DefinedObject>)
--- /dev/null
+" Vim syntax file
+" Language: API Notation
+" Maintainer: Rubén Beltrán del Río
+" Latest Revision: 22 June 2015
+
+if exists("b:current_syntax")
+ finish
+endif
+
+syn match moduleName '^\w\+'
+
+syn match classMembers '^\s\+\(\(<+\)\|\(<\~\)\|\(<-\)\|\(+>\)\|\(\~>\)\|\(->\)\|-\|+\|\(::\)\|#\)' nextgroup=memberName skipwhite
+syn match internalOperators '\(\(<+\)\|\(<\~\)\|\(<-\)\|\(+>\)\|\(\~>\)\|\(->\)\|-\|+\|\(::\)\|#\)' contained nextgroup=memberName skipwhite
+syn match returnIdentifiers '\(=>\)' nextgroup=returnValue
+syn match returnIdentifiers '\(->\)'
+
+syn match memberName '\w\+' contained nextgroup=internalOperators,spacedDataType
+
+syn region parameterList start="(" end=")" transparent contains=parameters,separators,optionalParameter,dataType
+syn region optionalParameter start="\[" end="]" contains=optionalParameters contained
+syn region dataType start="<" end=">" contains=dataTypes,separators contained
+syn region spacedDataType start='\s\+<' end=">" contains=dataTypes,separators contained
+
+syn match optionalParameters '\w\+' contained
+syn match parameters '\w\+' contained
+syn match dataTypes '\w\+' contained
+syn match separators '|\|,' contained
+
+syn match returnValue '.*' contained contains=dataType,parameters
+
+
+hi def link moduleName Identifier
+
+hi def link classMembers Operator
+hi def link returnIdentifiers Operator
+hi def link internalOperators Operator
+
+hi def link memberName Special
+
+hi def link parameters PreProc
+hi def link optionalParameters Underlined
+hi def link dataTypes Constant
+
+hi def link separators Comment