diff options
Diffstat (limited to 'sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementFactory.java')
-rw-r--r-- | sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementFactory.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementFactory.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementFactory.java new file mode 100644 index 00000000000..0961704443c --- /dev/null +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementFactory.java @@ -0,0 +1,30 @@ +package org.intellij.sdk.language.psi; + +import com.intellij.openapi.project.Project; +import com.intellij.psi.PsiFileFactory; + +import com.intellij.psi.util.PsiTreeUtil; +import org.intellij.sdk.language.SdFileType; + +public class SdElementFactory { + + private static final String GENERAL_FILE_TEXT = "search {document %s {} rank-profile %s {}}"; + + public static SdIdentifierVal createIdentifierVal(Project project, String name) { + String fileText = String.format(GENERAL_FILE_TEXT, name, name); + final SdFile file = createFile(project, fileText); + return PsiTreeUtil.findChildOfType(file, SdIdentifierVal.class); + } + + public static SdIdentifierWithDashVal createIdentifierWithDashVal(Project project, String name) { + String fileText = String.format(GENERAL_FILE_TEXT, name, name); + final SdFile file = createFile(project, fileText); + return PsiTreeUtil.findChildOfType(file, SdIdentifierWithDashVal.class); + } + + public static SdFile createFile(Project project, String text) { + String name = "dummy.sd"; + return (SdFile) PsiFileFactory.getInstance(project). + createFileFromText(name, SdFileType.INSTANCE, text); + } +} |