@@ -477,34 +477,55 @@ local function tryDocEnum(source)
477477 if not tbl then
478478 return
479479 end
480- local md = markdown ()
481- md : add ( ' lua ' , ' { ' )
482- for _ , field in ipairs ( tbl ) do
483- if field . type == ' tablefield '
484- or field .type == ' tableindex ' then
485- if not field .value then
486- goto CONTINUE
487- end
488- local key = guide . getKeyName ( field )
489- if not key then
490- goto CONTINUE
491- end
492- if field . value . type == ' integer '
493- or field . value . type == ' string ' then
494- md : add ( ' lua ' , ( ' %s: %s = %s, ' ): format ( key , field . value . type , field . value [ 1 ]))
480+ if vm . docHasAttr ( source , ' key ' ) then
481+ local md = markdown ( )
482+ local keys = {}
483+ for _ , field in ipairs ( tbl ) do
484+ if field .type == ' tablefield '
485+ or field .type == ' tableindex ' then
486+ if not field . value then
487+ goto CONTINUE
488+ end
489+ local key = guide . getKeyName ( field )
490+ if not key then
491+ goto CONTINUE
492+ end
493+ keys [ # keys + 1 ] = ( ' %q ' ): format ( key )
494+ :: CONTINUE ::
495495 end
496- if field .value .type == ' binary'
497- or field .value .type == ' unary' then
498- local number = vm .getNumber (field .value )
499- if number then
500- md :add (' lua' , (' %s: %s = %s,' ):format (key , math.tointeger (number ) and ' integer' or ' number' , number ))
496+ end
497+ md :add (' lua' , table.concat (keys , ' | ' ))
498+ return md :string ()
499+ else
500+ local md = markdown ()
501+ md :add (' lua' , ' {' )
502+ for _ , field in ipairs (tbl ) do
503+ if field .type == ' tablefield'
504+ or field .type == ' tableindex' then
505+ if not field .value then
506+ goto CONTINUE
507+ end
508+ local key = guide .getKeyName (field )
509+ if not key then
510+ goto CONTINUE
511+ end
512+ if field .value .type == ' integer'
513+ or field .value .type == ' string' then
514+ md :add (' lua' , (' %s: %s = %s,' ):format (key , field .value .type , field .value [1 ]))
515+ end
516+ if field .value .type == ' binary'
517+ or field .value .type == ' unary' then
518+ local number = vm .getNumber (field .value )
519+ if number then
520+ md :add (' lua' , (' %s: %s = %s,' ):format (key , math.tointeger (number ) and ' integer' or ' number' , number ))
521+ end
501522 end
523+ :: CONTINUE::
502524 end
503- :: CONTINUE::
504525 end
526+ md :add (' lua' , ' }' )
527+ return md :string ()
505528 end
506- md :add (' lua' , ' }' )
507- return md :string ()
508529end
509530
510531--- @async
0 commit comments