SmallSense__CodeNavigationService.st
author Stefan Vogel <sv@exept.de>
Mon, 04 Mar 2019 13:09:59 +0100
branchcvs_MAIN
changeset 1085 a22655fd60b5
parent 902 62656d4aaafc
permissions -rw-r--r--
#REFACTORING by stefan class: SmallSense::AbstractJavaCompletionEngineSimple changed: #guessTypeOfExpressionBefore:in: fixed shadowed var
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
252
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     1
"
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     2
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     3
Copyright (C) 2013-2014 Jan Vrany
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     4
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     5
This library is free software; you can redistribute it and/or
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     6
modify it under the terms of the GNU Lesser General Public
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     7
License as published by the Free Software Foundation; either
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     8
version 2.1 of the License. 
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     9
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    10
This library is distributed in the hope that it will be useful,
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    11
but WITHOUT ANY WARRANTY; without even the implied warranty of
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    13
Lesser General Public License for more details.
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    14
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    15
You should have received a copy of the GNU Lesser General Public
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    16
License along with this library; if not, write to the Free Software
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    17
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    18
"
249
8bc64027b189 Package renamed to stx:goodies/smallsense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
    19
"{ Package: 'stx:goodies/smallsense' }"
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
"{ NameSpace: SmallSense }"
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
Tools::CodeNavigationService subclass:#CodeNavigationService
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
	instanceVariableNames:'currentNodeHolder'
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
	classVariableNames:''
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	poolDictionaries:''
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	category:'SmallSense-Core-Services'
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
!
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
102
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
    30
Object subclass:#Navigator
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
    31
	instanceVariableNames:'service button'
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
    32
	classVariableNames:''
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
    33
	poolDictionaries:''
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
    34
	privateIn:CodeNavigationService
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
    35
!
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
    36
252
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    37
!CodeNavigationService class methodsFor:'documentation'!
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    38
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    39
copyright
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    40
"
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    41
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    42
Copyright (C) 2013-2014 Jan Vrany
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    43
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    44
This library is free software; you can redistribute it and/or
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    45
modify it under the terms of the GNU Lesser General Public
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    46
License as published by the Free Software Foundation; either
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    47
version 2.1 of the License. 
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    48
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    49
This library is distributed in the hope that it will be useful,
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    50
but WITHOUT ANY WARRANTY; without even the implied warranty of
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    51
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    52
Lesser General Public License for more details.
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    53
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    54
You should have received a copy of the GNU Lesser General Public
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    55
License along with this library; if not, write to the Free Software
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    56
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    57
"
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    58
! !
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    59
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
!CodeNavigationService class methodsFor:'accessing'!
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
label
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
    "Answers a short label - for UI"
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    ^'SmallSense - Code Navigation'
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    "Created: / 27-07-2013 / 22:46:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    "Modified: / 23-09-2013 / 10:27:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
! !
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    71
!CodeNavigationService methodsFor:'accessing'!
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    72
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    73
browser
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    74
    ^ codeView browser.
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    75
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    76
    "Created: / 24-09-2013 / 23:38:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    77
!
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    78
148
b06bb9f85971 Fixes for Java - flash code view when CTRL-click on type name which could not be resolved.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
    79
codeView
b06bb9f85971 Fixes for Java - flash code view when CTRL-click on type name which could not be resolved.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
    80
    ^ codeView
b06bb9f85971 Fixes for Java - flash code view when CTRL-click on type name which could not be resolved.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
    81
b06bb9f85971 Fixes for Java - flash code view when CTRL-click on type name which could not be resolved.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
    82
    "Created: / 26-11-2013 / 22:58:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b06bb9f85971 Fixes for Java - flash code view when CTRL-click on type name which could not be resolved.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
    83
!
b06bb9f85971 Fixes for Java - flash code view when CTRL-click on type name which could not be resolved.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
    84
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    85
environment
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    86
    | browser |
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    87
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    88
    browser := self browser.
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    89
    ^ browser notNil ifTrue:[browser environment] ifFalse:[Smalltalk]
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    90
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    91
    "Created: / 24-09-2013 / 23:38:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    92
