I've made more changes (again), they are pretty substantial.
A minor change is that I added colored text to model yesterday (+ default red for errors, yellow for your lines, green for hints).
The major change is that there is no more single class console, there now are three classes (or more like one + two helpers/interfaces): Model, View and Input.
1. Model is not dependant on anything except Lua now and provides all the console stuff.
2. View has to read messages and colors from Model and prepare drawing data (and then draw it when needed) out of them.
3. Input has to call the public model functions to move cursor, input text, etc.
4. View and Input are of course one pair per library (SFML, SDL, etc.) but they don't deal with any Lua at all.
4a. Of course there is SFML input and view class in the repo.
5. The Model + View + Input is not enforced (but is really idiomatic IMO), you can do anything with the LuaConsoleModel class via its' public API.
Here's a screen of colors in action (much clearer already, IMO):
Also, I only typed "h" before pressing tab and completion (which is tiny bit smarter that way now) seen that all hints have common prefix of "hi" so it completed up to that for me as well as display the hints themselves.
There is also a piece of trivia called "LinesOfCode.txt" which has output from cloc ran in pre-commit hook.