diff --git a/idea/resources/liveTemplates/Kotlin.xml b/idea/resources/liveTemplates/Kotlin.xml
index 7e63db35cc4..723711f1992 100644
--- a/idea/resources/liveTemplates/Kotlin.xml
+++ b/idea/resources/liveTemplates/Kotlin.xml
@@ -39,6 +39,15 @@
+
+
+
+
+
+
+
diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml
index d6ad3fa5d43..02ad735645f 100644
--- a/idea/src/META-INF/plugin.xml
+++ b/idea/src/META-INF/plugin.xml
@@ -97,6 +97,8 @@
+
+
diff --git a/idea/src/org/jetbrains/jet/plugin/JetBundle.properties b/idea/src/org/jetbrains/jet/plugin/JetBundle.properties
index 711bf9a54d8..1018896c576 100644
--- a/idea/src/org/jetbrains/jet/plugin/JetBundle.properties
+++ b/idea/src/org/jetbrains/jet/plugin/JetBundle.properties
@@ -29,6 +29,7 @@ implement.members=Implement members
livetemplate.description.main=main() function
livetemplate.description.soutp=Prints function parameter names and values to System.out
+livetemplate.description.iter=Iterate over elements of iterable
livetemplate.description.void=Function returning nothing
livetemplate.description.fun0=Function with no parameters
livetemplate.description.fun1=Function with one parameter
@@ -41,5 +42,7 @@ livetemplate.description.exfun=Extension function
livetemplate.description.exval=Extension read-only property
livetemplate.description.exvar=Extension read-write property
macro.variable.of.type=kotlinVariableOfType(Type)
+macro.iterable.variable=kotlinIterableVariable()
+macro.suggest.variable.name=kotlinSuggestVariableName()
macro.fun.parameters=functionParameters()
macro.fun.anonymousSuper=anonymousSuper()
\ No newline at end of file
diff --git a/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/JetIterableVariableMacro.java b/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/JetIterableVariableMacro.java
new file mode 100644
index 00000000000..08fbb39afd9
--- /dev/null
+++ b/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/JetIterableVariableMacro.java
@@ -0,0 +1,30 @@
+package org.jetbrains.jet.plugin.liveTemplates.macro;
+
+import com.intellij.codeInsight.template.Expression;
+import com.intellij.codeInsight.template.ExpressionContext;
+import com.intellij.codeInsight.template.Macro;
+import com.intellij.codeInsight.template.Result;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.jet.plugin.JetBundle;
+
+/**
+ * @author Evgeny Gerashchenko
+ * @since 2/7/12
+ */
+public class JetIterableVariableMacro extends Macro {
+ @Override
+ public String getName() {
+ return "kotlinIterableVariable";
+ }
+
+ @Override
+ public String getPresentableName() {
+ return JetBundle.message("macro.iterable.variable");
+ }
+
+ @Override
+ public Result calculateResult(@NotNull Expression[] params, ExpressionContext context) {
+ // TODO
+ return null;
+ }
+}
diff --git a/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/JetSuggestVariableNameMacro.java b/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/JetSuggestVariableNameMacro.java
new file mode 100644
index 00000000000..fa3fe7ed374
--- /dev/null
+++ b/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/JetSuggestVariableNameMacro.java
@@ -0,0 +1,29 @@
+package org.jetbrains.jet.plugin.liveTemplates.macro;
+
+import com.intellij.codeInsight.template.Expression;
+import com.intellij.codeInsight.template.ExpressionContext;
+import com.intellij.codeInsight.template.Macro;
+import com.intellij.codeInsight.template.Result;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.jet.plugin.JetBundle;
+
+/**
+ * @author Evgeny Gerashchenko
+ * @since 2/7/12
+ */
+public class JetSuggestVariableNameMacro extends Macro {
+ @Override
+ public String getName() {
+ return "suggestVariableName";
+ }
+
+ @Override
+ public String getPresentableName() {
+ return JetBundle.message("macro.suggest.variable.name");
+ }
+
+ @Override
+ public Result calculateResult(@NotNull Expression[] params, ExpressionContext context) {
+ return null; //TODO
+ }
+}