@Override public void activate() { // validate hg executable on start and update hg version checkExecutableAndVersion(); // status bar myStatusWidget = new HgStatusWidget(this, getProject(), projectSettings); myStatusWidget.activate(); myIncomingWidget = new HgIncomingOutgoingWidget(this, getProject(), projectSettings, true); myOutgoingWidget = new HgIncomingOutgoingWidget(this, getProject(), projectSettings, false); ApplicationManager.getApplication() .invokeAndWait( new Runnable() { @Override public void run() { myIncomingWidget.activate(); myOutgoingWidget.activate(); } }, ModalityState.NON_MODAL); // updaters and listeners myHgRemoteStatusUpdater = new HgRemoteStatusUpdater( this, myIncomingWidget.getChangesetStatus(), myOutgoingWidget.getChangesetStatus(), projectSettings); myHgRemoteStatusUpdater.activate(); messageBusConnection = myProject.getMessageBus().connect(); messageBusConnection.subscribe( FileEditorManagerListener.FILE_EDITOR_MANAGER, new FileEditorManagerAdapter() { @Override public void selectionChanged(@NotNull FileEditorManagerEvent event) { Project project = event.getManager().getProject(); project.getMessageBus().syncPublisher(BRANCH_TOPIC).update(project, null); } }); myVFSListener = new HgVFSListener(myProject, this); // ignore temporary files final String ignoredPattern = FileTypeManager.getInstance().getIgnoredFilesList(); if (!ignoredPattern.contains(ORIG_FILE_PATTERN)) { final String newPattern = ignoredPattern + (ignoredPattern.endsWith(";") ? "" : ";") + ORIG_FILE_PATTERN; HgUtil.runWriteActionLater( new Runnable() { public void run() { FileTypeManager.getInstance().setIgnoredFilesList(newPattern); } }); } // Force a branch topic update myProject.getMessageBus().syncPublisher(BRANCH_TOPIC).update(myProject, null); }