Merge remote-tracking branch 'origin/master'

This commit is contained in:
Pavel Dolgov
2016-06-28 20:18:04 +03:00
4 changed files with 51 additions and 21 deletions
@@ -170,27 +170,31 @@ public class CreateFileFix extends LocalQuickFixAndIntentionActionOnPsiElement {
text = psiElement.getText();
}
final FileEditorManager editorManager = FileEditorManager.getInstance(directory.getProject());
final FileEditor[] fileEditors = editorManager.openFile(newFile.getVirtualFile(), true);
if (text != null) {
for(FileEditor fileEditor: fileEditors) {
if (fileEditor instanceof TextEditor) { // JSP is not safe to edit via Psi
final Document document = ((TextEditor)fileEditor).getEditor().getDocument();
document.setText(text);
if (ApplicationManager.getApplication().isUnitTestMode()) {
FileDocumentManager.getInstance().saveDocument(document);
}
PsiDocumentManager.getInstance(project).commitDocument(document);
break;
}
}
}
openFile(project, directory, newFile, text);
}
}
catch (IncorrectOperationException e) {
myIsAvailable = false;
}
}
protected void openFile(@NotNull Project project, PsiDirectory directory, PsiFile newFile, String text) {
final FileEditorManager editorManager = FileEditorManager.getInstance(directory.getProject());
final FileEditor[] fileEditors = editorManager.openFile(newFile.getVirtualFile(), true);
if (text != null) {
for(FileEditor fileEditor: fileEditors) {
if (fileEditor instanceof TextEditor) { // JSP is not safe to edit via Psi
final Document document = ((TextEditor)fileEditor).getEditor().getDocument();
document.setText(text);
if (ApplicationManager.getApplication().isUnitTestMode()) {
FileDocumentManager.getInstance().saveDocument(document);
}
PsiDocumentManager.getInstance(project).commitDocument(document);
break;
}
}
}
}
}
@@ -20,6 +20,7 @@ import com.intellij.codeInsight.daemon.impl.quickfix.RenameFileFix;
import com.intellij.codeInspection.LocalQuickFix;
import com.intellij.ide.fileTemplates.FileTemplate;
import com.intellij.ide.fileTemplates.FileTemplateManager;
import com.intellij.ide.fileTemplates.actions.CreateFromTemplateActionBase;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.FileTypeManager;
@@ -169,8 +170,7 @@ public class FileReferenceQuickFixProvider {
if (!isDirectory && myNewFileTemplateName != null) {
Project project = getStartElement().getProject();
FileTemplateManager fileTemplateManager = FileTemplateManager.getInstance(project);
FileTemplate template = fileTemplateManager.getTemplate(myNewFileTemplateName);
if (template == null) template = fileTemplateManager.findInternalTemplate(myNewFileTemplateName);
FileTemplate template = findTemplate(fileTemplateManager);
if (template != null) {
try {
@@ -182,5 +182,24 @@ public class FileReferenceQuickFixProvider {
}
return super.getFileText();
}
private FileTemplate findTemplate(FileTemplateManager fileTemplateManager) {
FileTemplate template = fileTemplateManager.getTemplate(myNewFileTemplateName);
if (template == null) template = fileTemplateManager.findInternalTemplate(myNewFileTemplateName);
return template;
}
@Override
protected void openFile(@NotNull Project project, PsiDirectory directory, PsiFile newFile, String text) {
super.openFile(project, directory, newFile, text);
if (!isDirectory && myNewFileTemplateName != null) {
FileTemplateManager fileTemplateManager = FileTemplateManager.getInstance(project);
FileTemplate template = findTemplate(fileTemplateManager);
if (template != null && template.isLiveTemplateEnabled()) {
CreateFromTemplateActionBase.startLiveTemplate(newFile);
}
}
}
}
}
@@ -107,12 +107,16 @@ public class PydevConsoleRunnerFactory extends PythonConsoleRunnerFactory {
}
Map<String, String> envs = Maps.newHashMap(settingsProvider.getEnvs());
String ipythonEnabled = PyConsoleOptions.getInstance(project).isIpythonEnabled() ? "True" : "False";
envs.put(PythonEnvUtil.IPYTHONENABLE, ipythonEnabled);
putIPythonEnvFlag(project, envs);
return createConsoleRunner(project, sdk, workingDir, envs, PyConsoleType.PYTHON, settingsProvider, setupFragment);
}
public static void putIPythonEnvFlag(@NotNull Project project, Map<String, String> envs) {
String ipythonEnabled = PyConsoleOptions.getInstance(project).isIpythonEnabled() ? "True" : "False";
envs.put(PythonEnvUtil.IPYTHONENABLE, ipythonEnabled);
}
protected PydevConsoleRunner createConsoleRunner(Project project,
Sdk sdk,
String workingDir,
@@ -38,6 +38,7 @@ import com.intellij.xdebugger.XDebugProcessStarter;
import com.intellij.xdebugger.XDebugSession;
import com.intellij.xdebugger.XDebuggerManager;
import com.jetbrains.python.PythonHelper;
import com.jetbrains.python.console.PydevConsoleRunnerFactory;
import com.jetbrains.python.console.PythonConsoleView;
import com.jetbrains.python.console.PythonDebugConsoleCommunication;
import com.jetbrains.python.console.PythonDebugLanguageConsoleView;
@@ -316,6 +317,8 @@ public class PyDebugRunner extends GenericProgramRunner {
environment.put(PYDEVD_FILTER_LIBRARIES, "True");
}
PydevConsoleRunnerFactory.putIPythonEnvFlag(project, environment);
addProjectRootsToEnv(project, environment);
addSdkRootsToEnv(project, environment);
}