> Yes. However, I believe that this is what the original ensime code
> intended to do; it only underlines the newlines themselves because
> it's easier to make 1 overlay for all the lines at once and the
> programmer didn't notice it was wrong because it happens to give the
> desired effect in GUI mode.
I think that's the case. The purpose of the underlining is to show where "Scala implicits" are occuring. An implicit is some code brought into scope through imports, often used for silent conversion to inject methods into preexisting datatypes. Essentially that with "traits" are how Scala hacks Haskell typeclasses.
If your statement that uses an implicit happens to span multiple lines, ensime (I believe) just finds the starting and ending points of the statement and applies the face to the entire area. In the GUI, this happens to produce the desired effect of only underlining where characters are (with the newline as well, as mentioned previously). In TTY this places the face over everything, which we don't agree is a bug or not.