From 4441e79cac29f6cbb9e4b0aa05dbb0eeb17dd6c0 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 12 May 2011 15:46:07 +0200 Subject: [PATCH] matching degree in NameUtil --- .../src/com/intellij/psi/codeStyle/NameUtil.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/platform/util/src/com/intellij/psi/codeStyle/NameUtil.java b/platform/util/src/com/intellij/psi/codeStyle/NameUtil.java index d28c11119826..6dee1377317b 100644 --- a/platform/util/src/com/intellij/psi/codeStyle/NameUtil.java +++ b/platform/util/src/com/intellij/psi/codeStyle/NameUtil.java @@ -599,6 +599,21 @@ public class NameUtil { return null; } + public int matchingDegree(String name) { + Iterable iterable = matchingFragments(name); + if (iterable == null) return Integer.MIN_VALUE; + + int matchingCaps = 0; + int fragmentCount = 0; + for (TextRange range : iterable) { + matchingCaps += StringUtil.capitalsOnly(name.substring(range.getStartOffset(), range.getEndOffset())).length(); + fragmentCount++; + } + + int patternCaps = StringUtil.capitalsOnly(new String(myPattern)).length(); + return -fragmentCount - Math.max(0, patternCaps - matchingCaps) * 10; + } + private static boolean isWordSeparator(char c) { return Character.isWhitespace(c) || c == '_' || c == '-'; }