mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
+21
-17
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+21
-2
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user