SmallSense__CodeNavigationService.st
author Claus Gittinger <cg@exept.de>
Fri, 27 Mar 2015 12:34:51 +0100
branchcvs_MAIN
changeset 443 3511d16582e6
parent 431 ffdc590b700b
child 902 62656d4aaafc
permissions -rw-r--r--
class: SmallSense::CriticsWindow comment/format in: #disableLintRule
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
427
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
     1
"{ Encoding: utf8 }"
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
     2
252
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     3
"
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     4
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
     5
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
     6
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     7
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
     8
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
     9
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
    10
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
    11
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    12
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
    13
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
    14
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
    15
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
    16
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    17
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
    18
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
    19
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
    20
"
249
8bc64027b189 Package renamed to stx:goodies/smallsense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
    21
"{ 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
    22
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
"{ NameSpace: SmallSense }"
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
Tools::CodeNavigationService subclass:#CodeNavigationService
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	instanceVariableNames:'currentNodeHolder'
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	classVariableNames:''
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
	poolDictionaries:''
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
	category:'SmallSense-Core-Services'
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
!
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
102
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
    32
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
    33
	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
    34
	classVariableNames:''
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
    35
	poolDictionaries:''
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
    36
	privateIn:CodeNavigationService
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
    37
!
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
    38
252
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    39
!CodeNavigationService class methodsFor:'documentation'!
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
copyright
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    42
"
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    43
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
    44
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
    45
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    46
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
    47
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
    48
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
    49
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
    50
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    51
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
    52
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
    53
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
    54
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
    55
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    56
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
    57
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
    58
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
    59
"
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    60
! !
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    61
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
!CodeNavigationService class methodsFor:'accessing'!
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
label
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    "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
    66
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    ^'SmallSense - Code Navigation'
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    "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
    70
    "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
    71
! !
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    73
!CodeNavigationService methodsFor:'accessing'!
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    74
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    75
browser
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    76
    ^ codeView browser.
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
    "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
    79
!
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    80
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
    81
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
    82
    ^ 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
    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
    "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
    85
!
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
    86
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    87
environment
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    88
    | browser |
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    89
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    90
    browser := self browser.
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    91
    ^ 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
    92
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    93
    "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
    94
! !
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
    95
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
!CodeNavigationService methodsFor:'event handling'!
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
button1Press
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
    | node |
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
100
6d2fb43e661b Initial support for complete-as-you-type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 99
diff changeset
   101
    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
   102
    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
   103
        | navigator |
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   104
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   105
        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
   106
                        service: self;
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   107
                        button: 1.
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   108
        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
   109
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
    ].
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
    ^self.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
    "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
   115
    "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
   116
    "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
   117
!
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
button1PressForMessageNode: node
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
    ^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
   122
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
    "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
   124
!
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
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
   127
    | name value |
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
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
    value := nil.
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
    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
   131
        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
   132
        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
   133
            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
   134
        ].
