in src/main/kotlin/mobi/hsz/idea/gitignore/services/IgnoreMatcher.kt [23:43]
fun match(pattern: Pattern?, path: String?): Boolean {
if (pattern == null || path == null) {
return false
} else {
synchronized(cache) {
val hashCode = Objects.hash(pattern, path)
if (!cache.containsKey(hashCode)) {
val parts = MatcherUtil.getParts(pattern)
var result = false
if (parts.isEmpty() || MatcherUtil.matchAllParts(parts, path)) {
try {
result = pattern.matcher(path).find()
} catch (ignored: StringIndexOutOfBoundsException) {
}
}
cache.put(hashCode, result)
}
return cache[hashCode]
}
}
}