author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Tue, 24 Sep 2013 23:02:47 +0100 | |
changeset 104 | 3b05b2d777dd |
parent 101 | a300290bf8fc |
child 107 | abe4dc4fe5ca |
permissions | -rw-r--r-- |
32
658f47bc231e
Code moved to package jv:smallsense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
29
diff
changeset
|
1 |
"{ Package: 'jv:smallsense' }" |
0
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
|
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
3 |
"{ NameSpace: SmallSense }" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
4 |
|
101
a300290bf8fc
Classes renamed to better express theit purpose.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
98
diff
changeset
|
5 |
SmalltalkParseNodeVisitor subclass:#SmalltalkParseNodeFinder |
0
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
instanceVariableNames:'position match previous' |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
classVariableNames:'' |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
poolDictionaries:'' |
101
a300290bf8fc
Classes renamed to better express theit purpose.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
98
diff
changeset
|
9 |
category:'SmallSense-Smalltalk' |
0
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
! |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
|
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
|
101
a300290bf8fc
Classes renamed to better express theit purpose.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
98
diff
changeset
|
13 |
!SmalltalkParseNodeFinder methodsFor:'finding'! |
0
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
|
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
findNodeIn: source tree: tree line: line column: col |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
16 |
|
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
17 |
| sourceS | |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
18 |
sourceS := source readStream. |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
19 |
line - 1 timesRepeat:[ |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
20 |
(sourceS nextLine) isNil ifTrue:[ |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
"No such line" |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
22 |
^nil |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
]. |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
]. |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
^self findNodeIn: source tree: tree position: sourceS position + col |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
|
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
"Created: / 26-11-2011 / 15:33:33 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
! |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
|
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
30 |
findNodeIn: source tree: tree position: pos |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
31 |
|
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
32 |
position := pos - 1. |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
33 |
self visit: tree. |
104
3b05b2d777dd
Some more support for complete-as-you-type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
34 |
^ParseNodePosition node: match ? previous position: pos. |
0
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
35 |
|
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
36 |
"Created: / 26-11-2011 / 15:37:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
104
3b05b2d777dd
Some more support for complete-as-you-type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
37 |
"Modified: / 24-09-2013 / 22:29:30 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
0
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
38 |
! ! |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
39 |
|
101
a300290bf8fc
Classes renamed to better express theit purpose.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
98
diff
changeset
|
40 |
!SmalltalkParseNodeFinder methodsFor:'visiting'! |
0
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
41 |
|
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
42 |
visit:anObject |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
43 |
|
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
44 |
anObject isNil ifTrue:[^self]. |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
45 |
|
98
c21c3e61a377
Fixes for ParseNodeInspector. Display nodes with no source position info in red.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
64
diff
changeset
|
46 |
(anObject endPosition notNil and:[position > anObject endPosition]) ifTrue:[ |
0
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
47 |
previous := anObject. |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
48 |
anObject acceptVisitor: self. |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
49 |
^self. |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
50 |
]. |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
51 |
|
98
c21c3e61a377
Fixes for ParseNodeInspector. Display nodes with no source position info in red.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
64
diff
changeset
|
52 |
(anObject startPosition notNil |
c21c3e61a377
Fixes for ParseNodeInspector. Display nodes with no source position info in red.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
64
diff
changeset
|
53 |
and:[anObject endPosition notNil |
c21c3e61a377
Fixes for ParseNodeInspector. Display nodes with no source position info in red.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
64
diff
changeset
|
54 |
and:[position between: anObject startPosition and: anObject endPosition]]) ifTrue:[ |
0
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
match := anObject. |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
56 |
]. |
98
c21c3e61a377
Fixes for ParseNodeInspector. Display nodes with no source position info in red.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
64
diff
changeset
|
57 |
anObject acceptVisitor: self. |
0
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
58 |
|
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
59 |
"Created: / 26-11-2011 / 15:40:07 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
98
c21c3e61a377
Fixes for ParseNodeInspector. Display nodes with no source position info in red.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
64
diff
changeset
|
60 |
"Modified: / 19-09-2013 / 11:15:21 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
0
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
61 |
! |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
62 |
|
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
63 |
visitStatementNode:anObject |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
64 |
|
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
65 |
self visit: anObject expression. |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
66 |
self visit: anObject nextStatement. |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
67 |
|
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
68 |
"Modified: / 25-07-2011 / 22:34:44 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
69 |
"Created: / 26-11-2011 / 15:40:32 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
70 |
! ! |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
71 |
|
101
a300290bf8fc
Classes renamed to better express theit purpose.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
98
diff
changeset
|
72 |
!SmalltalkParseNodeFinder class methodsFor:'documentation'! |
0
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
73 |
|
29
fe650a6e5704
Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
74 |
version_HG |
fe650a6e5704
Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
75 |
|
fe650a6e5704
Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
76 |
^ '$Changeset: <not expanded> $' |
fe650a6e5704
Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
77 |
! |
fe650a6e5704
Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
78 |
|
0
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
version_SVN |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
80 |
^ '$Id: SmallSenseFinder.st 7823 2011-11-26 16:55:59Z vranyj1 $' |
893cc7b0ed1d
copied smallsense from old /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
81 |
! ! |
29
fe650a6e5704
Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
82 |