Skip to content

Commit 4527f60

Browse files
author
lilei
committed
初步完成引用符号的替换
1 parent 58cae3f commit 4527f60

File tree

5 files changed

+49
-10
lines changed

5 files changed

+49
-10
lines changed

gradle/wrapper/gradle-wrapper.jar

54.9 KB
Binary file not shown.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
distributionBase=GRADLE_USER_HOME
2+
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip
4+
zipStoreBase=GRADLE_USER_HOME
5+
zipStorePath=wrapper/dists

src/main/java/me/hiten/completion/DependencySearchManager.kt

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,17 +68,20 @@ class DependencySearchManager(private val dependencyText: DependencyText) {
6868

6969
private fun createLookupElement(result: DependencySearcher.Result, cheatString: String): LookupElement {
7070
return LookupElementBuilder.create(result, cheatString).withRenderer(CustomLookupElementRenderer(dependencyText)).withInsertHandler { context, item ->
71-
val quoteArg = dependencyText.quoteArg
71+
var quoteArg = dependencyText.quoteArg
7272
val text: String
7373
var insertArg: String? = null
74-
if (quoteArg.isNullOrEmpty()) {
75-
text = result.getFullText()
74+
if (quoteArg == null) {
75+
text = result.getFullTextAndColon()
7676
} else {
7777
if (result.version.isNullOrEmpty() || result.artifact.isNullOrEmpty()) {
78-
text = result.getFullText() + "$$quoteArg"
78+
text = result.getFullText()
7979
} else {
80+
if (quoteArg.isEmpty()) {
81+
quoteArg = "ver_${result.artifact}"
82+
}
8083
text = "${result.groupId}:${result.artifact}:$$quoteArg"
81-
insertArg = "//{ext.$quoteArg = '${result.version}'}"
84+
insertArg = "// ext.$quoteArg = '${result.version}' "
8285
}
8386
}
8487
val editor = context.editor
@@ -88,10 +91,18 @@ class DependencySearchManager(private val dependencyText: DependencyText) {
8891
val lineStartOffset = document.getLineStartOffset(lineNumber)
8992
val lineEndOffset = document.getLineEndOffset(lineNumber)
9093
val allText = document.text
91-
var lineText = allText.substring(lineStartOffset, lineEndOffset)
94+
var lineText = allText.substring(lineStartOffset, offset)
9295
lineText = lineText.replace(cheatString, text)
9396

97+
if (lineText.contains("'")) {
98+
lineText += "'"
99+
} else if (lineText.contains("\"")) {
100+
lineText += "\""
101+
}
94102

103+
if (lineText.contains("(")) {
104+
lineText += ")"
105+
}
95106
insertArg?.let {
96107
if (lineText.contains("'")) {
97108
lineText = lineText.replace("'", "\"")
@@ -112,8 +123,8 @@ class DependencySearchManager(private val dependencyText: DependencyText) {
112123
val result = (element as LookupElementBuilder).`object` as DependencySearcher.Result
113124
presentation?.typeText = result.source
114125
val quoteArg = dependencyText.quoteArg
115-
if (quoteArg.isNullOrEmpty()) {
116-
presentation?.itemText = result.getFullText()
126+
if (quoteArg == null) {
127+
presentation?.itemText = result.getFullTextAndColon()
117128
} else {
118129
if (result.version.isNullOrEmpty() || result.artifact.isNullOrEmpty()) {
119130
presentation?.itemText = result.getFullText() + "$$quoteArg"
@@ -126,4 +137,8 @@ class DependencySearchManager(private val dependencyText: DependencyText) {
126137
}
127138
}
128139

140+
companion object {
141+
const val Q_SYMBOL = "#"
142+
}
143+
129144
}

src/main/java/me/hiten/completion/DependencySearcher.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,23 @@ interface DependencySearcher {
2929
return fullText!!
3030
}
3131

32+
fun getFullTextAndColon(): String {
33+
var fullText = groupId
34+
if (!groupId.isNullOrEmpty()) {
35+
fullText += ":"
36+
}
37+
if (!artifact.isNullOrEmpty()) {
38+
fullText += "$artifact:"
39+
}
40+
if (!version.isNullOrEmpty()) {
41+
fullText += "$version"
42+
}
43+
if (fullText.isNullOrEmpty()) {
44+
return ""
45+
}
46+
return fullText!!
47+
}
48+
3249
}
3350

3451
}

src/main/java/me/hiten/completion/DependencyText.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package me.hiten.completion
22

3+
import me.hiten.completion.DependencySearchManager.Companion.Q_SYMBOL
4+
35

46
class DependencyText(val text: String) {
57

68
val isShort: Boolean = text.length < 2
79

8-
val quoteArg: String? = text.split("$").getOrNull(1)
10+
val quoteArg: String? = text.split(Q_SYMBOL).getOrNull(1)
911

10-
val splitText = text.split("$").getOrElse(0) { text }.split(":")
12+
val splitText = text.split(Q_SYMBOL).getOrElse(0) { text }.split(":")
1113
val groupId = splitText.getOrElse(0) { "" }
1214
val artifactId = splitText.getOrElse(1) { "" }
1315

0 commit comments

Comments
 (0)