@@ -41,11 +41,32 @@ class SemanticdbConsumer extends TastyConsumer {
41
41
return stack.head + id + " /"
42
42
}
43
43
44
+ def iterateParent (symbol : Symbol ): String = {
45
+ if (symbol.name == " <none>" ) then {
46
+ // TODO had a "NoDenotation" test to avoid
47
+ // relying on the name itself
48
+ " "
49
+ } else {
50
+ val previous_symbol = iterateParent(symbol.owner)
51
+ val next_atom =
52
+ symbol match {
53
+ case IsPackageSymbol (symbol) => symbol.name + " /"
54
+ case IsClassSymbol (symbol) => symbol.name + " #"
55
+ case IsDefSymbol (symbol) => symbol.name + " ."
56
+ case IsValSymbol (symbol) => symbol.name + " ."
57
+ case owner => {
58
+ " "
59
+ }
60
+ }
61
+ previous_symbol + next_atom
62
+ }
63
+ }
64
+
44
65
override def traverseTree (tree : Tree )(implicit ctx : Context ): Unit = {
45
66
val previous_path = stack.head
46
67
47
68
tree match {
48
- case IsClassDef (body) =>
69
+ /* case IsClassDef(body) =>
49
70
val ClassDef(name, _, _, _, _) = body
50
71
//println("[classdef] ", body)
51
72
val path = stack.head + name + "#"
@@ -81,11 +102,12 @@ class SemanticdbConsumer extends TastyConsumer {
81
102
stack = stack.tail
82
103
case IsPackageDef(body) =>
83
104
println("[packagedef] ", body)
84
- super .traverseTree(body)
105
+ super.traverseTree(body)*/
85
106
case IsDefinition (body) =>
86
- println(" [definition] " , body)
107
+ // println("[definition] ", body)
108
+ println(iterateParent(tree.symbol))
87
109
super .traverseTree(body)
88
- case IsPackageClause (body) =>
110
+ /* case IsPackageClause(body) =>
89
111
//println(body.pos.start, body.pos.end)
90
112
val PackageClause(name, list_tree : List[Tree]) = body
91
113
//println(tree)
@@ -100,7 +122,7 @@ class SemanticdbConsumer extends TastyConsumer {
100
122
super.traverseTree(body)*/
101
123
// iterating this way will probably make us see terms we don't want
102
124
super.traverseTree(body)
103
- stack = stack.tail
125
+ stack = stack.tail*/
104
126
case tree =>
105
127
super .traverseTree(tree)
106
128
}
0 commit comments