@@ -587,36 +587,51 @@ describe "TextMate Ruby grammar", ->
587587 expect ( tokens [ 2 ] ) . toEqual value : '@' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.punctuation.yard.ruby' ]
588588 expect ( tokens [ 3 ] ) . toEqual value : 'private' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.yard.ruby' ]
589589
590- { tokens } = grammar . tokenizeLine ( '# @deprecated Because I said so' )
591- expect ( tokens [ 0 ] ) . toEqual value : '#' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'punctuation.definition.comment.ruby' ]
592- expect ( tokens [ 1 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' ]
593- expect ( tokens [ 2 ] ) . toEqual value : '@' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.punctuation.yard.ruby' ]
594- expect ( tokens [ 3 ] ) . toEqual value : 'deprecated' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.yard.ruby' ]
595- expect ( tokens [ 4 ] ) . toEqual value : ' Because I said so' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' ]
590+ tokens = grammar . tokenizeLines '' '
591+ # @deprecated Because I said so,
592+ # end of discussion
593+ ' ''
594+ expect ( tokens [ 0 ] [ 0 ] ) . toEqual value : '#' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'punctuation.definition.comment.ruby' ]
595+ expect ( tokens [ 0 ] [ 1 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' ]
596+ expect ( tokens [ 0 ] [ 2 ] ) . toEqual value : '@' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.punctuation.yard.ruby' ]
597+ expect ( tokens [ 0 ] [ 3 ] ) . toEqual value : 'deprecated' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.yard.ruby' ]
598+ expect ( tokens [ 0 ] [ 4 ] ) . toEqual value : ' Because I said so,' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' ]
599+ expect ( tokens [ 1 ] [ 0 ] ) . toEqual value : '#' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' , 'punctuation.definition.comment.ruby' ]
600+ expect ( tokens [ 1 ] [ 1 ] ) . toEqual value : ' end of discussion' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' ]
596601
597- { tokens } = grammar . tokenizeLine ( '# @raise [Bar] Baz' )
598- expect ( tokens [ 0 ] ) . toEqual value : '#' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'punctuation.definition.comment.ruby' ]
599- expect ( tokens [ 1 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' ]
600- expect ( tokens [ 2 ] ) . toEqual value : '@' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.punctuation.yard.ruby' ]
601- expect ( tokens [ 3 ] ) . toEqual value : 'raise' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.yard.ruby' ]
602- expect ( tokens [ 4 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' ]
603- expect ( tokens [ 5 ] ) . toEqual value : '[' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' , 'comment.line.punctuation.yard.ruby' ]
604- expect ( tokens [ 6 ] ) . toEqual value : 'Bar' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' ]
605- expect ( tokens [ 7 ] ) . toEqual value : ']' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' , 'comment.line.punctuation.yard.ruby' ]
606- expect ( tokens [ 8 ] ) . toEqual value : ' Baz' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' ]
602+ tokens = grammar . tokenizeLines '' '
603+ # @raise [AccountBalanceError] if the account does not have
604+ # sufficient funds to perform the transaction
605+ ' ''
606+ expect ( tokens [ 0 ] [ 0 ] ) . toEqual value : '#' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'punctuation.definition.comment.ruby' ]
607+ expect ( tokens [ 0 ] [ 1 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' ]
608+ expect ( tokens [ 0 ] [ 2 ] ) . toEqual value : '@' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.punctuation.yard.ruby' ]
609+ expect ( tokens [ 0 ] [ 3 ] ) . toEqual value : 'raise' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.yard.ruby' ]
610+ expect ( tokens [ 0 ] [ 4 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' ]
611+ expect ( tokens [ 0 ] [ 5 ] ) . toEqual value : '[' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' , 'comment.line.punctuation.yard.ruby' ]
612+ expect ( tokens [ 0 ] [ 6 ] ) . toEqual value : 'AccountBalanceError' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' ]
613+ expect ( tokens [ 0 ] [ 7 ] ) . toEqual value : ']' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' , 'comment.line.punctuation.yard.ruby' ]
614+ expect ( tokens [ 0 ] [ 8 ] ) . toEqual value : ' if the account does not have' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' ]
615+ expect ( tokens [ 1 ] [ 0 ] ) . toEqual value : '#' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' , 'punctuation.definition.comment.ruby' ]
616+ expect ( tokens [ 1 ] [ 1 ] ) . toEqual value : ' sufficient funds to perform the transaction' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' ]
607617
608- { tokens } = grammar . tokenizeLine ( '# @param foo [Bar] Baz' )
609- expect ( tokens [ 0 ] ) . toEqual value : '#' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'punctuation.definition.comment.ruby' ]
610- expect ( tokens [ 1 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' ]
611- expect ( tokens [ 2 ] ) . toEqual value : '@' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.punctuation.yard.ruby' ]
612- expect ( tokens [ 3 ] ) . toEqual value : 'param' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.yard.ruby' ]
613- expect ( tokens [ 4 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' ]
614- expect ( tokens [ 5 ] ) . toEqual value : 'foo' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.parameter.yard.ruby' ]
615- expect ( tokens [ 6 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' ]
616- expect ( tokens [ 7 ] ) . toEqual value : '[' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' , 'comment.line.punctuation.yard.ruby' ]
617- expect ( tokens [ 8 ] ) . toEqual value : 'Bar' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' ]
618- expect ( tokens [ 9 ] ) . toEqual value : ']' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' , 'comment.line.punctuation.yard.ruby' ]
619- expect ( tokens [ 10 ] ) . toEqual value : ' Baz' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' ]
618+ tokens = grammar . tokenizeLines '' '
619+ # @param value [Object] describe value param in a long way which
620+ # makes it multiline
621+ ' ''
622+ expect ( tokens [ 0 ] [ 0 ] ) . toEqual value : '#' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'punctuation.definition.comment.ruby' ]
623+ expect ( tokens [ 0 ] [ 1 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' ]
624+ expect ( tokens [ 0 ] [ 2 ] ) . toEqual value : '@' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.punctuation.yard.ruby' ]
625+ expect ( tokens [ 0 ] [ 3 ] ) . toEqual value : 'param' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.yard.ruby' ]
626+ expect ( tokens [ 0 ] [ 4 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' ]
627+ expect ( tokens [ 0 ] [ 5 ] ) . toEqual value : 'value' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.parameter.yard.ruby' ]
628+ expect ( tokens [ 0 ] [ 6 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' ]
629+ expect ( tokens [ 0 ] [ 7 ] ) . toEqual value : '[' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' , 'comment.line.punctuation.yard.ruby' ]
630+ expect ( tokens [ 0 ] [ 8 ] ) . toEqual value : 'Object' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' ]
631+ expect ( tokens [ 0 ] [ 9 ] ) . toEqual value : ']' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' , 'comment.line.punctuation.yard.ruby' ]
632+ expect ( tokens [ 0 ] [ 10 ] ) . toEqual value : ' describe value param in a long way which' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' ]
633+ expect ( tokens [ 1 ] [ 0 ] ) . toEqual value : '#' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' , 'punctuation.definition.comment.ruby' ]
634+ expect ( tokens [ 1 ] [ 1 ] ) . toEqual value : ' makes it multiline' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' ]
620635
621636 { tokens } = grammar . tokenizeLine ( '# @param [Bar] Baz' )
622637 expect ( tokens [ 0 ] ) . toEqual value : '#' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'punctuation.definition.comment.ruby' ]
@@ -651,16 +666,21 @@ describe "TextMate Ruby grammar", ->
651666 expect ( tokens [ 7 ] ) . toEqual value : ']' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' , 'comment.line.punctuation.yard.ruby' ]
652667 expect ( tokens [ 8 ] ) . toEqual value : ' comment' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' ]
653668
654- { tokens } = grammar . tokenizeLine ( '# @!attribute [r] foo comment' )
655- expect ( tokens [ 0 ] ) . toEqual value : '#' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'punctuation.definition.comment.ruby' ]
656- expect ( tokens [ 1 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' ]
657- expect ( tokens [ 2 ] ) . toEqual value : '@!' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.punctuation.yard.ruby' ]
658- expect ( tokens [ 3 ] ) . toEqual value : 'attribute' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.yard.ruby' ]
659- expect ( tokens [ 4 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' ]
660- expect ( tokens [ 5 ] ) . toEqual value : '[' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' , 'comment.line.punctuation.yard.ruby' ]
661- expect ( tokens [ 6 ] ) . toEqual value : 'r' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' ]
662- expect ( tokens [ 7 ] ) . toEqual value : ']' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' , 'comment.line.punctuation.yard.ruby' ]
663- expect ( tokens [ 8 ] ) . toEqual value : ' foo comment' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' ]
669+ tokens = grammar . tokenizeLines '' '
670+ # @!attribute [r] count the number of items
671+ # present in the list
672+ ' ''
673+ expect ( tokens [ 0 ] [ 0 ] ) . toEqual value : '#' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'punctuation.definition.comment.ruby' ]
674+ expect ( tokens [ 0 ] [ 1 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' ]
675+ expect ( tokens [ 0 ] [ 2 ] ) . toEqual value : '@!' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.punctuation.yard.ruby' ]
676+ expect ( tokens [ 0 ] [ 3 ] ) . toEqual value : 'attribute' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.keyword.yard.ruby' ]
677+ expect ( tokens [ 0 ] [ 4 ] ) . toEqual value : ' ' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' ]
678+ expect ( tokens [ 0 ] [ 5 ] ) . toEqual value : '[' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' , 'comment.line.punctuation.yard.ruby' ]
679+ expect ( tokens [ 0 ] [ 6 ] ) . toEqual value : 'r' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' ]
680+ expect ( tokens [ 0 ] [ 7 ] ) . toEqual value : ']' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.yard.ruby' , 'comment.line.type.yard.ruby' , 'comment.line.punctuation.yard.ruby' ]
681+ expect ( tokens [ 0 ] [ 8 ] ) . toEqual value : ' count the number of items' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' ]
682+ expect ( tokens [ 1 ] [ 0 ] ) . toEqual value : '#' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' , 'punctuation.definition.comment.ruby' ]
683+ expect ( tokens [ 1 ] [ 1 ] ) . toEqual value : ' present in the list' , scopes : [ 'source.ruby' , 'comment.line.number-sign.ruby' , 'comment.line.string.yard.ruby' ]
664684
665685 it "tokenizes a method with *args properly" , ->
666686 { tokens } = grammar . tokenizeLine ( 'def method(*args)' )
0 commit comments