myCharset = charset;
}
-
@Override
public boolean init(Questioner q) {
return true;
@Override
public void write(byte[] bytes) throws IOException {
myProcessHandler.getProcessInput().write(bytes);
+ myProcessHandler.getProcessInput().flush();
}
@Override
@Override
public void write(String string) throws IOException {
myProcessHandler.getProcessInput().write(string.getBytes(myCharset));
+ myProcessHandler.getProcessInput().flush();
}
@Override
import com.intellij.openapi.util.Key;
import com.intellij.openapi.vfs.encoding.EncodingProjectManager;
import com.jediterm.terminal.HyperlinkStyle;
+import com.jediterm.terminal.TerminalKeyEncoder;
import com.jediterm.terminal.TerminalStarter;
import com.jediterm.terminal.TtyConnector;
import com.jediterm.terminal.model.JediTerminal;
private Project myProject;
private final AppendableTerminalDataStream myDataStream;
+ private final TerminalKeyEncoder myKeyEncoder = new TerminalKeyEncoder();
+
+ {
+ myKeyEncoder.setAutoNewLine(true);
+ }
+
public TerminalExecutionConsole(@NotNull Project project, @NotNull ProcessHandler processHandler) {
myProject = project;
final JBTerminalSystemSettingsProviderBase provider = new JBTerminalSystemSettingsProviderBase() {
myTerminalWidget = new JBTerminalWidget(project, 200, 24, provider, this) {
@Override
protected TerminalStarter createTerminalStarter(JediTerminal terminal, TtyConnector connector) {
- return new TerminalStarter(terminal, connector, myDataStream);
+ return new TerminalStarter(terminal, connector, myDataStream) {
+ @Override
+ public byte[] getCode(int key, int modifiers) {
+ if (key == 10) {
+ return myKeyEncoder.getCode(key, modifiers);
+ } else {
+ return super.getCode(key, modifiers);
+ }
+ }
+ };
}
};
}
});
}
-
+
private void printText(@NotNull String text, @Nullable ConsoleViewContentType contentType) throws IOException {
if (contentType != null) {
myDataStream.append(encodeColor(contentType.getAttributes().getForegroundColor()));