| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
| |
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 add version control soon.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
kilo.c is still calling exit() in several places that we'll need to
gradually clean up.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
From https://github.com/antirez/kilo
Source code description: https://viewsourcecode.org/snaptoken/kilo
BSD 2-clause license seems identical to the MIT in the current codebase.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
We'll eventually need some interface to add entries to it.
|
|
|
|
| |
The window only matters for output, which seems like a stupid interface.
|
|
|
|
|
| |
We're going to set aside a portion of the screen soon that apps can't
touch.
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
There's something strange in the combination of Lua 5.1 and lcurses:
window.getch() returns a char but curses.getch() returns an int.
|
| |
|
| |
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
a = array.new(1000)
for i=1,1000 do
a:set(i, 1/i)
end
print(a:get(10)) -- 0.1
|
| |
|