| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This was on my todo list. What made it urgent was finding that calling
getch() even once while in ncurses caused Kilo to stop detecting arrow
keys. No need to debug that sort of nonsense.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
src/teliva counter.tlv
C-e # switch to editor
C-e # save and quit
C-x # exit
counter.tlv now has the same logical contents, though the whitespace has
changed, and the order of keys is different.
The implementation is utterly ghastly. For one, I'm unnecessarily
interfacing with kilo through the file system.
|
|
|
|
|
|
| |
This assumes we're doing it early soon after opening a new pattern, when
it hasn't yet reached the margins. Quick and dirty, but seems good
enough.
|
| |
|
|
|
|
| |
I had it switching to a dark background on me.
|
|
|
|
| |
Early returns are only worthwhile if they're utterly obvious.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Before we'd end up in cryptic situations where error messages would get
hidden when the program got out of ncurses mode.
Now it's a little nicer with error messages showing up at the bottom of
the editor.
But there's still a problem: there's no way to abort without fixing an
error.
|
|
|
|
|
|
| |
We're not going to enforce that the menu items actually do what they
advertise. It's just a way to draw on the bottom line of screen,
something apps aren't otherwise allowed to do.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
We'll eventually need some interface to add entries to it.
|
|
|
|
| |
The window only matters for output, which seems like a stupid interface.
|
|
|
|
|
| |
Instead we'll include code in the Lua app itself, to minimize the
differences between what runs on regular Lua and what runs on Teliva.
|
| |
|
|
|
|
|
| |
But how do we get curses.getch() to work?
I don't see it implemented in lcurses.
|
|
|
|
|
|
|
| |
Very satisfying to debug the difference between lcurses putting the
module table in an upvalue. Since I implicitly call initstr() rather
than define it as a primitive, I don't need to bother with that. I am
awesome. Lua is awesome for giving me that sense.
|
| |
|
|
|
|
|
| |
I think we now have all the output functions/methods we need. Just some
constants remaining.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
I'm trying to follow the style of lua sources even when they're not my
preference. lcurses code is a bit different.
|
| |
|
|
|
|
|
|
|
|
| |
So why isn't this working?
a = curses:stdscr()
a:addstr(abc)
The error is "attempt to index global 'a' (a userdata value)"
|
|
|
|
|
| |
Makes no difference to the results of:
print(curses:stdscr())
|
|
|
|
|
|
|
|
|
| |
Not quite working. curses.stdscr() is returning userdata, not a window.
This is true even of the raw array example from the book. So we need to
learn something new here. How does lcurses's Pinitscr return a special
window object? From what I can tell it's just putting the results of
lc_newwin() on the stack. Which is the same as my curses_newwin() here.
|
|
|
|
|
| |
print(curses.stdscr())
print(curses:stdscr())
|
|
First piece of working new vocabulary:
print(curses:cols())
Just pulling in code from lcurses for the most part. But I'm trying to
understand its internals as I gradually add them in, after my more blunt
first approach of packaging up lcurses/ext failed.
Overall plan for Teliva's API:
- start out with a 'curses' library that does what people who are used
to ncurses/lcurses expect.
- over time create a more opinionated library called 'screen' or
'window' or something.
|