Skip to content

Commit

Permalink
PR feedback and the like
Browse files Browse the repository at this point in the history
  • Loading branch information
gfinchMD committed Feb 11, 2025
1 parent 263ac4c commit 2e03812
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 9 deletions.
8 changes: 4 additions & 4 deletions core/jvm/src/main/scala/terminus/JLineTerminal.scala
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ package terminus

import org.jline.terminal.{Size, TerminalBuilder, Terminal as JTerminal}
import org.jline.utils.InfoCmp.Capability
import terminus.effect.Eof
import terminus.effect.{Eof, TerminalDimensions}
import TerminalDimensions.*

class JLineTerminal(terminal: JTerminal) extends Terminal {
private val reader = terminal.reader()
Expand Down Expand Up @@ -49,10 +50,9 @@ class JLineTerminal(terminal: JTerminal) extends Terminal {
// Do we need to consider getBufferSize?
// Use getSize if in full screen mode?
// Error handling? Do we want to just return a message detailing the issue?
//
def getDimensions: Unit = {
def getDimensions: effect.TerminalDimensions = {
val terminalSize: Size = terminal.getSize
writer.write(terminalSize.toString)
terminalSize.fromJLineSize
}

def application[A](f: Terminal ?=> A): A = {
Expand Down
6 changes: 4 additions & 2 deletions core/shared/src/main/scala/terminus/Dimensions.scala
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package terminus

/** Functionality for getting the dimensions of the terminal */
import terminus.effect.TerminalDimensions

/** Functionalities related to the dimensions of the terminal */
trait Dimensions {
object dimensions {
def getDimensions: effect.Dimensions ?=> Unit = effect ?=>
def get: effect.Dimensions ?=> TerminalDimensions = effect ?=>
effect.getDimensions
}
}
13 changes: 11 additions & 2 deletions core/shared/src/main/scala/terminus/effect/Dimensions.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
package terminus.effect

/** Functionality for getting the dimensions of the terminal */
import org.jline.terminal.Size

/** Functionalities related to the dimensions of the terminal */
trait Dimensions extends Writer {
def getDimensions: Unit
def getDimensions: TerminalDimensions
}

final case class TerminalDimensions(noOfColumns: Int, noOfRows: Int)

object TerminalDimensions {
extension (size: Size) def fromJLineSize: TerminalDimensions =
TerminalDimensions(size.getColumns, size.getRows)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class DimensionsSuite extends FunSuite {
// readLine() never finishes executing
JLineTerminal.run {
readLine()
JLineTerminal.dimensions.getDimensions
JLineTerminal.dimensions.get
JLineTerminal.flush()
}

Expand Down

0 comments on commit 2e03812

Please sign in to comment.