VDBScatchPadApplication.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 21 Sep 2019 18:31:45 +0100
changeset 185 bb863cb24c1a
parent 175 a304c250e889
child 264 23960fcb9dac
permissions -rw-r--r--
Do not try to raise transcript window if `Transcript` is not graphical ...but - for instance - a `StdOut` or `StdErr`.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
175
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
jv:vdb - Visual / VM Debugger
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Copyright (C) 2015-now Jan Vrany
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
"
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
"{ Package: 'jv:vdb' }"
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
"{ NameSpace: Smalltalk }"
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
WorkspaceApplication subclass:#VDBScatchPadApplication
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
	instanceVariableNames:''
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
	classVariableNames:''
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
	poolDictionaries:''
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
	category:'VDB-UI-Others'
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
!
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
!VDBScatchPadApplication class methodsFor:'documentation'!
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
copyright
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
"
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
jv:vdb - Visual / VM Debugger
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
Copyright (C) 2015-now Jan Vrany
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
"
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
! !
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
!VDBScatchPadApplication methodsFor:'defaults'!
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
defaultEvaluatorSyntax
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
    ^nil
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
    "Created: / 21-06-2019 / 10:59:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
!
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
thisIsASmalltalkWorkspace
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    "can be redefined in a subclass to disable smalltalk-specific menu items
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
     (expecco uses workspaces as scratchpads)"
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    ^ BlockValue
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
        with:[:syntax | syntax value == SmalltalkLanguage instance ]                
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
        argument: self syntaxHolder
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
    "Created: / 20-06-2019 / 22:08:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
    "Modified: / 23-06-2019 / 12:09:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
! !
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
!VDBScatchPadApplication methodsFor:'menu-actions'!
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
loadFile:file encoding: encodingSymbolOrNil into:textView
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    "Load contents of `file` into `textView`"
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    | mimetype |
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    super loadFile:file encoding: encodingSymbolOrNil into:textView.
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    mimetype := MIMETypes mimeTypeForFilename: file.
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    mimetype = 'application/x-smalltalk-source' ifTrue:[ 
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
        textView editedLanguage: SmalltalkLanguage instance.
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
        textView codeAspect: SyntaxHighlighter codeAspectStatements.
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
        self syntax: SmalltalkLanguage instance.
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
    ] ifFalse:[ 
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
        textView editedLanguage: nil.
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
        textView codeAspect: nil.
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
        self syntax: nil.
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
    ].
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    "Created: / 21-06-2019 / 10:46:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    "Modified: / 21-06-2019 / 12:15:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
! !
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
!VDBScatchPadApplication class methodsFor:'documentation'!
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
version_HG
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    ^ '$Changeset: <not expanded> $'
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
! !
a304c250e889 UI: add "Scratch Pad" tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82