99
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
        value notNil ifTrue:[
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
            value isBehavior ifTrue:[
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
                self browseClass: value.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
            ] ifFalse:[
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
                value inspect.
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
    ]
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
    "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
   145
    "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
   146
!
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
button2Press
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
    | sel |
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
    sel := codeView syntaxElementSelection.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
    (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
   153
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
    "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
   155
    "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
   156
! !
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
!CodeNavigationService methodsFor:'initialization'!
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
initialize
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
    "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
   162
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
    "/ 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
   164
    "/ 
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
    super initialize.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
    currentNodeHolder := ValueHolder new.
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
    "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
   170
! !
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
!CodeNavigationService methodsFor:'private'!
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
highlightElement:element
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
    super highlightElement:element.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
    element notNil ifTrue:[
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
        currentNodeHolder value: element node.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
    ] ifFalse:[
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
        currentNodeHolder value: nil.
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
    ].
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
    "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
   183
!
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   184
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   185
showMenu: menu
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   186
    menuShown := menu.
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   187
    menuShown notNil ifTrue:[
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   188
        menuShown showAtPointer
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   189
    ].
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   190
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   191
    "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
   192
! !
6943778c2db7 SyntaxHighlightingService renamed to CodeHighlightingService to match those in tools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
102
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   194
!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
   195
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   196
browser
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   197
    ^ service browser
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
    "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
   200
!
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   201
102
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   202
button
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   203
    ^ button
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   204
!
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   205
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   206
button:something
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   207
    button := something.
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   208
!
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   209
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   210
environment
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   211
    ^ service environment
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
    "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
   214
!
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   215
102
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   216
service
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   217
    ^ service
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   218
!
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   219
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   220
service:something
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   221
    service := something.
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   222
! !
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
!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
   225
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   226
navigateTo: node
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   227
    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
   228
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   229
    "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
   230
! !
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   231
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   232
!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
   233
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   234
navigateToMessageSend: node
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   235
    | 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
   236
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   237
    binding := node binding .
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   238
    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
   239
    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
   240
    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
   241
431
ffdc590b700b class: SmallSense::CodeNavigationService::Navigator
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   242
    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
   243
                browser: self browser;
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   244
                environment: self environment;
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   245
                yourself.
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   246
    button == 1 ifTrue:[
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   247
         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
   248
         ^ self.
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   249
    ].
431
ffdc590b700b class: SmallSense::CodeNavigationService::Navigator
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   250
    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
   251
         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
   252
         ^ self.
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   253
    ].
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   254
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   255
    "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
   256
    "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
   257
!
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   258
102
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   259
navigateToTypeReference: node
427
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   260
    | classType className classes javaClass|
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   261
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   262
    (javaClass := Smalltalk at:#JavaClass) isNil ifTrue:[
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   263
        Transcript showCR:'libjava not loaded'.
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   264
        service codeView textView flash.
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   265
        ^ self.
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   266
    ].
166
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   267
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   268
    classType := node resolvedType.
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   269
    classType notNil ifTrue:[
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   270
        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
   271
    ] 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
   272
        | unit typeName |
106
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   273
166
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   274
        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
   275
        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
   276
        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
   277
            "/ 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
   278
            unit imports do:[:import | 
427
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   279
                | 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
   280
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
                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
   282
                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
   283
                    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
   284
                ].
166
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   285
            ].
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
   286
        ] 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
   287
            className := typeName asStringWith: $/.
166
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   288
        ].
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   289
        "/ 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
   290
        className isNil ifTrue:[ 
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   291
            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
   292
        ].
c7e0cc97c3f9 Small fix in code navigation for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   293
    ].
130
1274cc0394cb SmallSense::CodeNavigationService - fix for new Java class naming scheme
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   294
    "/ Kludge - support both old and new Java class naming scheme
427
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   295
    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
   296
                    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
   297
                    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
   298
106
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   299
    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
   300
        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
   301
        ^ self.
106
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   302
    ].
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   303
    classes size == 1 ifTrue:[
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   304
        service browseClass: classes anElement.    
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   305
        ^ self.
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   306
    ].
1ab781eac004 Even more support for Java
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   307
    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
   308
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   309
    "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
   310
    "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
   311
! !
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
!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
   314
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   315
navigateToMessageNode: node
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   316
    "/ Implementors
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   317
    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
   318
        "/ 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
   319
        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
   320
        ^ self
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   321
    ].
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   322
    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
   323
        "/ 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
   324
        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
   325
        ^ self                                                  
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   326
    ].
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
    "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
   329
!
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   330
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   331
navigateToVariableNode: node
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   332
    "/ 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
   333
    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
   334
        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
   335
    ]
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
    "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
   338
! !
538fc4ef040c CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 100
diff changeset
   339
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   340
!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
   341
427
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   342
version
431
ffdc590b700b class: SmallSense::CodeNavigationService::Navigator
Claus Gittinger <cg@exept.de>
parents: 427
diff changeset
   343
    ^ '$Header: /cvs/stx/stx/goodies/smallsense/SmallSense__CodeNavigationService.st,v 1.3 2015-03-23 16:59:07 cg Exp $'
427
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   344
!
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   345
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   346
version_CVS
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   347
    ^ '$Path: stx/goodies/smallsense/SmallSense__CodeNavigationService.st, Version: 1.0, User: cg, Time: 2015-03-23T17:29:41.758+01$'
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   348
!
bda69617ef37 initial checkin
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   349
105
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   350
version_HG
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
    ^ '$Changeset: <not expanded> $'
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   353
! !
d925e1672ac7 Initial support for senders/implementors menu for Java invocations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   354