File tree Expand file tree Collapse file tree 1 file changed +11
-5
lines changed
marker/js-marker/src/main/kotlin/spp/jetbrains/marker/js/service Expand file tree Collapse file tree 1 file changed +11
-5
lines changed Original file line number Diff line number Diff line change @@ -98,24 +98,30 @@ class JavascriptArtifactNamingService : IArtifactNamingService {
98
98
}
99
99
100
100
private fun getStatementOrExpressionQualifiedName (element : PsiElement , type : ArtifactType ): ArtifactQualifiedName {
101
- val name = if (element is PsiNamedElement ) {
102
- element.name
101
+ // todo: each element needs a unique name but encoding the literal text and appending the offset is not unique enough
102
+ // - will need to get a unique hash from PSI or generate a unique name and store it in the PSI
103
+ var expressionString = if (element is PsiNamedElement ) {
104
+ element.name ? : " "
103
105
} else {
104
- Base64 .getEncoder().encodeToString(element.toString().toByteArray())
106
+ element.text ? : " "
107
+ }
108
+ element.textRange.startOffset.let {
109
+ expressionString = " $expressionString :$it "
105
110
}
111
+ expressionString = Base64 .getEncoder().encodeToString(expressionString.toByteArray())
106
112
107
113
val parentElement = element.findTopmostParentInFile {
108
114
it is JSClass || (it is JSFunction && it !is JSFunctionExpression )
109
115
}
110
116
return if (parentElement != null ) {
111
117
ArtifactQualifiedName (
112
- " ${getFullyQualifiedName(parentElement).identifier} #${name } " ,
118
+ " ${getFullyQualifiedName(parentElement).identifier} #${expressionString } " ,
113
119
type = type,
114
120
lineNumber = SourceMarkerUtils .getLineNumber(element)
115
121
)
116
122
} else {
117
123
ArtifactQualifiedName (
118
- " ${element.containingFile.virtualFile.path} #$name " ,
124
+ " ${element.containingFile.virtualFile.path} #$expressionString " ,
119
125
type = type,
120
126
lineNumber = SourceMarkerUtils .getLineNumber(element)
121
127
)
You can’t perform that action at this time.
0 commit comments