! !
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    93
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
!CodeNavigationService methodsFor:'event handling'!
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
button1Press
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
    | node |
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
100
6d2fb43e661b Initial support for complete-as-you-type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 99
diff changeset
    99
    node := currentNodeHolder value.
102
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   100
    node notNil ifTrue:[
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   101
        | navigator |
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   102
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   103
        navigator := Navigator new
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   104
                        service: self;
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   105
                        button: 1.
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   106
        navigator navigateTo: node.
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   107
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
    ].
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
    ^self.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
    "Created: / 14-02-2010 / 18:43:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
    "Modified: / 18-11-2011 / 14:58:02 / cg"
102
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   114
    "Modified: / 24-09-2013 / 10:02:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
!
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
button1PressForMessageNode: node
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
    ^self button1PressForSelector: node parent selector.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
    "Created: / 21-02-2012 / 14:30:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
!
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
button1PressForVariableNode: node
149
751b7d697444 Fix in SmallSense::CodeNavigationService>>#button1PressForVariableNode: make sure symbol is passed to Smalltalk>>at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   125
    | name value |
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
149
751b7d697444 Fix in SmallSense::CodeNavigationService>>#button1PressForVariableNode: make sure symbol is passed to Smalltalk>>at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   127
    value := nil.
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
    node isGlobalVariable ifTrue:[
149
751b7d697444 Fix in SmallSense::CodeNavigationService>>#button1PressForVariableNode: make sure symbol is passed to Smalltalk>>at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   129
        name := node name asSymbolIfInterned.
751b7d697444 Fix in SmallSense::CodeNavigationService>>#button1PressForVariableNode: make sure symbol is passed to Smalltalk>>at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   130
        name notNil ifTrue:[
751b7d697444 Fix in SmallSense::CodeNavigationService>>#button1PressForVariableNode: make sure symbol is passed to Smalltalk>>at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   131
            value := Smalltalk at: node name asSymbol.
751b7d697444 Fix in SmallSense::CodeNavigationService>>#button1PressForVariableNode: make sure symbol is passed to Smalltalk>>at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   132
        ].
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
        value notNil ifTrue:[
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
            value isBehavior ifTrue:[
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
                self browseClass: value.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
            ] ifFalse:[
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
                value inspect.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
            ]
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
        ]
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
    ]
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
    "Created: / 21-02-2012 / 14:30:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
149
751b7d697444 Fix in SmallSense::CodeNavigationService>>#button1PressForVariableNode: make sure symbol is passed to Smalltalk>>at:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   143
    "Modified: / 06-12-2013 / 15:41:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
!
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
button2Press
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
    | sel |
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
    sel := codeView syntaxElementSelection.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
    (sel notNil and:[sel node isMessage]) ifTrue:[^self button2PressForSelector: sel node selector].
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
    "Created: / 14-02-2010 / 18:43:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
    "Modified: / 08-03-2012 / 16:49:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
! !
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
!CodeNavigationService methodsFor:'initialization'!
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
initialize
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
    "Invoked when a new instance is created."
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
    "/ please change as required (and remove this comment)
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
    "/ 
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
    super initialize.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
    currentNodeHolder := ValueHolder new.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
    "Modified: / 23-09-2013 / 03:51:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
! !
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
!CodeNavigationService methodsFor:'private'!
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
highlightElement:element
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
    super highlightElement:element.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
    element notNil ifTrue:[
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
        currentNodeHolder value: element node.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
    ] ifFalse:[
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
        currentNodeHolder value: nil.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
    ].
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
    "Created: / 23-09-2013 / 03:52:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   181
!
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   182
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   183
showMenu: menu
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   184
    menuShown := menu.
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   185
    menuShown notNil ifTrue:[
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   186
        menuShown showAtPointer
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   187
    ].
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   188
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   189
    "Created: / 24-09-2013 / 23:43:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
! !
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
102
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   192
!CodeNavigationService::Navigator methodsFor:'accessing'!
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   193
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   194
browser
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   195
    ^ service browser
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   196
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   197
    "Created: / 24-09-2013 / 23:37:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   198
