Loading lib/jsduck/app.rb +2 −2 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ require 'jsduck/class' require 'jsduck/icons' require 'jsduck/search_data' require 'jsduck/relations' require 'jsduck/aliases' require 'jsduck/inherit_doc' require 'jsduck/exporter' require 'jsduck/renderer' require 'jsduck/parallel_wrap' Loading Loading @@ -42,7 +42,7 @@ module JsDuck parsed_files = parallel_parse(@opts.input_files) result = aggregate(parsed_files) @relations = filter_classes(result) Aliases.new(@relations).resolve_all InheritDoc.new(@relations).resolve_all Lint.new(@relations).run @images = Images.new(@opts.images) Loading lib/jsduck/doc_parser.rb +6 −6 Original line number Diff line number Diff line Loading @@ -120,8 +120,8 @@ module JsDuck at_ftype elsif look(/@member\b/) at_member elsif look(/@alias\b/) at_alias elsif look(/@inheritdoc\b/) at_inheritdoc elsif look(/@deprecated\b/) at_deprecated elsif look(/@var\b/) Loading Loading @@ -326,10 +326,10 @@ module JsDuck skip_white end # matches @alias class.name#type-member def at_alias match(/@alias/) add_tag(:alias) # matches @inheritdoc class.name#type-member def at_inheritdoc match(/@inheritdoc/) add_tag(:inheritdoc) skip_horiz_white if look(@ident_chain_pattern) @current_tag[:cls] = ident_chain Loading lib/jsduck/aliases.rb→lib/jsduck/inherit_doc.rb +54 −0 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ require 'jsduck/logger' module JsDuck class Aliases class InheritDoc def initialize(relations) @relations = relations end Loading @@ -10,45 +10,45 @@ module JsDuck def resolve_all @relations.each do |cls| cls.each_member do |member| if member[:alias] if member[:inheritdoc] resolve(member) end end end end # Copy over doc/params/return from original member to alias. def resolve(al) orig = find_original(al) al[:doc] = al[:doc] + "\n\n" + orig[:doc] al[:params] = orig[:params] if orig[:params] al[:return] = orig[:return] if orig[:return] # Copy over doc/params/return from original member to new one. def resolve(m) orig = find_original(m) m[:doc] = m[:doc] + "\n\n" + orig[:doc] m[:params] = orig[:params] if orig[:params] m[:return] = orig[:return] if orig[:return] end # Given aliased member, finds the original member. # If the original also happens to be an alias, continue recursively. def find_original(al) context = al[:files][0] al_def = al[:alias] # Finds the member to which inheritdoc refers to. # If the original also happens to alos have @inheritdoc, continue recursively. def find_original(m) context = m[:files][0] inherit = m[:inheritdoc] orig = @relations[al_def[:cls]] orig = @relations[inherit[:cls]] unless orig Logger.instance.warn(:alias, "Class #{al_def[:cls]} not found", context[:filename], context[:linenr]) return al Logger.instance.warn(:inheritdoc, "Class #{inherit[:cls]} not found", context[:filename], context[:linenr]) return m end orig = orig.get_member(al_def[:member], al_def[:type] || al[:tagname]) orig = orig.get_member(inherit[:member], inherit[:type] || m[:tagname]) unless orig Logger.instance.warn(:alias, "Member #{al_def[:cls]}##{al_def[:member]} not found", context[:filename], context[:linenr]) return al Logger.instance.warn(:inheritdoc, "Member #{inherit[:cls]}##{inherit[:member]} not found", context[:filename], context[:linenr]) return m end if orig[:alias] if orig[:inheritdoc] find_original(orig) else orig end end end end lib/jsduck/logger.rb +1 −1 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ module JsDuck @verbose = false @warning_docs = [ [:global, "Member doesn't belong to any class"], [:alias, "@alias referring to unknown class or member"], [:inheritdoc, "@inheritdoc referring to unknown class or member"], [:extend, "@extend or @mixin referring to unknown class"], [:link, "{@link} to unknown class or member"], Loading lib/jsduck/merger.rb +1 −1 Original line number Diff line number Diff line Loading @@ -226,7 +226,7 @@ module JsDuck :static => !!doc_map[:static], :inheritable => !!doc_map[:inheritable], :deprecated => detect_deprecated(doc_map), :alias => doc_map[:alias] ? doc_map[:alias].first : nil, :inheritdoc => doc_map[:inheritdoc] ? doc_map[:inheritdoc].first : nil, :meta => detect_meta(doc_map), }) hash[:id] = create_member_id(hash) Loading Loading
lib/jsduck/app.rb +2 −2 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ require 'jsduck/class' require 'jsduck/icons' require 'jsduck/search_data' require 'jsduck/relations' require 'jsduck/aliases' require 'jsduck/inherit_doc' require 'jsduck/exporter' require 'jsduck/renderer' require 'jsduck/parallel_wrap' Loading Loading @@ -42,7 +42,7 @@ module JsDuck parsed_files = parallel_parse(@opts.input_files) result = aggregate(parsed_files) @relations = filter_classes(result) Aliases.new(@relations).resolve_all InheritDoc.new(@relations).resolve_all Lint.new(@relations).run @images = Images.new(@opts.images) Loading
lib/jsduck/doc_parser.rb +6 −6 Original line number Diff line number Diff line Loading @@ -120,8 +120,8 @@ module JsDuck at_ftype elsif look(/@member\b/) at_member elsif look(/@alias\b/) at_alias elsif look(/@inheritdoc\b/) at_inheritdoc elsif look(/@deprecated\b/) at_deprecated elsif look(/@var\b/) Loading Loading @@ -326,10 +326,10 @@ module JsDuck skip_white end # matches @alias class.name#type-member def at_alias match(/@alias/) add_tag(:alias) # matches @inheritdoc class.name#type-member def at_inheritdoc match(/@inheritdoc/) add_tag(:inheritdoc) skip_horiz_white if look(@ident_chain_pattern) @current_tag[:cls] = ident_chain Loading
lib/jsduck/aliases.rb→lib/jsduck/inherit_doc.rb +54 −0 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ require 'jsduck/logger' module JsDuck class Aliases class InheritDoc def initialize(relations) @relations = relations end Loading @@ -10,45 +10,45 @@ module JsDuck def resolve_all @relations.each do |cls| cls.each_member do |member| if member[:alias] if member[:inheritdoc] resolve(member) end end end end # Copy over doc/params/return from original member to alias. def resolve(al) orig = find_original(al) al[:doc] = al[:doc] + "\n\n" + orig[:doc] al[:params] = orig[:params] if orig[:params] al[:return] = orig[:return] if orig[:return] # Copy over doc/params/return from original member to new one. def resolve(m) orig = find_original(m) m[:doc] = m[:doc] + "\n\n" + orig[:doc] m[:params] = orig[:params] if orig[:params] m[:return] = orig[:return] if orig[:return] end # Given aliased member, finds the original member. # If the original also happens to be an alias, continue recursively. def find_original(al) context = al[:files][0] al_def = al[:alias] # Finds the member to which inheritdoc refers to. # If the original also happens to alos have @inheritdoc, continue recursively. def find_original(m) context = m[:files][0] inherit = m[:inheritdoc] orig = @relations[al_def[:cls]] orig = @relations[inherit[:cls]] unless orig Logger.instance.warn(:alias, "Class #{al_def[:cls]} not found", context[:filename], context[:linenr]) return al Logger.instance.warn(:inheritdoc, "Class #{inherit[:cls]} not found", context[:filename], context[:linenr]) return m end orig = orig.get_member(al_def[:member], al_def[:type] || al[:tagname]) orig = orig.get_member(inherit[:member], inherit[:type] || m[:tagname]) unless orig Logger.instance.warn(:alias, "Member #{al_def[:cls]}##{al_def[:member]} not found", context[:filename], context[:linenr]) return al Logger.instance.warn(:inheritdoc, "Member #{inherit[:cls]}##{inherit[:member]} not found", context[:filename], context[:linenr]) return m end if orig[:alias] if orig[:inheritdoc] find_original(orig) else orig end end end end
lib/jsduck/logger.rb +1 −1 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ module JsDuck @verbose = false @warning_docs = [ [:global, "Member doesn't belong to any class"], [:alias, "@alias referring to unknown class or member"], [:inheritdoc, "@inheritdoc referring to unknown class or member"], [:extend, "@extend or @mixin referring to unknown class"], [:link, "{@link} to unknown class or member"], Loading
lib/jsduck/merger.rb +1 −1 Original line number Diff line number Diff line Loading @@ -226,7 +226,7 @@ module JsDuck :static => !!doc_map[:static], :inheritable => !!doc_map[:inheritable], :deprecated => detect_deprecated(doc_map), :alias => doc_map[:alias] ? doc_map[:alias].first : nil, :inheritdoc => doc_map[:inheritdoc] ? doc_map[:inheritdoc].first : nil, :meta => detect_meta(doc_map), }) hash[:id] = create_member_id(hash) Loading