@@ -372,7 +372,7 @@ var td;
372372 /**
373373 * The version number of TypeDoc.
374374 */
375- Application . VERSION = '0.3.1 ' ;
375+ Application . VERSION = '0.3.2 ' ;
376376 return Application ;
377377 } ) ( ) ;
378378 td . Application = Application ;
@@ -2271,32 +2271,40 @@ var td;
22712271 catch ( error ) {
22722272 var msg = [ ] ;
22732273 msg . push ( 'An error occurred while creating reflections for the current project.' ) ;
2274- msg . push ( ' | Please report this error at https://github.com/sebastian-lenz/typedoc/issues' ) ;
2275- msg . push ( ' | including the following details:' ) ;
2276- msg . push ( ' |' ) ;
2274+ msg . push ( 'Please report this error at https://github.com/sebastian-lenz/typedoc/issues' ) ;
2275+ msg . push ( 'including the following details:' ) ;
2276+ msg . push ( '' ) ;
2277+ msg . push ( '>>> BEGIN OF ERROR DESCRIPTION' ) ;
2278+ msg . push ( '' ) ;
22772279 try {
22782280 var sourceFile = ts . getSourceFileOfNode ( node ) ;
22792281 var line = sourceFile . getLineAndCharacterFromPosition ( node . pos ) ;
22802282 if ( node . symbol ) {
2281- msg . push ( td . Util . format ( ' | The error occurred while converting `%s` in `%s` around line %s:' , context . checker . getFullyQualifiedName ( node . symbol ) , ts . getBaseFilename ( sourceFile . filename ) , line . line ) ) ;
2283+ msg . push ( td . Util . format ( 'The error occurred while converting `%s` in `%s` around line %s:' , context . checker . getFullyQualifiedName ( node . symbol ) , ts . getBaseFilename ( sourceFile . filename ) , line . line ) ) ;
22822284 }
22832285 else {
2284- msg . push ( td . Util . format ( ' | The error occurred while converting `%s` around line %s:' , ts . getBaseFilename ( sourceFile . filename ) , line . line ) ) ;
2286+ msg . push ( td . Util . format ( 'The error occurred while converting `%s` around line %s:' , ts . getBaseFilename ( sourceFile . filename ) , line . line ) ) ;
22852287 }
2286- var lines = sourceFile . getLineStarts ( ) ;
2288+ var lineData , lines = sourceFile . getLineStarts ( ) ;
2289+ var lineCount = lines . length - 1 ;
22872290 var min = Math . max ( line . line - 2 , 0 ) ;
2288- var max = Math . min ( line . line + 25 , lines . length - 2 ) ;
2291+ var max = Math . min ( line . line + 25 , lineCount ) ;
2292+ msg . push ( '' , '```' ) ;
22892293 for ( var index = min ; index <= max ; index ++ ) {
2290- msg . push ( ( index == line . line - 1 ? ' | @ ' : ' | > ' ) + sourceFile . text . substring ( lines [ index ] , lines [ index + 1 ] - 1 ) ) ;
2294+ if ( index == lineCount ) {
2295+ lineData = sourceFile . text . substring ( lines [ index ] ) ;
2296+ }
2297+ else {
2298+ lineData = sourceFile . text . substring ( lines [ index ] , lines [ index + 1 ] - 1 ) ;
2299+ }
2300+ msg . push ( ( index == line . line - 1 ? '@ ' : ' ' ) + lineData ) ;
22912301 }
2292- msg . push ( ' | ' ) ;
2302+ msg . push ( '``` ' ) ;
22932303 }
2294- catch ( error ) {
2304+ catch ( sourceError ) {
22952305 }
2296- error . stack . split ( '\n' ) . forEach ( function ( str , index ) {
2297- msg . push ( ( index == 0 ? ' | ' : ' | ' ) + str . trim ( ) ) ;
2298- } ) ;
2299- msg . push ( '' ) ;
2306+ msg . push ( '' , '```' , error . stack , '```' ) ;
2307+ msg . push ( '' , '<<< END OF ERROR DESCRIPTION' , '' , '' ) ;
23002308 context . getLogger ( ) . error ( msg . join ( '\n' ) ) ;
23012309 }
23022310 }
@@ -2550,6 +2558,35 @@ var td;
25502558 }
25512559 return member ;
25522560 }
2561+ /**
2562+ * Analyze parameters in given constructor declaration node and create a suitable reflection.
2563+ *
2564+ * @param context The context object describing the current state the converter is in.
2565+ * @param node The constructor declaration node that should be analyzed.
2566+ * @return The resulting reflection or NULL.
2567+ */
2568+ function visitConstructorModifiers ( context , node ) {
2569+ node . parameters . forEach ( function ( param ) {
2570+ var visibility = param . flags & ( 16 /* Public */ | 64 /* Protected */ | 32 /* Private */ ) ;
2571+ if ( ! visibility )
2572+ return ;
2573+ var property = converter . createDeclaration ( context , param , 1024 /* Property */ ) ;
2574+ if ( ! property )
2575+ return ;
2576+ property . setFlag ( 8 /* Static */ , false ) ;
2577+ property . type = converter . convertType ( context , param . type , context . getTypeAtLocation ( param ) ) ;
2578+ var sourceComment = converter . CommentPlugin . getComment ( node ) ;
2579+ if ( sourceComment ) {
2580+ var constructorComment = converter . CommentPlugin . parseComment ( sourceComment ) ;
2581+ if ( constructorComment ) {
2582+ var tag = constructorComment . getTag ( 'param' , property . name ) ;
2583+ if ( tag && tag . text ) {
2584+ property . comment = converter . CommentPlugin . parseComment ( tag . text ) ;
2585+ }
2586+ }
2587+ }
2588+ } ) ;
2589+ }
25532590 /**
25542591 * Analyze the given constructor declaration node and create a suitable reflection.
25552592 *
@@ -2561,6 +2598,7 @@ var td;
25612598 var parent = context . scope ;
25622599 var hasBody = ! ! node . body ;
25632600 var method = converter . createDeclaration ( context , node , 512 /* Constructor */ , 'constructor' ) ;
2601+ visitConstructorModifiers ( context , node ) ;
25642602 context . withScope ( method , function ( ) {
25652603 if ( ! hasBody || ! method . signatures ) {
25662604 var name = 'new ' + parent . name ;
0 commit comments