Skip to content

Commit

Permalink
Refactor string reps
Browse files Browse the repository at this point in the history
  • Loading branch information
MituuZ committed Jul 28, 2024
1 parent 81ce93a commit cfdf437
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 53 deletions.
71 changes: 19 additions & 52 deletions src/main/kotlin/com/mituuz/fuzzier/FuzzierFS.kt
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ import com.intellij.openapi.vfs.VirtualFileManager
import com.intellij.openapi.vfs.findPsiFile
import com.intellij.psi.*
import com.intellij.psi.impl.source.PsiClassReferenceType
import com.mituuz.fuzzier.FuzzierFS.StructureType.*
import com.mituuz.fuzzier.components.FuzzyFinderComponent
import com.mituuz.fuzzier.entities.FuzzyMatchContainer
import com.mituuz.fuzzier.entities.FuzzyMatchContainer.FuzzyScore
Expand Down Expand Up @@ -132,52 +131,38 @@ class FuzzierFS : Fuzzier() {
private fun getOpenVisitor(listModel: DefaultListModel<FuzzyMatchContainer>): AbstractUastVisitor {
return object : AbstractUastVisitor() {
override fun visitClass(node: UClass): Boolean {
val offset = node.sourcePsi?.textRange?.startOffset?.toString() ?: ""
val name = node.name
createStaticContainer(offset, name, CLASS.text, listModel)
val displayString = getTextRepresentation(node, name)
if (!name.isNullOrBlank() && displayString != null) {
createStaticContainer(listModel, name, displayString)
}
return super.visitClass(node)
}

override fun visitMethod(node: UMethod): Boolean {
val offset = node.sourcePsi?.textRange?.startOffset?.toString() ?: ""
var name = node.name
val params: List<UParameter> = node.uastParameters
if (params.isNotEmpty()) {
var paramString = "("
for (param: UParameter in params) {
paramString = "$paramString${param.name}: ${(param.type as PsiClassReferenceType).name}, "
}
paramString = paramString.removeSuffix(", ")
paramString = "$paramString)"
name = "$name$paramString"
} else {
name = "$name()"
}
val returnType = node.returnType
if (returnType != null && returnType.presentableText != "void") {
name = "$name: ${returnType.presentableText}"
}
if (name != "()") {
createStaticContainer(offset, name, METHOD.text, listModel)
val name = node.name
val displayString = getTextRepresentation(node, name)
if (name.isNotBlank() && displayString != null) {
createStaticContainer(listModel, name, displayString)
}
return super.visitMethod(node)
}

override fun visitVariable(node: UVariable): Boolean {
val offset = node.sourcePsi?.textRange?.startOffset?.toString() ?: ""
var name = node.name
val type = node.type.presentableText
name = "$name: $type"
createStaticContainer(offset, name, VARIABLE.text, listModel)
val name = node.name
val displayString = getTextRepresentation(node, name)
if (!name.isNullOrBlank() && displayString != null) {
createStaticContainer(listModel, name, displayString)
}
return super.visitVariable(node)
}
}
}

private fun createStaticContainer(offset: String, name: String?, type: String,
listModel: DefaultListModel<FuzzyMatchContainer>) {
if (offset.isNotBlank() && !name.isNullOrBlank()) {
val container = FuzzyMatchContainer(FuzzyScore(), "$type $name", name)
private fun createStaticContainer(listModel: DefaultListModel<FuzzyMatchContainer>,
name: String?, displayString: String) {
if (!name.isNullOrBlank()) {
val container = FuzzyMatchContainer(FuzzyScore(), displayString, name)
listModel.addElement(container)
}
}
Expand Down Expand Up @@ -207,7 +192,7 @@ class FuzzierFS : Fuzzier() {
val name = node.name
val displayString = getTextRepresentation(node, name)
if (!name.isNullOrBlank() && displayString != null) {
createContainer(listModel, searchString, VARIABLE.text, name)
createContainer(listModel, searchString, displayString, name)
}
return super.visitVariable(node)
}
Expand All @@ -233,6 +218,7 @@ class FuzzierFS : Fuzzier() {
paramString = "$paramString${param.name}: ${(param.type as PsiClassReferenceType).name}, "
}
paramString = paramString.removeSuffix(", ")
paramString = "$paramString)"
} else {
paramString = "()"
}
Expand All @@ -247,19 +233,6 @@ class FuzzierFS : Fuzzier() {
return null
}

private fun createContainer(listModel: DefaultListModel<FuzzyMatchContainer>, searchString: String,
type: String, name: String?, offset: String) {
if (name.isNullOrBlank() || offset.isBlank()) {
return
}
val scoreCalculator = ScoreCalculator(searchString)
val fs = scoreCalculator.calculateScore(name)
if (fs != null) {
val container = FuzzyMatchContainer(fs, "$type $name", name)
listModel.addElement(container)
}
}

private fun createContainer(listModel: DefaultListModel<FuzzyMatchContainer>, searchString: String,
displayString: String, name: String) {
val scoreCalculator = ScoreCalculator(searchString)
Expand All @@ -269,10 +242,4 @@ class FuzzierFS : Fuzzier() {
listModel.addElement(container)
}
}

enum class StructureType(val text: String) {
CLASS("Class: "),
METHOD("Method: "),
VARIABLE("Variable: ")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@ import com.mituuz.fuzzier.settings.FuzzierConfiguration.END_STYLE_TAG
import com.mituuz.fuzzier.settings.FuzzierConfiguration.startStyleTag
import com.mituuz.fuzzier.settings.FuzzierSettingsService

class FuzzyMatchContainer(val score: FuzzyScore, var filePath: String, var filename: String, private var module: String = "") {
class FuzzyMatchContainer(val score: FuzzyScore,
var filePath: String,
var filename: String, private var module: String = "") {
private var initialPath: String? = null

companion object {
Expand Down

0 comments on commit cfdf437

Please sign in to comment.