79 lines
1.4 KiB
Smalltalk
79 lines
1.4 KiB
Smalltalk
Class {
|
|
#name : #PPCMText,
|
|
#superclass : #PPCMNode,
|
|
#instVars : [
|
|
'text'
|
|
],
|
|
#category : #'PetitMarkdown-AST'
|
|
}
|
|
|
|
{ #category : #'as yet unclassified' }
|
|
PPCMText class >> empty [
|
|
^ self new
|
|
text: '';
|
|
yourself
|
|
]
|
|
|
|
{ #category : #comparing }
|
|
PPCMText >> = anObject [
|
|
^ text = anObject
|
|
]
|
|
|
|
{ #category : #visiting }
|
|
PPCMText >> accept: visitor [
|
|
^ visitor visitText: self
|
|
]
|
|
|
|
{ #category : #converting }
|
|
PPCMText >> asString [
|
|
^ text
|
|
]
|
|
|
|
{ #category : #comparing }
|
|
PPCMText >> hash [
|
|
^ text hash
|
|
]
|
|
|
|
{ #category : #printing }
|
|
PPCMText >> printOn: aStream [
|
|
super printOn: aStream.
|
|
aStream nextPut: $(.
|
|
aStream nextPut: $'.
|
|
text isNil ifFalse: [ aStream nextPutAll: text ].
|
|
aStream nextPut: $'.
|
|
aStream nextPut: $).
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
PPCMText >> text [
|
|
^ text ifNil: [ '' ]
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
PPCMText >> text: anObject [
|
|
text := anObject
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
PPCMText >> viewBody [
|
|
|
|
| aText |
|
|
aText := (self className ,' ', self text) asRopedText.
|
|
|
|
self children do: [ :child |
|
|
aText append: ' ' asRopedText.
|
|
aText append: (child text asRopedText foreground:
|
|
BrGlamorousColors disabledButtonTextColor).
|
|
aText append: ('= "' asRopedText foreground:
|
|
BrGlamorousColors disabledButtonTextColor).
|
|
aText append: (child text asRopedText foreground:
|
|
BrGlamorousColors disabledButtonTextColor).
|
|
aText append:
|
|
('"' asRopedText foreground:
|
|
BrGlamorousColors disabledButtonTextColor)
|
|
].
|
|
|
|
|
|
^ aText
|
|
]
|