mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 14:23:28 +07:00
[angular] WEB-71089 Make all key code and names case-insensitive; fix RegExpPattern to support this use case.
(cherry picked from commit 42a3d16b9b4ef050db55f2271c46c5694e6e8f78) IJ-CR-170229 GitOrigin-RevId: 05d8de360f5b6b4f87ad11f089eeed678419336e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
90201cfde5
commit
5308b0f632
@@ -17,8 +17,14 @@ internal class RegExpPattern(private val regex: String, private val caseSensitiv
|
||||
else
|
||||
Pattern.compile(regex, Pattern.CASE_INSENSITIVE)
|
||||
}
|
||||
private val patternCompletablePrefix: String by lazy(LazyThreadSafetyMode.NONE) {
|
||||
getPatternCompletablePrefix(regex)
|
||||
}
|
||||
|
||||
override fun getStaticPrefixes(): Sequence<String> = sequenceOf(getPatternCompletablePrefix(regex))
|
||||
override fun getStaticPrefixes(): Sequence<String> = if (caseSensitive)
|
||||
sequenceOf(patternCompletablePrefix)
|
||||
else
|
||||
sequenceOf(patternCompletablePrefix.takeWhile { !it.isLetter() })
|
||||
|
||||
override fun isStaticAndRequired(): Boolean = false
|
||||
|
||||
@@ -35,7 +41,7 @@ internal class RegExpPattern(private val regex: String, private val caseSensitiv
|
||||
listOf(MatchResult(PolySymbolNameSegment.create(
|
||||
start, start + matcher.end(),
|
||||
owner?.let { listOf(it) } ?: emptyList(),
|
||||
matchScore = getPatternCompletablePrefix(regex).length
|
||||
matchScore = patternCompletablePrefix.length
|
||||
)))
|
||||
else emptyList()
|
||||
}
|
||||
@@ -46,7 +52,10 @@ internal class RegExpPattern(private val regex: String, private val caseSensitiv
|
||||
symbolsResolver: PolySymbolPatternSymbolsResolver?,
|
||||
params: ListParameters,
|
||||
): List<ListResult> =
|
||||
emptyList()
|
||||
patternCompletablePrefix
|
||||
.takeIf { it == regex }
|
||||
?.let { listOf(ListResult(it, PolySymbolNameSegment.create(0, it.length))) }
|
||||
?: emptyList()
|
||||
|
||||
override fun complete(
|
||||
owner: PolySymbol?,
|
||||
@@ -56,15 +65,18 @@ internal class RegExpPattern(private val regex: String, private val caseSensitiv
|
||||
start: Int,
|
||||
end: Int,
|
||||
): CompletionResults =
|
||||
getPatternCompletablePrefix(regex)
|
||||
patternCompletablePrefix
|
||||
.takeIf { it.isNotBlank() }
|
||||
?.let {
|
||||
CompletionResults(
|
||||
PolySymbolCodeCompletionItem.builder(it, start, owner)
|
||||
.completeAfterInsert(true)
|
||||
.displayName("$it…")
|
||||
.build()
|
||||
)
|
||||
if (it == regex)
|
||||
CompletionResults(PolySymbolCodeCompletionItem.create(it, start))
|
||||
else
|
||||
CompletionResults(
|
||||
PolySymbolCodeCompletionItem.builder(it, start, owner)
|
||||
.completeAfterInsert(true)
|
||||
.displayName("$it…")
|
||||
.build()
|
||||
)
|
||||
}
|
||||
?: CompletionResults(
|
||||
PolySymbolCodeCompletionItem.builder("", start, owner)
|
||||
|
||||
Reference in New Issue
Block a user