IDEA-77474 Live Templates: underscoresToCamelCase() in Live Templates doesn't work rubymine/110.515
authorNikolay Matveev <Nikolay.Matveev@jetbrains.com>
Wed, 23 Nov 2011 13:11:13 +0000 (17:11 +0400)
committerNikolay Matveev <Nikolay.Matveev@jetbrains.com>
Wed, 23 Nov 2011 13:15:42 +0000 (17:15 +0400)
platform/lang-impl/src/com/intellij/codeInsight/template/macro/ReplaceUnderscoresToCamelCaseMacro.java

index 55481b812b3c61b33b09f5b84fa0320b0301cdec..e997444e26feff6d019f559eaebfb5db39cbd22e 100644 (file)
@@ -39,13 +39,15 @@ public class ReplaceUnderscoresToCamelCaseMacro extends MacroBase {
   protected Result calculateResult(@NotNull Expression[] params, ExpressionContext context, boolean quick) {
     final String text = getTextResult(params, context, true);
     if (text != null) {
-      final StringBuffer buf = new StringBuffer();
       final List<String> strings = StringUtil.split(text, "_");
-      buf.append(strings.get(0).toLowerCase());
-      for (int i = 1; i < strings.size(); i++) {
-        buf.append(StringUtil.capitalize(strings.get(i).toLowerCase()));
+      if (strings.size() > 0) {
+        final StringBuilder buf = new StringBuilder();
+        buf.append(strings.get(0).toLowerCase());
+        for (int i = 1; i < strings.size(); i++) {
+          buf.append(StringUtil.capitalize(strings.get(i).toLowerCase()));
+        }
+        return new TextResult(buf.toString());
       }
-      return new TextResult(buf.toString());
     }
     return null;
   }