IDEA-128179 Tab title limit: truncation in case of "directory name\file name" tile...
authorVassiliy.Kudryashov <Vassiliy.Kudryashov@jetbrains.com>
Mon, 4 Aug 2014 18:58:57 +0000 (22:58 +0400)
committerVassiliy.Kudryashov <Vassiliy.Kudryashov@jetbrains.com>
Mon, 4 Aug 2014 19:02:02 +0000 (23:02 +0400)
platform/lang-impl/src/com/intellij/application/options/editor/EditorTabsConfigurable.java
platform/util/src/com/intellij/openapi/util/text/StringUtil.java
platform/util/testSrc/com/intellij/util/text/StringUtilTest.java

index 8db2a882bfc7938e9a195b3646e9781e7bc5d4e2..35a34085d035f71ba09ab9b25118bdeb576a2d7d 100644 (file)
@@ -188,7 +188,7 @@ public class EditorTabsConfigurable implements EditorOptionsProvider {
     if (temp.trim().length() > 0) {
       try {
         int newTabTitleLimit = Integer.parseInt(temp);
-        newTabTitleLimit = Math.max(10, Math.min(100, newTabTitleLimit));
+        newTabTitleLimit = Math.max(25, Math.min(100, newTabTitleLimit));
         if (newTabTitleLimit != uiSettings.EDITOR_TAB_TITLE_LIMIT){
           uiSettings.EDITOR_TAB_TITLE_LIMIT = newTabTitleLimit;
           uiSettingsChanged = true;
index b4201c56aa85fbbdbb8d289344b1e674be924020..1a67d9d5a88c3d2c19cf7d7ca4bf17691aba0ac4 100644 (file)
@@ -2674,12 +2674,19 @@ public class StringUtil extends StringUtilRt {
         continue;
       }
 
-      if (i > 0 && (ch == '/' || ch == '.' || Character.isUpperCase(ch))) {
+      if (i > 0 && (ch == '/' || ch == '\\' || ch == '.' || Character.isUpperCase(ch))) {
         words.add(builder.toString());
         builder.delete(0, builder.length());
       }
       builder.append(ch);
     }
+    for (int i = 0; i < words.size(); i++) {
+      String word = words.get(i);
+      if (i < words.size() - 1 && word.length() == 1) {
+        words.remove(i);
+        words.set(i, word + words.get(i));
+      }
+    }
 
     int removedLength = 0;
 
index 46b7da7c734c15d4d6c2bf30aa6bfcd8838ac984..383c07f2a87e0ee68f1e0c9899851ae8835c34a9 100644 (file)
@@ -197,7 +197,7 @@ public class StringUtilTest extends TestCase {
   }
 
   public void testShortened() {
-    String[] names = {"AVeryVeeryLongClassName.java", "com.test.SomeJAVAClassName.java", "strangelowercaseclassname.java", "PrefixPostfix.java"};
+    String[] names = {"AVeryVeeryLongClassName.java", "com.test.SomeJAVAClassName.java", "strangelowercaseclassname.java", "PrefixPostfix.java", "SomeJAVAClassName.java"};
     for (String name : names) {
       for (int i = name.length() + 1; i > 15; i--) {
         String shortened = StringUtil.getShortened(name, i);