Skip to content

Commit

Permalink
Fix for issue dcaoyuan#141: Use correct jline parameters per OS
Browse files Browse the repository at this point in the history
  • Loading branch information
Jonathan Zimmerman [NTD] authored and Jonathan Zimmerman [NTD] committed Jan 18, 2017
1 parent 348497b commit b7abd88
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 9 deletions.
3 changes: 3 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@
<sbt.version>0.13.1</sbt.version>
<scalariform.version>0.1.5</scalariform.version>

<!-- external dependencies -->
<libs.commons-lang3.version>3.5</libs.commons-lang3.version>

<!-- module versions -->
<libs.sbt.version>0.13.5.1</libs.sbt.version>
<libs.scala.version>2.11.3.1</libs.scala.version>
Expand Down
6 changes: 6 additions & 0 deletions scala.sbt/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,12 @@
<artifactId>org-netbeans-libs-sbt</artifactId>
<scope>runtime</scope>
</dependency>

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${libs.commons-lang3.version}</version>
</dependency>
</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import javax.swing.JTextPane
import javax.swing.SwingUtilities
import javax.swing.UIManager
import javax.swing.text.DefaultCaret
import org.apache.commons.lang3.SystemUtils
import org.netbeans.api.extexecution.ExecutionDescriptor
import org.netbeans.api.extexecution.ExecutionService
import org.netbeans.api.progress.ProgressHandle
Expand Down Expand Up @@ -170,15 +171,7 @@ class SBTConsoleTopComponent private (project: Project, val isDebug: Boolean) ex
args += s"-XX:MaxPermSize=${maxPermGenSize}m"

//args += "-Dsbt.log.noformat=true"
/**
* @Note:
* jline's UnitTerminal will hang in my Mac OS, when call "stty(...)", why?
* Also, from Scala-2.7.1, jline is used for scala shell, we should
* disable it here by add "-Djline.terminal=jline.UnsupportedTerminal"?
* And jline may cause terminal unresponsed after netbeans quited.
*/
args += "-Djline.terminal=unix"
args += "-Djline.WindowsTerminal.directConsole=false"
args ++= jlineArgs

// TODO - turn off verifier?

Expand Down Expand Up @@ -361,6 +354,21 @@ object SBTConsoleTopComponent {
SwingUtilities.invokeLater(runnableTask)
}

/**
* @Note:
* jline's UnitTerminal will hang in my Mac OS, when call "stty(...)", why?
* lAlso, from Scala-2.7.1, jline is used for scala shell, we should
* disable it here by add "-Djline.terminal=jline.UnsupportedTerminal"?
* And jline may cause terminal unresponsed after netbeans quited.
*/
private lazy val jlineArgs: Seq[String] = {
val osMap = Seq(
(SystemUtils.IS_OS_WINDOWS, Seq("-Djline.terminal=windows", "-Djline.WindowsTerminal.directConsole=false")), // NOI18N
(SystemUtils.IS_OS_UNIX, Seq("-Djline.terminal=unix"))) // NOI18N

osMap.find(_._1).map(_._2).getOrElse(Seq("-Djline.terminal=jline.UnsupportedTerminal")) // NOI18N
}

class SbtConsoleTerminal(_area: JTextPane, pipedIn: PipedInputStream, welcome: String) extends ConsoleTerminal(_area, pipedIn, welcome) {

@throws(classOf[IOException])
Expand Down

0 comments on commit b7abd88

Please sign in to comment.