!
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   199
102
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   200
button
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   201
    ^ button
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   202
!
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   203
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   204
button:something
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   205
    button := something.
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   206
!
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   207
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   208
environment
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   209
    ^ service environment
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   210
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   211
    "Created: / 24-09-2013 / 23:37:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   212
!
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   213
102
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   214
service
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   215
    ^ service
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   216
!
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   217
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   218
service:something
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   219
    service := something.
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   220
! !
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   221
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   222
!CodeNavigationService::Navigator methodsFor:'navigation'!
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   223
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   224
navigateTo: node
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   225
    node navigateToUsing: self
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   226
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   227
    "Created: / 24-09-2013 / 10:03:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   228
! !
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   229
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   230
!CodeNavigationService::Navigator methodsFor:'navigation - Java'!
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   231
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   232
navigateToMessageSend: node
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   233
    | binding className selector toolbox |
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   234
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   235
    binding := node binding .
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   236
    binding isNil ifTrue:[ ^ nil ].
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   237
    className := binding declaringClass compoundName asStringWith: $/.
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   238
    selector := binding selector , binding signature.
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   239
431
ffdc590b700b class: SmallSense::CodeNavigationService::Navigator
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   240
    toolbox := (Smalltalk at:#JavaToolbox) new
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   241
                browser: self browser;
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   242
                environment: self environment;
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   243
                yourself.
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   244
    button == 1 ifTrue:[
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   245
         service showMenu: (toolbox implementorMenuFor: selector inClassNamed: className).
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   246
         ^ self.
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   247
    ].
431
ffdc590b700b class: SmallSense::CodeNavigationService::Navigator
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   248
    button == 2 ifTrue:[
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   249
         service showMenu: (toolbox sendersMenuFor: selector inClassNamed: className).
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   250
         ^ self.
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   251
    ].
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   252
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   253
    "Created: / 24-09-2013 / 23:10:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   254
    "Modified: / 25-09-2013 / 10:01:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   255
!
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   256
102
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   257
navigateToTypeReference: node
427
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   258
    | classType className classes javaClass|
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   259
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   260
    (javaClass := Smalltalk at:#JavaClass) isNil ifTrue:[
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   261
        Transcript showCR:'libjava not loaded'.
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   262
        service codeView textView flash.
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   263
        ^ self.
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   264
    ].
166
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   265
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   266
    classType := node resolvedType.
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   267
    classType notNil ifTrue:[
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   268
        className := node resolvedType leafComponentType compoundName asStringWith: $/.
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   269
    ] ifFalse:[ 
265
e3a961d1825a Fix in code navigation for Java: correctly handle fully qualified name references in the code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 252
diff changeset
   270
        | unit typeName |
106
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   271
166
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   272
        unit := service codeView syntaxElements tree.
265
e3a961d1825a Fix in code navigation for Java: correctly handle fully qualified name references in the code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 252
diff changeset
   273
        typeName := node getTypeName. "/ returns char[][]
e3a961d1825a Fix in code navigation for Java: correctly handle fully qualified name references in the code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 252
diff changeset
   274
        typeName size == 1 ifTrue:[
e3a961d1825a Fix in code navigation for Java: correctly handle fully qualified name references in the code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 252
diff changeset
   275
            "/ Search imports...
e3a961d1825a Fix in code navigation for Java: correctly handle fully qualified name references in the code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 252
diff changeset
   276
            unit imports do:[:import | 
427
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   277
                | importedName |
265
e3a961d1825a Fix in code navigation for Java: correctly handle fully qualified name references in the code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 252
diff changeset
   278
e3a961d1825a Fix in code navigation for Java: correctly handle fully qualified name references in the code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 252
diff changeset
   279
                importedName := import getImportName. "/ returns char[][].                                
e3a961d1825a Fix in code navigation for Java: correctly handle fully qualified name references in the code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 252
diff changeset
   280
                importedName last = typeName last ifTrue:[ 
e3a961d1825a Fix in code navigation for Java: correctly handle fully qualified name references in the code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 252
diff changeset
   281
                    className := import tokens asStringWith:$/.
e3a961d1825a Fix in code navigation for Java: correctly handle fully qualified name references in the code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 252
diff changeset
   282
                ].
166
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   283
            ].
265
e3a961d1825a Fix in code navigation for Java: correctly handle fully qualified name references in the code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 252
diff changeset
   284
        ] ifFalse:[ 
e3a961d1825a Fix in code navigation for Java: correctly handle fully qualified name references in the code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 252
diff changeset
   285
            className := typeName asStringWith: $/.
166
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   286
        ].
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   287
        "/ If not imported, Try compilation unit's package...
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   288
        className isNil ifTrue:[ 
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   289
            className := (unit currentPackage tokens asStringWith: $/) , '/' , node token.
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   290
        ].
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   291
    ].
130
1274cc0394cb SmallSense::CodeNavigationService - fix for new Java class naming scheme
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   292
    "/ Kludge - support both old and new Java class naming scheme
427
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   293
    classes := (javaClass canUnderstand: #binaryName) 
130
1274cc0394cb SmallSense::CodeNavigationService - fix for new Java class naming scheme
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   294
                    ifTrue:[self environment allClasses select:[:cls | cls isJavaClass and:[cls binaryName = className]]]
1274cc0394cb SmallSense::CodeNavigationService - fix for new Java class naming scheme
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   295
                    ifFalse:[self environment allClasses select:[:cls | cls isJavaClass and:[cls name = className]]].
1274cc0394cb SmallSense::CodeNavigationService - fix for new Java class naming scheme
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   296
106
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   297
    classes isEmpty ifTrue:[
148
b06bb9f85971 Fixes for Java - flash code view when CTRL-click on type name which could not be resolved.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   298
        service codeView textView flash.
b06bb9f85971 Fixes for Java - flash code view when CTRL-click on type name which could not be resolved.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   299
        ^ self.
106
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   300
    ].
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   301
    classes size == 1 ifTrue:[
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   302
        service browseClass: classes anElement.    
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   303
        ^ self.
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   304
    ].
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   305
    self halt: 'Not yet supported'.
102
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   306
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   307
    "Created: / 24-09-2013 / 10:16:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
265
e3a961d1825a Fix in code navigation for Java: correctly handle fully qualified name references in the code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 252
diff changeset
   308
    "Modified: / 06-08-2014 / 15:17:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
102
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   309
! !
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   310
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   311
!CodeNavigationService::Navigator methodsFor:'navigation - Smalltalk'!
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   312
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   313
navigateToMessageNode: node
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   314
    "/ Implementors
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   315
    button == 1 ifTrue:[
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   316
        "/ Use legacy code...
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   317
        service button1PressForSelector: node selector.         
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   318
        ^ self
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   319
    ].
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   320
    button == 2 ifTrue:[
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   321
        "/ Use legacy code...
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   322
        service button2PressForSelector: node selector.         
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   323
        ^ self                                                  
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   324
    ].
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   325
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   326
    "Created: / 24-09-2013 / 10:06:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   327
!
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   328
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   329
navigateToVariableNode: node
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   330
    "/ Use legacy code for now...
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   331
    button == 1 ifTrue:[
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   332
        service button1PressForVariableNode: node .         
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   333
    ]
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   334
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   335
    "Created: / 24-09-2013 / 10:06:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   336
! !
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   337
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   338
!CodeNavigationService class methodsFor:'documentation'!
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   339
427
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   340
version
902
62656d4aaafc Fix version_CVS
Stefan Vogel <sv@exept.de>
parents: 431
diff changeset
   341
    ^ '$Header$'
427
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   342
!
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   343
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   344
version_CVS
902
62656d4aaafc Fix version_CVS
Stefan Vogel <sv@exept.de>
parents: 431
diff changeset
   345
    ^ '$Header$'
427
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   346
!
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   347
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   348
version_HG
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   349
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   350
    ^ '$Changeset: <not expanded> $'
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   351
! !
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   352