feat: <scala> add class name support

上级 1582c7a9
......@@ -19,6 +19,17 @@ class ScalaFullIdentListener(var fileName: String) : ScalaAstBaseListener() {
codeContainer.DataStructures += codeDataStruct
}
override fun enterClassDef(ctx: ScalaParser.ClassDefContext?) {
val className = ctx!!.Id().text
val codeDataStruct = CodeDataStruct(
Type = DataStructType.CLASS,
NodeName = className,
FilePath = codeContainer.FullName
)
codeContainer.DataStructures += codeDataStruct
}
fun getNodeInfo(): CodeContainer {
return this.codeContainer
}
......
......@@ -25,4 +25,18 @@ object HelloWorld {
assertEquals(container.DataStructures[0].NodeName, "HelloWorld")
assertEquals(container.DataStructures[0].Type, DataStructType.OBJECT)
}
@Test
internal fun shouldAnalysisClassName() {
val code = """
class Outer(i : Int) {
def foo(x : Inner.type) = x.getI
}
"""
val container = ScalaAnalyser().analysis(code, "hello.scala")
assertEquals(container.DataStructures.size, 1)
assertEquals(container.DataStructures[0].NodeName, "Outer")
assertEquals(container.DataStructures[0].Type, DataStructType.CLASS)
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册