diff options
Diffstat (limited to 'python/src/com/jetbrains/python/psi/impl/PyElementGeneratorImpl.java')
-rw-r--r-- | python/src/com/jetbrains/python/psi/impl/PyElementGeneratorImpl.java | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/python/src/com/jetbrains/python/psi/impl/PyElementGeneratorImpl.java b/python/src/com/jetbrains/python/psi/impl/PyElementGeneratorImpl.java index bb0e29f800a7..6356a1f92a0d 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyElementGeneratorImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyElementGeneratorImpl.java @@ -20,6 +20,7 @@ import com.google.common.collect.Queues; import com.intellij.lang.ASTNode; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Pair; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; @@ -285,12 +286,6 @@ public class PyElementGeneratorImpl extends PyElementGenerator { throw new IllegalArgumentException("Invalid call expression text " + functionName); } - public PyImportStatement createImportStatementFromText(final LanguageLevel languageLevel, - final String text) { - final PsiFile dummyFile = createDummyFile(languageLevel, text); - return (PyImportStatement)dummyFile.getFirstChild(); - } - @Override public PyImportElement createImportElement(final LanguageLevel languageLevel, String name) { return createFromText(languageLevel, PyImportElement.class, "from foo import " + name, new int[]{0, 6}); @@ -427,6 +422,23 @@ public class PyElementGeneratorImpl extends PyElementGenerator { return createFromText(LanguageLevel.getDefault(), PsiWhiteSpace.class, " \n\n "); } + @NotNull + @Override + public PyFromImportStatement createFromImportStatement(@NotNull LanguageLevel languageLevel, @NotNull String qualifier, + @NotNull String name, @Nullable String alias) { + final String asClause = StringUtil.isNotEmpty(alias) ? " as " + alias : ""; + final String statement = "from " + qualifier + " import " + name + asClause; + return createFromText(languageLevel, PyFromImportStatement.class, statement); + } + + @NotNull + @Override + public PyImportStatement createImportStatement(@NotNull LanguageLevel languageLevel, @NotNull String name, @Nullable String alias) { + final String asClause = StringUtil.isNotEmpty(alias) ? " as " + alias : ""; + final String statement = "import " + name + asClause; + return createFromText(languageLevel, PyImportStatement.class, statement); + } + private static class CommasOnly extends NotNullPredicate<LeafPsiElement> { @Override protected boolean applyNotNull(@NotNull final LeafPsiElement input) { |