Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
Coca
提交
82b65e70
C
Coca
项目概览
Phodal
/
Coca
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Coca
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
82b65e70
编写于
10月 29, 2019
作者:
P
Phodal HUANG
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: fix auto remove issue
上级
039b357c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
102 deletion
+14
-102
refactor/base/JavaRefactorListener.go
refactor/base/JavaRefactorListener.go
+14
-102
未找到文件。
refactor/base/JavaRefactorListener.go
浏览文件 @
82b65e70
...
...
@@ -3,8 +3,6 @@ package base
import
(
.
"../../language/java"
.
"./models"
"github.com/antlr/antlr4/runtime/Go/antlr"
"strings"
)
var
node
*
JFullIdentifier
;
...
...
@@ -36,28 +34,10 @@ func (s *JavaRefactorListener) EnterImportDeclaration(ctx *ImportDeclarationCont
func
(
s
*
JavaRefactorListener
)
EnterClassDeclaration
(
ctx
*
ClassDeclarationContext
)
{
node
.
Type
=
"Class"
node
.
Name
=
ctx
.
IDENTIFIER
()
.
GetText
()
if
ctx
.
IMPLEMENTS
()
!=
nil
{
context
:=
ctx
.
TypeList
()
startLine
:=
ctx
.
TypeList
()
.
GetStart
()
.
GetLine
()
stopLine
:=
ctx
.
TypeList
()
.
GetStart
()
.
GetLine
()
split
:=
strings
.
Split
(
context
.
GetText
(),
","
)
for
_
,
imp
:=
range
split
{
field
:=
&
JField
{
imp
,
node
.
Pkg
,
startLine
,
stopLine
}
node
.
AddField
(
*
field
)
}
}
if
ctx
.
EXTENDS
()
!=
nil
{
startLine
:=
ctx
.
TypeType
()
.
GetStart
()
.
GetLine
()
stopLine
:=
ctx
.
TypeType
()
.
GetStart
()
.
GetLine
()
field
:=
&
JField
{
ctx
.
TypeType
()
.
GetText
(),
node
.
Pkg
,
startLine
,
stopLine
}
node
.
AddField
(
*
field
)
}
}
func
(
s
*
JavaRefactorListener
)
EnterInterfaceMethodDeclaration
(
ctx
*
InterfaceMethodDeclarationContext
)
{
//fmt.Println(ctx.TypeTypeOrVoid())
startLine
:=
ctx
.
GetStart
()
.
GetLine
()
startLinePosition
:=
ctx
.
GetStart
()
.
GetTokenSource
()
.
GetCharPositionInLine
()
stopLine
:=
ctx
.
GetStop
()
.
GetLine
()
...
...
@@ -68,96 +48,28 @@ func (s *JavaRefactorListener) EnterInterfaceMethodDeclaration(ctx *InterfaceMet
node
.
AddMethod
(
*
method
)
}
func
(
s
*
JavaRefactorListener
)
EnterMethodDeclaration
(
ctx
*
MethodDeclarationContext
)
{
startLine
:=
ctx
.
GetStart
()
.
GetLine
()
startLinePosition
:=
ctx
.
GetStart
()
.
GetTokenSource
()
.
GetCharPositionInLine
()
stopLine
:=
ctx
.
GetStop
()
.
GetLine
()
stopLinePosition
:=
ctx
.
GetStop
()
.
GetTokenSource
()
.
GetCharPositionInLine
()
name
:=
ctx
.
IDENTIFIER
()
.
GetText
()
//XXX: find the start position of {, not public
method
:=
&
JFullMethod
{
name
,
startLine
,
startLinePosition
,
stopLine
,
stopLinePosition
}
node
.
AddMethod
(
*
method
)
}
func
(
s
*
JavaRefactorListener
)
EnterFieldDeclaration
(
ctx
*
FieldDeclarationContext
)
{
declarators
:=
ctx
.
VariableDeclarators
()
variableName
:=
declarators
.
GetParent
()
.
GetChild
(
0
)
.
(
antlr
.
ParseTree
)
.
GetText
()
startLine
:=
ctx
.
GetStart
()
.
GetLine
()
stopLine
:=
ctx
.
GetStop
()
.
GetLine
()
text
:=
ctx
.
TypeType
()
.
GetText
()
if
variableName
!=
""
&&
text
!=
""
{
field
:=
&
JField
{
variableName
,
node
.
Pkg
,
startLine
,
stopLine
}
node
.
AddField
(
*
field
)
}
}
func
(
s
*
JavaRefactorListener
)
EnterAnnotation
(
ctx
*
AnnotationContext
)
{
annotation
:=
ctx
.
QualifiedName
()
.
GetText
()
startLine
:=
ctx
.
GetStart
()
.
GetLine
()
stopLine
:=
ctx
.
GetStop
()
.
GetLine
()
field
:=
&
JField
{
annotation
,
node
.
Pkg
,
startLine
,
stopLine
}
node
.
AddField
(
*
field
)
}
func
(
s
*
JavaRefactorListener
)
EnterTypeDeclaration
(
ctx
*
TypeDeclarationContext
)
{
startLine
:=
ctx
.
GetStart
()
.
GetLine
()
stopLine
:=
ctx
.
GetStop
()
.
GetLine
()
field
:=
&
JField
{
""
,
node
.
Pkg
,
startLine
,
stopLine
}
if
ctx
.
InterfaceDeclaration
()
!=
nil
{
field
.
Name
=
ctx
.
InterfaceDeclaration
()
.
GetText
()
node
.
AddField
(
*
field
)
}
if
ctx
.
EnumDeclaration
()
!=
nil
{
field
.
Name
=
ctx
.
EnumDeclaration
()
.
GetText
()
node
.
AddField
(
*
field
)
}
if
ctx
.
AnnotationTypeDeclaration
()
!=
nil
{
field
.
Name
=
ctx
.
AnnotationTypeDeclaration
()
.
GetText
()
node
.
AddField
(
*
field
)
}
}
func
(
s
*
JavaRefactorListener
)
EnterLocalTypeDeclaration
(
ctx
*
LocalTypeDeclarationContext
)
{
startLine
:=
ctx
.
GetStart
()
.
GetLine
()
stopLine
:=
ctx
.
GetStop
()
.
GetLine
()
field
:=
&
JField
{
""
,
node
.
Pkg
,
startLine
,
stopLine
}
if
ctx
.
ClassDeclaration
()
!=
nil
{
field
.
Name
=
ctx
.
ClassDeclaration
()
.
GetText
()
}
if
ctx
.
InterfaceDeclaration
()
!=
nil
{
field
.
Name
=
ctx
.
InterfaceDeclaration
()
.
GetText
()
}
node
.
AddField
(
*
field
)
}
func
(
s
*
JavaRefactorListener
)
EnterInterfaceDeclaration
(
ctx
*
InterfaceDeclarationContext
)
{
node
.
Type
=
"Interface"
node
.
Name
=
ctx
.
IDENTIFIER
()
.
GetText
()
}
func
(
s
*
JavaRefactorListener
)
EnterTypeType
(
ctx
*
TypeTypeContext
)
{
startLine
:=
ctx
.
GetStart
()
.
GetLine
()
stopLine
:=
ctx
.
GetStop
()
.
GetLine
()
field
:=
&
JField
{
node
.
Name
,
node
.
Pkg
,
startLine
,
stopLine
}
field
:=
&
JField
{
ctx
.
GetText
()
,
node
.
Pkg
,
startLine
,
stopLine
}
node
.
AddField
(
*
field
)
}
if
ctx
.
TypeList
()
!=
nil
{
context
:=
ctx
.
TypeList
()
startLine
:=
ctx
.
TypeList
()
.
GetStart
()
.
GetLine
()
stopLine
:=
ctx
.
TypeList
()
.
GetStart
()
.
GetLine
()
func
(
s
*
JavaRefactorListener
)
EnterClassOrInterfaceType
(
ctx
*
ClassOrInterfaceTypeContext
)
{
identifiers
:=
ctx
.
AllIDENTIFIER
()
for
index
,
_
:=
range
identifiers
{
context
:=
ctx
.
IDENTIFIER
(
index
)
name
:=
context
.
GetText
()
startLine
:=
ctx
.
GetStart
()
.
GetLine
()
stopLine
:=
ctx
.
GetStop
()
.
GetLine
()
split
:=
strings
.
Split
(
context
.
GetText
(),
","
)
for
_
,
imp
:=
range
split
{
field
:=
&
JField
{
imp
,
node
.
Pkg
,
startLine
,
stopLine
}
node
.
AddField
(
*
field
)
}
field
:=
&
JField
{
name
,
node
.
Pkg
,
startLine
,
stopLine
}
node
.
AddField
(
*
field
)
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录