62 OTHER DEALINGS IN THE SOFTWARE. |
62 OTHER DEALINGS IN THE SOFTWARE. |
63 " |
63 " |
64 ! ! |
64 ! ! |
65 |
65 |
66 !SyntaxHighlighter2 class methodsFor:'highlighting'! |
66 !SyntaxHighlighter2 class methodsFor:'highlighting'! |
|
67 |
|
68 |
67 |
69 |
68 formatClassDefinition:aString in:aClass elementsInto: elements |
70 formatClassDefinition:aString in:aClass elementsInto: elements |
69 "format (recolor) a class definition expression in a given class. |
71 "format (recolor) a class definition expression in a given class. |
70 Return the text containing font changes and color information." |
72 Return the text containing font changes and color information." |
71 |
73 |
571 ^node |
577 ^node |
572 |
578 |
573 "Modified: / 19-01-2000 / 16:22:16 / cg" |
579 "Modified: / 19-01-2000 / 16:22:16 / cg" |
574 "Modified: / 16-02-2012 / 23:39:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
580 "Modified: / 16-02-2012 / 23:39:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
575 ! |
581 ! |
|
582 |
|
583 |
576 |
584 |
577 unaryExpressionFor:receiverArg |
585 unaryExpressionFor:receiverArg |
578 "parse a unary-expression; return a node-tree, nil or #Error" |
586 "parse a unary-expression; return a node-tree, nil or #Error" |
579 |
587 |
580 |receiver expr sel pos pos2 lNr arguments savedLastSelectorElement| |
588 |receiver expr sel pos pos2 lNr arguments savedLastSelectorElement| |
688 super markBadIdentifierFrom:pos1 to:pos2 |
696 super markBadIdentifierFrom:pos1 to:pos2 |
689 |
697 |
690 "Created: / 17-03-2012 / 19:02:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
698 "Created: / 17-03-2012 / 19:02:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
691 ! |
699 ! |
692 |
700 |
|
701 markGlobalClassIdentifierFrom:pos1 to:pos2 |
|
702 |
|
703 | name env cls | |
|
704 |
|
705 super markGlobalClassIdentifierFrom:pos1 to:pos2. |
|
706 |
|
707 name := token isString ifTrue:[token asSymbolIfInterned] ifFalse:[nil]. |
|
708 name notNil ifTrue:[ |
|
709 env := (classToCompileFor ? UndefinedObject) theNonMetaclass environment. |
|
710 cls := env isNameSpace ifTrue:[env at: name] ifFalse:[nil]. |
|
711 cls isNil ifTrue:[ |
|
712 cls := Smalltalk at: name |
|
713 ] |
|
714 ]. |
|
715 |
|
716 elements add: (SyntaxElementVariable from: pos1 to: pos2 type: #class value: cls) |
|
717 |
|
718 "Created: / 14-02-2010 / 14:08:44 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
719 "Modified: / 15-02-2010 / 10:53:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
720 "Modified: / 18-11-2011 / 14:54:53 / cg" |
|
721 ! |
|
722 |
693 markLocalIdentifierFrom:pos1 to:pos2 |
723 markLocalIdentifierFrom:pos1 to:pos2 |
694 | node el prevEl | |
724 | node el prevEl | |
695 |
725 |
696 super markLocalIdentifierFrom:pos1 to:pos2. |
726 super markLocalIdentifierFrom:pos1 to:pos2. |
697 node := VariableNode methodLocalNamed:(sourceText string copyFrom: pos1 to: pos2). |
727 node := VariableNode methodLocalNamed:(sourceText string copyFrom: pos1 to: pos2). |
702 lastVariableElements at:node name put:el. |
732 lastVariableElements at:node name put:el. |
703 elements add: el. |
733 elements add: el. |
704 |
734 |
705 "Modified: / 21-08-2011 / 09:27:26 / cg" |
735 "Modified: / 21-08-2011 / 09:27:26 / cg" |
706 "Created: / 16-02-2012 / 22:36:41 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
736 "Created: / 16-02-2012 / 22:36:41 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
737 ! |
|
738 |
|
739 markMethodArgumentIdentifierFrom:pos1 to:pos2 |
|
740 super markMethodArgumentIdentifierFrom:pos1 to:pos2. |
|
741 self rememberVariableElementFor:tokenName type:#MethodArg from:pos1 to:pos2 assigned:false |
|
742 |
|
743 "Created: / 24-07-2010 / 09:25:12 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
744 "Modified: / 21-08-2011 / 09:27:26 / cg" |
707 ! |
745 ! |
708 |
746 |
709 markSelector:selectorString from:pos1 to:pos2 receiverNode:aReceiverNode |
747 markSelector:selectorString from:pos1 to:pos2 receiverNode:aReceiverNode |
710 |
748 |
711 | element selectorSymbol | |
749 | element selectorSymbol | |
739 "Modified: / 14-02-2010 / 19:24:17 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
777 "Modified: / 14-02-2010 / 19:24:17 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
740 "Modified (format): / 21-08-2011 / 09:18:21 / cg" |
778 "Modified (format): / 21-08-2011 / 09:18:21 / cg" |
741 "Modified: / 19-04-2012 / 09:53:59 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
779 "Modified: / 19-04-2012 / 09:53:59 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
742 ! |
780 ! |
743 |
781 |
|
782 |
|
783 |
744 markUnknownIdentifierFrom:pos1 to:pos2 |
784 markUnknownIdentifierFrom:pos1 to:pos2 |
745 |
785 |
746 ignoreBadIdentifier == true ifTrue:[ ^ self ]. |
786 ignoreBadIdentifier == true ifTrue:[ ^ self ]. |
747 |
787 |
748 super markUnknownIdentifierFrom:pos1 to:pos2 |
788 super markUnknownIdentifierFrom:pos1 to:pos2 |
749 |
789 |
750 "Created: / 31.3.1998 / 19:09:26 / cg" |
790 "Created: / 31.3.1998 / 19:09:26 / cg" |
751 "Modified: / 31.3.1998 / 19:10:30 / cg" |
791 "Modified: / 31.3.1998 / 19:10:30 / cg" |
752 ! |
792 ! |
753 |
793 |
754 rememberVariableElementFor:name type:typeSymbol from:pos1 to:pos2 |
794 markVariable:v from:pos1 to:pos2 assigned:assigned |
|
795 super markVariable:v from:pos1 to:pos2 assigned:assigned. |
|
796 (v type == #GlobalVariable) ifTrue:[^self]. |
|
797 |
|
798 self rememberVariableElementFor:v name type:v type from:pos1 to:pos2 assigned:assigned |
|
799 |
|
800 "Created: / 25-06-2010 / 13:03:37 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
801 "Modified: / 25-06-2010 / 14:23:03 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
802 "Modified: / 21-08-2011 / 09:26:30 / cg" |
|
803 ! |
|
804 |
|
805 rememberVariableElementFor:name type:typeSymbol from:pos1 to:pos2 |
|
806 self rememberVariableElementFor:name type:typeSymbol from:pos1 to:pos2 assigned:true |
|
807 ! |
|
808 |
|
809 rememberVariableElementFor:name type:typeSymbol from:pos1 to:pos2 assigned:assigned |
755 |element prev| |
810 |element prev| |
756 |
811 |
757 prev := lastVariableElements at:name ifAbsent:[nil]. |
812 prev := (lastVariableElements at:typeSymbol ifAbsentPut:[Dictionary new]) at:name ifAbsent:[nil]. |
758 (prev notNil and:[prev start == pos1]) ifTrue:[^ self]. |
813 (prev notNil and:[prev start == pos1]) ifTrue:[^ self]. |
759 |
814 |
760 element := SyntaxElement from: pos1 to: pos2 type:typeSymbol value: name. |
815 element := SyntaxElementVariable from: pos1 to: pos2 type:typeSymbol value: name assigned:assigned. |
761 |
816 |
762 prev notNil ifTrue:[prev next:element]. |
817 prev notNil ifTrue:[prev next:element]. |
763 lastVariableElements at:name put:element. |
818 (lastVariableElements at:typeSymbol) at:name put:element. |
764 |
819 |
765 elements add: element. |
820 elements add: element. |
766 |
821 |
767 "Created: / 21-08-2011 / 09:26:24 / cg" |
822 "Created: / 21-08-2011 / 09:26:24 / cg" |
768 ! ! |
823 ! ! |
769 |
824 |
770 !SyntaxHighlighter2 class methodsFor:'documentation'! |
825 !SyntaxHighlighter2 class methodsFor:'documentation'! |
771 |
826 |
772 version_CVS |
827 version_CVS |
773 ^ '$Header: /cvs/stx/stx/libtool/SyntaxHighlighter2.st,v 1.13 2013-04-19 09:38:13 cg Exp $' |
828 ^ '$Header: /cvs/stx/stx/libtool/SyntaxHighlighter2.st,v 1.14 2013-06-14 14:31:48 cg Exp $' |
774 ! |
829 ! |
775 |
830 |
776 version_HG |
831 version_HG |
777 |
832 |
778 ^ '$Changeset: <not expanded> $' |
833 ^ '$Changeset: <not expanded> $' |
779 ! |
834 ! |
780 |
835 |
781 version_SVN |
836 version_SVN |
782 ^ '§Id: SyntaxHighlighter2.st 7715 2011-04-10 16:32:58Z vranyj1 §' |
837 ^ '$Id: SyntaxHighlighter2.st,v 1.14 2013-06-14 14:31:48 cg Exp $' |
783 ! ! |
838 ! ! |
784 |
839 |