@Override protected void run(@NotNull Result<PsiFile> result) throws Throwable { final PsiPackage packageElement = directoryService.getPackage(directory); if (packageElement == null) { throw new InvalidDirectoryException("Target directory does not provide a package"); } final String fileName = Extensions.append(name, StdFileTypes.JAVA); final PsiFile found = directory.findFile(fileName); if (found != null) { throw new ClassAlreadyExistsException("Class '" + name + "'already exists in " + packageElement.getName()); } final String packageName = packageElement.getQualifiedName(); final String className = Extensions.remove(this.name, StdFileTypes.JAVA); try { final String java = converter.convert(packageName, className, json); final PsiFile classFile = fileFactory.createFileFromText(fileName, JavaFileType.INSTANCE, java); CodeStyleManager.getInstance(classFile.getProject()).reformat(classFile); JavaCodeStyleManager.getInstance(classFile.getProject()).optimizeImports(classFile); final PsiFile created = (PsiFile) directory.add(classFile); result.setResult(created); } catch (IOException e) { throw new ClassCreationException("Failed to create new class from JSON", e); } }
private VirtualFile createLog4JTest(final Project project, final MavenId projectId, final VirtualFile appDirectory) { return new WriteCommandAction<VirtualFile>(project, "Create Log4J Test File", PsiFile.EMPTY_ARRAY) { @Override protected void run(@NotNull Result<VirtualFile> result) throws Throwable { try { VirtualFile configFile = appDirectory.findOrCreateChildData(this, "log4j2-test.xml"); final FileTemplateManager manager = FileTemplateManager.getInstance(project); final FileTemplate template = manager.getInternalTemplate(MuleFileTemplateDescriptorManager.LOG4J2_TEST); final Properties defaultProperties = manager.getDefaultProperties(); final String text = template.getText(defaultProperties); VfsUtil.saveText(configFile, text); result.setResult(configFile); } catch (IOException e) { showError(project, e); } } }.execute().getResultObject(); }
@Override protected void setUp() throws Exception { super.setUp(); final IdeaTestFixtureFactory factory = IdeaTestFixtureFactory.getFixtureFactory(); myTestFixture = createFixture(factory); myTestFixture.setTestDataPath(getTestDataBasePath() + getTestDataPath()); Class<? extends LocalInspectionTool>[] inspectionClasses = new DefaultInspectionProvider().getInspectionClasses(); if (getName().contains("Inspection")) { inspectionClasses = ArrayUtil.mergeArrays(inspectionClasses, ApplicationLoader.getInspectionClasses()); } myTestFixture.setUp(); myTestFixture.enableInspections(inspectionClasses); new WriteAction() { @Override protected void run(@NotNull Result result) throws Throwable { ResourceUtil.copyFiles(HighlightingTestBase.this); init(); } }.execute().throwException(); }
@Override public Promise<Void> changeLanguageLevel(@NotNull Module module, @NotNull final LanguageLevel level) { if (!myProjectsManager.isMavenizedModule(module)) return null; MavenProject mavenProject = myProjectsManager.findProject(module); if (mavenProject == null) return null; final MavenDomProjectModel model = MavenDomUtil.getMavenDomProjectModel(myProject, mavenProject.getFile()); if (model == null) return null; new WriteCommandAction(myProject, "Add Maven Dependency", DomUtil.getFile(model)) { @Override protected void run(@NotNull Result result) throws Throwable { MavenDomConfiguration configuration = getCompilerPlugin(model).getConfiguration(); XmlTag tag = configuration.ensureTagExists(); setChildTagValue(tag, "source", level.getCompilerComplianceDefaultOption()); setChildTagValue(tag, "target", level.getCompilerComplianceDefaultOption()); Document document = PsiDocumentManager.getInstance(myProject).getDocument(DomUtil.getFile(model)); if (document != null) { FileDocumentManager.getInstance().saveDocument(document); } } }.execute(); return myProjectsManager.forceUpdateProjects(Collections.singleton(mavenProject)); }
protected PsiDirectory createSubdirectory(PsiDirectory fileDirectory, String subDirectoryName) throws Exception { new WriteCommandAction(this.project) { @Override protected void run(@NotNull Result result) throws Throwable { fileDirectory.createSubdirectory(subDirectoryName); } @Override public String getGroupID() { return "Create Command"; } }.execute(); return fileDirectory.findSubdirectory(subDirectoryName); }
public void testRemoveModuleSpecifiedWithInclude() throws IOException { Collection<String> modules = Arrays.asList("one", "two", "three", "four", "five"); final String body = getSettingsFileWithModules(modules); for (final String module : modules) { final GradleSettingsFile file = getTestFile(body); new WriteCommandAction<Object>(getProject(), file.getPsiFile()) { @Override protected void run(@NotNull Result<Object> result) throws Throwable { file.removeModule(module); } }.execute(); Set<String> postDelete = ImmutableSet.copyOf(file.getModules()); assertEquals(module + " was not deleted", modules.size() - 1, postDelete.size()); assertFalse(module + " was not deleted", postDelete.contains(module)); Predicate<String> notCurrentModule = Predicates.not(Predicates.equalTo(module)); String expectedFileContents = getSettingsFileWithModules(Iterables.filter(modules, notCurrentModule)); assertEquals(expectedFileContents, file.getPsiFile().getText()); } }
@Override public PsiFile configureByText(@NotNull final FileType fileType, @NotNull @NonNls final String text) { assertInitialized(); final String extension = fileType.getDefaultExtension(); final FileTypeManager fileTypeManager = FileTypeManager.getInstance(); if (fileTypeManager.getFileTypeByExtension(extension) != fileType) { new WriteCommandAction(getProject()) { @Override protected void run(@NotNull Result result) throws Exception { fileTypeManager.associateExtension(fileType, extension); } }.execute(); } final String fileName = "aaa." + extension; return configureByText(fileName, text); }
protected PsiFile addFileToProject(@NotNull final String rootPath, @NotNull final String relativePath, @NotNull final String fileText) { return new WriteCommandAction<PsiFile>(getProject()) { @Override protected void run(@NotNull Result<PsiFile> result) throws Throwable { try { if (myTempDirFixture instanceof LightTempDirTestFixtureImpl) { final VirtualFile file = myTempDirFixture.createFile(relativePath, fileText); result.setResult(PsiManager.getInstance(getProject()).findFile(file)); } else { result.setResult(((HeavyIdeaTestFixture)myProjectFixture).addFileToProject(rootPath, relativePath, fileText)); } } catch (IOException e) { throw new RuntimeException(e); } finally { ((PsiModificationTrackerImpl)PsiManager.getInstance(getProject()).getModificationTracker()).incCounter(); } } }.execute().getResultObject(); }
public CompilerTester(Project project, List<Module> modules) throws Exception { myProject = project; myModules = modules; myMainOutput = new TempDirTestFixtureImpl(); myMainOutput.setUp(); CompilerTestUtil.enableExternalCompiler(); new WriteCommandAction(getProject()) { @Override protected void run(@NotNull Result result) throws Throwable { //noinspection ConstantConditions CompilerProjectExtension.getInstance(getProject()).setCompilerOutputUrl(myMainOutput.findOrCreateDir("out").getUrl()); for (Module module : myModules) { ModuleRootModificationUtil.setModuleSdk(module, JavaAwareProjectJdkTableImpl.getInstanceEx().getInternalJdk()); } } }.execute(); }
@NotNull protected PsiFile createFile(@NotNull final Module module, @NotNull final VirtualFile vDir, @NotNull final String fileName, @NotNull final String text) throws IOException { return new WriteAction<PsiFile>() { @Override protected void run(@NotNull Result<PsiFile> result) throws Throwable { if (!ModuleRootManager.getInstance(module).getFileIndex().isInSourceContent(vDir)) { addSourceContentToRoots(module, vDir); } final VirtualFile vFile = vDir.createChildData(vDir, fileName); VfsUtil.saveText(vFile, text); assertNotNull(vFile); final PsiFile file = myPsiManager.findFile(vFile); assertNotNull(file); result.setResult(file); } }.execute().getResultObject(); }
public static void chooseAndOverrideOrImplementMethods(final Project project, final Editor editor, final PsiClass aClass, final boolean toImplement) { LOG.assertTrue(aClass.isValid()); ApplicationManager.getApplication().assertReadAccessAllowed(); Collection<CandidateInfo> candidates = getMethodsToOverrideImplement(aClass, toImplement); Collection<CandidateInfo> secondary = toImplement || aClass.isInterface() ? ContainerUtil.<CandidateInfo>newArrayList() : getMethodsToOverrideImplement(aClass, true); final MemberChooser<PsiMethodMember> chooser = showOverrideImplementChooser(editor, aClass, toImplement, candidates, secondary); if (chooser == null) return; final List<PsiMethodMember> selectedElements = chooser.getSelectedElements(); if (selectedElements == null || selectedElements.isEmpty()) return; LOG.assertTrue(aClass.isValid()); new WriteCommandAction(project, aClass.getContainingFile()) { @Override protected void run(@NotNull final Result result) throws Throwable { overrideOrImplementMethodsInRightPlace(editor, aClass, selectedElements, chooser.isCopyJavadoc(), chooser.isInsertOverrideAnnotation()); } }.execute(); }
@Override public void invoke(@NotNull final Project project, @NotNull final PsiFile file, @Nullable("is null when called from inspection") Editor editor, @NotNull final PsiElement startElement, @NotNull PsiElement endElement) { if (isAvailable(project, null, file)) { new WriteCommandAction(project) { @Override protected void run(@NotNull Result result) throws Throwable { final PsiDirectory directory = chooseDirectory(project, file); if (directory == null) return; ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { doCreate(directory, startElement); } }); } }.execute(); } }
public void testCaseInsensitiveRename() throws IOException { File file = createTempFile("file.txt", ""); File home = file.getParentFile(); assertOrderedEquals(Collections.singletonList("file.txt"), home.list()); final VirtualFile vFile = myFS.refreshAndFindFileByIoFile(file); assertNotNull(vFile); new WriteAction<Void>() { @Override protected void run(@NotNull Result<Void> result) throws Throwable { vFile.rename(LocalFileSystemTest.class, "FILE.txt"); } }.execute(); assertEquals("FILE.txt", vFile.getName()); assertOrderedEquals(Collections.singletonList("FILE.txt"), home.list()); }
public static <T extends XBreakpointType> XBreakpoint addBreakpoint(@NotNull final Project project, @NotNull final Class<T> exceptionType, @NotNull final XBreakpointProperties properties) { final XBreakpointManager breakpointManager = XDebuggerManager.getInstance(project).getBreakpointManager(); XBreakpointType[] types = XBreakpointUtil.getBreakpointTypes(); final Ref<XBreakpoint> breakpoint = Ref.create(null); for (XBreakpointType type : types) { if (exceptionType.isInstance(type)) { final T breakpointType = exceptionType.cast(type); new WriteAction() { @Override protected void run(@NotNull Result result) throws Throwable { breakpoint.set(breakpointManager.addBreakpoint(breakpointType, properties)); } }.execute(); break; } } return breakpoint.get(); }
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { final MavenDomDependency dep = getDependency(file, editor); final VirtualFile[] files; if (myFileChooser == null) { final FileChooserDescriptor descriptor = new FileChooserDescriptor(true, false, true, true, false, false); final PsiFile currentValue = dep != null ? dep.getSystemPath().getValue() : null; final VirtualFile toSelect = currentValue == null ? null : currentValue.getVirtualFile(); files = FileChooser.chooseFiles(descriptor, project, toSelect); } else { files = myFileChooser.produce(); } if (files == null || files.length == 0) return; final PsiFile selectedFile = PsiManager.getInstance(project).findFile(files[0]); if (selectedFile == null) return; if (dep != null) { new WriteCommandAction(project) { protected void run(@NotNull Result result) throws Throwable { dep.getSystemPath().setValue(selectedFile); } }.execute(); } }
public void testMoveFile() throws Exception { new WriteAction<Object>() { @Override protected void run(@NotNull Result<Object> result) throws Throwable { final VirtualFile dir1 = getProject().getBaseDir().createChildDirectory(this, "dir1"); final VirtualFile dir2 = getProject().getBaseDir().createChildDirectory(this, "dir2"); VirtualFile child = dir1.createChildData(this, "child"); long outOfCodeBlockCount = myTracker.getOutOfCodeBlockModificationCount(); child.move(this, dir2); assertFalse(myTracker.getOutOfCodeBlockModificationCount() == outOfCodeBlockCount); outOfCodeBlockCount = myTracker.getOutOfCodeBlockModificationCount(); child.move(this, dir1); assertFalse(myTracker.getOutOfCodeBlockModificationCount() == outOfCodeBlockCount); } }.execute(); }
public void testInsertAtOffset() throws Exception { new WriteCommandAction(getProject()) { @Override protected void run(@NotNull final Result result) throws Throwable { String xml = "<root>0123456789</root>"; XmlFile file = (XmlFile)PsiFileFactory.getInstance(getProject()) .createFileFromText("foo.xml", StdFileTypes.XML, xml, (long)1, true, false); //System.out.println(DebugUtil.psiToString(file, false)); XmlTag root = file.getDocument().getRootTag(); final XmlText text1 = root.getValue().getTextElements()[0]; assertFalse(CodeEditUtil.isNodeGenerated(root.getNode())); final XmlText text = text1; final XmlElement element = text.insertAtOffset(XmlElementFactory.getInstance(getProject()).createTagFromText("<bar/>"), 5); assertNotNull(element); assertTrue(element instanceof XmlText); assertEquals("01234", element.getText()); assertEquals("<root>01234<bar/>56789</root>", text.getContainingFile().getText()); } }.execute(); }
public void testRemoveAttributeParent() throws Throwable { final XmlFile file = (XmlFile)createFile("file.xml", "<?xml version='1.0' encoding='UTF-8'?>\n" + "<!DOCTYPE ejb-jar PUBLIC \"-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN\" \"http://java.sun.com/dtd/ejb-jar_2_0.dtd\">\n" + "<a>\n" + " <child-element xxx=\"239\"/>\n" + "</a>"); final DomFileElementImpl<MyElement> fileElement = getDomManager().getFileElement(file, MyElement.class, "a"); myCallRegistry.clear(); final MyElement rootElement = fileElement.getRootElement(); final MyElement oldLeaf = rootElement.getChildElements().get(0); final GenericAttributeValue<String> xxx = oldLeaf.getXxx(); final XmlTag oldLeafTag = oldLeaf.getXmlTag(); new WriteCommandAction(getProject()) { @Override protected void run(@NotNull Result result) throws Throwable { oldLeafTag.delete(); } }.execute(); assertFalse(oldLeaf.isValid()); assertFalse(xxx.isValid()); }
protected Module addModule(final String name, final boolean withSource) { return new WriteCommandAction<Module>(getProject()) { @Override protected void run(@NotNull Result<Module> result) throws Throwable { final VirtualFile depRoot = myFixture.getTempDirFixture().findOrCreateDir(name); final ModifiableModuleModel moduleModel = ModuleManager.getInstance(getProject()).getModifiableModel(); String moduleName = moduleModel.newModule(depRoot.getPath() + "/" + name + ".iml", StdModuleTypes.JAVA.getId()).getName(); moduleModel.commit(); final Module dep = ModuleManager.getInstance(getProject()).findModuleByName(moduleName); ModuleRootModificationUtil.setModuleSdk(dep, ModuleRootManager.getInstance(myModule).getSdk()); if (withSource) { PsiTestUtil.addSourceRoot(dep, depRoot); } else { PsiTestUtil.addContentRoot(dep, depRoot); } IdeaTestUtil.setModuleLanguageLevel(dep, LanguageLevelModuleExtensionImpl.getInstance(myModule).getLanguageLevel()); result.setResult(dep); } }.execute().getResultObject(); }
@Override public void processQuery(@NotNull final ReferencesSearch.SearchParameters queryParameters, @NotNull final Processor<PsiReference> consumer) { new ReadAction() { @Override protected void run(@NotNull final Result result) throws Throwable { final PsiElement refElement = queryParameters.getElementToSearch(); if (PyMagicLiteralTools.isMagicLiteral(refElement)) { final String refText = ((StringLiteralExpression)refElement).getStringValue(); if (!StringUtil.isEmpty(refText)) { final SearchScope searchScope = queryParameters.getEffectiveSearchScope(); queryParameters.getOptimizer().searchWord(refText, searchScope, true, refElement); } } } }.execute(); }
protected VirtualFile createConfigFile(final VirtualFile dir, String config) throws IOException { final String configFileName = getExternalSystemConfigFileName(); VirtualFile f = dir.findChild(configFileName); if (f == null) { f = new WriteAction<VirtualFile>() { @Override protected void run(@NotNull Result<VirtualFile> result) throws Throwable { VirtualFile res = dir.createChildData(null, configFileName); result.setResult(res); } }.execute().getResultObject(); myAllConfigs.add(f); } setFileContent(f, config, true); return f; }
public void testBrokenSymlinkMove() throws IOException, InterruptedException { if (!SystemInfo.areSymLinksSupported) { System.err.println(getName() + " skipped: " + SystemInfo.OS_NAME); return; } final File srcDir = IoTestUtil.createTestDir("src"); final File link = IoTestUtil.createSymLink(srcDir.getPath() + "/missing", srcDir.getPath() + "/link", false); final File dstDir = IoTestUtil.createTestDir("dst"); new WriteAction() { @Override protected void run(@NotNull Result result) throws Throwable { VirtualFile file = myFS.refreshAndFindFileByIoFile(link); assertNotNull(file); VirtualFile target = myFS.refreshAndFindFileByIoFile(dstDir); assertNotNull(target); myFS.moveFile(this, file, target); } }.execute(); assertOrderedEquals(ArrayUtil.EMPTY_STRING_ARRAY, srcDir.list()); assertOrderedEquals(new String[]{link.getName()}, dstDir.list()); }
private void checkFiles() { final VirtualFile[] files; synchronized (myFilesToCheck) { files = myFilesToCheck.toArray(new VirtualFile[myFilesToCheck.size()]); myFilesToCheck.clear(); } final List<VirtualFile> newEditedGeneratedFiles = new ArrayList<VirtualFile>(); new ReadAction() { protected void run(final @NotNull Result result) { if (myProject.isDisposed()) return; for (VirtualFile file : files) { if (isGenerated(file)) { newEditedGeneratedFiles.add(file); } } } }.execute(); if (!newEditedGeneratedFiles.isEmpty()) { myEditedGeneratedFiles.addAll(newEditedGeneratedFiles); myEditorNotifications.updateAllNotifications(); } }
private PsiFile createFile(final Module module, final VirtualFile vDir, final String fileName, final String text) { return new WriteAction<PsiFile>() { @Override protected void run(@NotNull Result<PsiFile> result) throws Throwable { if (!ModuleRootManager.getInstance(module).getFileIndex().isInSourceContent(vDir)) { PsiTestUtil.addSourceContentToRoots(module, vDir); } final VirtualFile vFile = vDir.createChildData(vDir, fileName); VfsUtil.saveText(vFile, text); PsiDocumentManager.getInstance(myProject).commitAllDocuments(); final PsiFile file = PsiManager.getInstance(myProject).findFile(vFile); assert (file != null); result.setResult(file); } }.execute().getResultObject(); }
@Override public boolean execute(@NotNull final ReferencesSearch.SearchParameters queryParameters, @NotNull final Processor<PsiReference> consumer) { return new ReadAction<Boolean>() { protected void run(@NotNull final Result<Boolean> result) { result.setResult(doExecute(queryParameters, consumer)); } }.execute().getResultObject(); }
public static void runUndoableAction(Project project, String name, UndoableAction action, UndoConfirmationPolicy confirmationPolicy) { new WriteCommandAction(project, name) { protected void run(@NotNull final Result result) throws Throwable { action.redo(); UndoManager.getInstance(project).undoableActionPerformed(action); } @Override protected UndoConfirmationPolicy getUndoConfirmationPolicy() { return confirmationPolicy; } }.execute(); }
private VirtualFile createMuleConfigFile(final Project project, final MavenId projectId, final VirtualFile appDirectory) { //final String domainConfigName = projectId.getArtifactId(); final String domainConfigName = "mule-domain-config"; //Currently Mule requires it to be mule-domain-config.xml return new WriteCommandAction<VirtualFile>(project, "Create Mule Domain Config File", PsiFile.EMPTY_ARRAY) { @Override protected void run(@NotNull Result<VirtualFile> result) throws Throwable { try { VirtualFile configFile = appDirectory.findOrCreateChildData(this, domainConfigName + ".xml"); final Properties templateProps = new Properties(); templateProps.setProperty("NAME", projectId.getArtifactId()); final FileTemplateManager manager = FileTemplateManager.getInstance(project); final FileTemplate template = manager.getInternalTemplate(MuleFileTemplateDescriptorManager.MULE_DOMAIN_CONFIGURATION_FILE); final Properties defaultProperties = manager.getDefaultProperties(); defaultProperties.putAll(templateProps); final String text = template.getText(defaultProperties); VfsUtil.saveText(configFile, text); result.setResult(configFile); } catch (IOException e) { showError(project, e); } } }.execute().getResultObject(); }
private VirtualFile createMuleDeployPropertiesFile(final Project project, final MavenId projectId, final VirtualFile appDirectory) { return new WriteCommandAction<VirtualFile>(project, "Create Mule Deploy Properties File", PsiFile.EMPTY_ARRAY) { @Override protected void run(@NotNull Result<VirtualFile> result) throws Throwable { try { VirtualFile configFile = appDirectory.findOrCreateChildData(this, "mule-deploy.properties"); final Properties templateProps = new Properties(); templateProps.setProperty("NAME", projectId.getArtifactId()); final FileTemplateManager manager = FileTemplateManager.getInstance(project); final FileTemplate template = manager.getInternalTemplate(MuleFileTemplateDescriptorManager.MULE_DOMAIN_DEPLOY_PROPERTIES); final Properties defaultProperties = manager.getDefaultProperties(); defaultProperties.putAll(templateProps); final String text = template.getText(defaultProperties); VfsUtil.saveText(configFile, text); result.setResult(configFile); } catch (IOException e) { showError(project, e); } } }.execute().getResultObject(); }
private VirtualFile createMuleConfigFile(final Project project, final MavenId projectId, final VirtualFile appDirectory) { return new WriteCommandAction<VirtualFile>(project, "Create Mule Config File", PsiFile.EMPTY_ARRAY) { @Override protected void run(@NotNull Result<VirtualFile> result) throws Throwable { try { VirtualFile configFile = appDirectory.findOrCreateChildData(this, projectId.getArtifactId() + ".xml"); final Properties templateProps = new Properties(); templateProps.setProperty("NAME", projectId.getArtifactId()); final FileTemplateManager manager = FileTemplateManager.getInstance(project); final FileTemplate template = manager.getInternalTemplate(MuleFileTemplateDescriptorManager.MULE_CONFIGURATION_FILE); final Properties defaultProperties = manager.getDefaultProperties(); defaultProperties.putAll(templateProps); final String text = template.getText(defaultProperties); VfsUtil.saveText(configFile, text); result.setResult(configFile); } catch (IOException e) { showError(project, e); } } }.execute().getResultObject(); }
@Override protected void run(@NotNull Result<Void> result) throws Throwable { if (myNamespace != null && myValue != null) { SuppressLintIntentionAction.ensureNamespaceImported(getProject(), (XmlFile)myTag.getContainingFile(), myNamespace); } myTag.setAttribute(myAttribute, myNamespace, myValue); }
private VirtualFile createMuleDeployPropertiesFile(final Project project, final MavenId projectId, final VirtualFile appDirectory) { return new WriteCommandAction<VirtualFile>(project, "Create Mule Deploy Properties File", PsiFile.EMPTY_ARRAY) { @Override protected void run(@NotNull Result<VirtualFile> result) throws Throwable { try { VirtualFile configFile = appDirectory.findOrCreateChildData(this, "mule-deploy.properties"); final Properties templateProps = new Properties(); templateProps.setProperty("NAME", projectId.getArtifactId()); final FileTemplateManager manager = FileTemplateManager.getInstance(project); final FileTemplate template = manager.getInternalTemplate(MuleFileTemplateDescriptorManager.MULE_DEPLOY_PROPERTIES); final Properties defaultProperties = manager.getDefaultProperties(); defaultProperties.putAll(templateProps); final String text = template.getText(defaultProperties); VfsUtil.saveText(configFile, text); result.setResult(configFile); } catch (IOException e) { showError(project, e); } } }.execute().getResultObject(); }
private VirtualFile createPomFile(final Project project, final MavenId projectId, final String muleVersion, final VirtualFile root) { return new WriteCommandAction<VirtualFile>(project, "Create Mule Project", PsiFile.EMPTY_ARRAY) { @Override protected void run(@NotNull Result<VirtualFile> result) throws Throwable { try { VirtualFile pomFile = root.findOrCreateChildData(this, MavenConstants.POM_XML); final Properties templateProps = new Properties(); templateProps.setProperty("GROUP_ID", projectId.getGroupId()); templateProps.setProperty("ARTIFACT_ID", projectId.getArtifactId()); templateProps.setProperty("VERSION", projectId.getVersion()); templateProps.setProperty("MULE_VERSION", muleVersion); final FileTemplateManager manager = FileTemplateManager.getInstance(project); final FileTemplate template = manager.getInternalTemplate(MuleFileTemplateDescriptorManager.MULE_MAVEN_PROJECT); final Properties defaultProperties = manager.getDefaultProperties(); defaultProperties.putAll(templateProps); final String text = template.getText(defaultProperties); VfsUtil.saveText(pomFile, text); result.setResult(pomFile); } catch (IOException e) { showError(project, e); } } }.execute().getResultObject(); }
public void testBulkUpdate() throws Exception{ final Listener listener = addPomListener(); final PsiFile file = createFile("a.xml", "<a/>"); new WriteCommandAction(getProject()) { @Override protected void run(@NotNull Result result) throws Throwable { final Document document = PsiDocumentManager.getInstance(getProject()).getDocument(file); ((DocumentEx)document).setInBulkUpdate(true); document.insertString(0, " "); commitDocument(document); ((DocumentEx)document).setInBulkUpdate(false); } }.execute(); assertEquals("(Xml document changed)", listener.getEventString().trim()); }
/** * Invokes intention action for the element under cursor. * * @param project the project in which the file is opened. * @param editor the editor for the file. * @param element the element under cursor. * @throws IncorrectOperationException */ @Override public void invoke(@NotNull final Project project, final Editor editor, @NotNull PsiElement element) throws IncorrectOperationException { new WriteCommandAction(project, element.getContainingFile()){ @Override protected void run(@NotNull Result result) throws Throwable { info.getNode().findChildByType(NullShaderTypes.GLSL_PROFILE).getPsi().delete(); } }.execute(); }
/** * Invokes intention action for the element under cursor. * * @param project the project in which the file is opened. * @param editor the editor for the file. * @param element the element under cursor. * @throws IncorrectOperationException */ @Override public void invoke(@NotNull final Project project, final Editor editor, @NotNull PsiElement element) throws IncorrectOperationException { new WriteCommandAction(project, element.getContainingFile()){ @Override protected void run(@NotNull Result result) throws Throwable { ASTNode profileNode = info.getNode().findChildByType(NullShaderTypes.GLSL_PROFILE); editor.getDocument().replaceString(profileNode.getTextRange().getStartOffset(), profileNode.getTextRange().getEndOffset(), newProfile); } }.execute(); }
@Override @NotNull public VirtualFile createFile(@NotNull final String name, final String text) throws IOException { final VirtualFile file = createFile(name); new WriteAction() { @Override protected void run(@NotNull Result result) throws Throwable { VfsUtil.saveText(file, text); } }.execute().throwException(); return file; }
@Override protected void run(@NotNull Result<Object> result) throws Throwable { File moduleLocation = GradleUtil.getModuleDefaultPath(myProject.getBaseDir(), myGradlePath); try { VirtualFile moduleRoot = VfsUtil.createDirectoryIfMissing(moduleLocation.getAbsolutePath()); VirtualFile sourceFile = VfsUtil.findFileByIoFile(myArchivePath, true); if (sourceFile != null && moduleRoot != null) { if (myMove) { sourceFile.move(this, moduleRoot); } else { VfsUtil.copy(this, sourceFile, moduleRoot); } VirtualFile buildGradle = moduleRoot.createChildData(this, SdkConstants.FN_BUILD_GRADLE); VfsUtil.saveText(buildGradle, getBuildGradleText(myArchivePath)); if (mySettingsFile == null) { mySettingsFile = GradleSettingsFile.getOrCreate(myProject); } mySettingsFile.addModule(myGradlePath, VfsUtilCore.virtualToIoFile(moduleRoot)); for (Module module : myModulesToAddDependency) { addDependency(module, myGradlePath); } } } catch (IOException e) { Logger.getInstance(WrapArchiveWizardPath.class).error(e); } }
public static void deleteFacet(final Facet facet) { new WriteAction() { @Override protected void run(@NotNull final Result result) { if (!isRegistered(facet)) { return; } ModifiableFacetModel model = FacetManager.getInstance(facet.getModule()).createModifiableModel(); model.removeFacet(facet); model.commit(); } }.execute(); }
public void testTypingWithColon() { new WriteCommandAction<Void>(null) { @Override protected void run(@NotNull Result<Void> result) throws Throwable { configureByFile("01.yml"); type("a"); type(":"); checkResultByText(null, "a:", true); } }.execute(); }