Commit b2906849 authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Allow "_" and "$" in auto-linked class/member names.

parent 889bd5fa
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -142,11 +142,11 @@ module JsDuck

      # Generates regex for auto-linking class and member names in text.
      def magic_link_re
        ident_re = "(?:[A-Za-z][A-Za-z0-9]*)"
        ident_re = "(?:[A-Za-z_$][A-Za-z0-9_$]*)"
        cls_re = "(#{ident_re}(?:\\.#{ident_re})*)"
        ns_cls_re = "(#{ident_re}(?:\\.#{ident_re})+)"
        member_re = "(?:#(#{ident_re}))"
        /\b#{cls_re}#{member_re}\b|\b#{ns_cls_re}\b|#{member_re}\b/m
        /#{cls_re}#{member_re}|#{ns_cls_re}|#{member_re}/m
      end

      def replace_magic_link(cls, member)
+22 −0
Original line number Diff line number Diff line
@@ -175,6 +175,18 @@ describe JsDuck::DocFormatter do
              {:tagname => :method, :name => "blah", :id => "method-blah"},
            ]
          }),
          JsDuck::Class.new({
            :name => "_us.In_Cls_Name",
            :members => [
              {:tagname => :method, :name => "_sss", :id => "method-_sss"},
            ]
          }),
          JsDuck::Class.new({
            :name => "$Class",
            :members => [
              {:tagname => :method, :name => "$sss", :id => "method-S-sss"},
            ]
          }),
        ])
      end

@@ -223,6 +235,11 @@ describe JsDuck::DocFormatter do
          'Look at <a href="downcase.ClassName">downcase.ClassName</a>'
      end

      it "converts classname with underscores to class link" do
        @formatter.replace("Look at _us.In_Cls_Name").should ==
          'Look at <a href="_us.In_Cls_Name">_us.In_Cls_Name</a>'
      end

      it "converts ClassName ending with dot to class link" do
        @formatter.replace("Look at Foo.Bar.").should ==
          'Look at <a href="Foo.Bar">Foo.Bar</a>.'
@@ -255,6 +272,11 @@ describe JsDuck::DocFormatter do
          'Look at <a href="downcase.ClassName#method-blah">downcase.ClassName.blah</a>'
      end

      it 'converts $Class#$sss to method link' do
        @formatter.replace('Look at $Class#$sss').should ==
          'Look at <a href="$Class#method-S-sss">$Class.$sss</a>'
      end

      it "converts Ext.encode to method link" do
        @formatter.replace("Look at Ext.encode").should ==
          'Look at <a href="Ext#method-encode">Ext.encode</a>'