|
1 | 1 | import com.intellij.codeInsight.intention.impl.QuickEditAction; |
| 2 | +import com.intellij.openapi.application.ApplicationManager; |
| 3 | +import com.intellij.openapi.command.CommandProcessor; |
| 4 | +import com.intellij.openapi.command.UndoConfirmationPolicy; |
| 5 | +import com.intellij.openapi.editor.Document; |
2 | 6 | import com.intellij.openapi.editor.Editor; |
| 7 | +import com.intellij.openapi.fileEditor.FileDocumentManager; |
3 | 8 | import com.intellij.openapi.project.Project; |
4 | 9 | import com.intellij.openapi.util.Iconable; |
| 10 | +import com.intellij.openapi.vfs.ReadonlyStatusHandler; |
| 11 | +import com.intellij.openapi.vfs.VirtualFile; |
5 | 12 | import com.intellij.psi.PsiClass; |
6 | 13 | import com.intellij.psi.PsiFile; |
| 14 | +import com.intellij.psi.PsiFileFactory; |
7 | 15 | import com.intellij.psi.PsiJavaFile; |
| 16 | +import com.intellij.psi.codeStyle.CodeStyleManager; |
8 | 17 | import com.intellij.util.IncorrectOperationException; |
9 | 18 | import org.apache.http.client.utils.URIBuilder; |
10 | 19 | import org.jetbrains.annotations.NotNull; |
11 | 20 |
|
12 | 21 | import javax.swing.*; |
13 | 22 | import java.io.BufferedReader; |
| 23 | +import java.io.IOException; |
14 | 24 | import java.io.InputStreamReader; |
15 | 25 | import java.net.MalformedURLException; |
16 | 26 | import java.net.URISyntaxException; |
@@ -48,7 +58,7 @@ public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile psiF |
48 | 58 | } |
49 | 59 |
|
50 | 60 | @Override |
51 | | - public void invoke(@NotNull Project project, Editor editor, PsiFile psiFile) throws IncorrectOperationException { |
| 61 | + public void invoke(@NotNull Project project, Editor editor, final PsiFile psiFile) throws IncorrectOperationException { |
52 | 62 | String code = psiFile.getText(); |
53 | 63 | Scanner scanner = new Scanner(code); |
54 | 64 | List<String> linesOfCode = new ArrayList<>(); |
@@ -103,13 +113,20 @@ public void invoke(@NotNull Project project, Editor editor, PsiFile psiFile) thr |
103 | 113 | new InputStreamReader( |
104 | 114 | javaCodeConnection.getInputStream())); |
105 | 115 | String javaCodeInput; |
106 | | - StringBuilder metadataResponse = new StringBuilder(); |
107 | | - while ((javaCodeInput = javaCodeBufferReader.readLine()) != null) |
108 | | - metadataResponse.append(javaCodeInput); |
109 | | - |
110 | | - //Line formatting lost... |
111 | | - editor.getDocument().setText(metadataResponse); |
| 116 | + StringBuilder javaCodeResponse = new StringBuilder(); |
| 117 | + while ((javaCodeInput = javaCodeBufferReader.readLine()) != null) { |
| 118 | + javaCodeResponse.append(javaCodeInput); |
| 119 | + //All documents inside IntelliJ IDEA always use \n line separators. |
| 120 | + //http://confluence.jetbrains.net/display/IDEADEV/IntelliJ+IDEA+Architectural+Overview |
| 121 | + javaCodeResponse.append("\n"); |
| 122 | + } |
112 | 123 |
|
| 124 | + Document document = FileDocumentManager.getInstance().getDocument(psiFile.getVirtualFile()); |
| 125 | + if (document != null) { |
| 126 | + document.setText(javaCodeResponse); |
| 127 | + } else { |
| 128 | + //Show error |
| 129 | + } |
113 | 130 | } catch (Exception e) { |
114 | 131 | //Log with IDEA bubble |
115 | 132 | e.printStackTrace(); |
|
0 commit comments