Initial commit. lencurses.c is in a solid state and provides most of the
Lua-C-Bindings to ncurses that lenie currently needs. lenie.lua is in a
pre-alpha prototyping stage and all about testing out the functionality
of lencurses.
Vertical cursor navigation (selecting the next/previous entry in the
focussed directory) is now restricted by the number of entries (so that
you can't navigate the void).
Implemented bindings to several more ncurses functions that are useful
for lenie. They have all been tested and verified by testing code in
lenie.lua, which is still only for prototyping but shows promising
results so far.
The prototype now sorts the directory content.
Entering directories is now implemented in the prototype. This completes
horizontal navigation and the prototype is now able to browse and
display the filesystem.
Visibility of dotfiles can now be toggled in the prototype.
Little lenie.lua left the prototype phase. The application layer is
pretty clean now, glueing together more specialized modules for
navigation and management of the visual representation. Actual feature
development can start now.
Simplified the global state management by storing the global state in a
module that every module with a need to access the global state can
simply require().
Implemented simple directory preview in detail window when selecting a
directory.
Fixed bug that would crash the program when entering an empty directory.
Added prototype for input command strings and tested it with the
nav.find_entry() function. For that I also extended lencurses.c to
provide a call to mvwgetstr.
Implemented reverse search.
Implemented color coding depending on directory entry type. Files are
displayed normal, directories are green, links are blue, etc.
Directory entries now get their colors back after being highlighted
Relocated several closure contained (private) variables from specialized
modules to the global state module for easier communication and cleaner
structure. Also fixed bugs that would cause crashes when trying to enter
or select directories without the necessary permission.
First iteration of scrolling implemented. The discrepancy between
indexing of Lua (1) and C (0) is now important. Scrolling now works as
expected and also respects window bounderies, but newly visible
directory entries are ... not yet visible.
Renamed function that contains the scrolling logic to a more apropriate
name and fixed the highlighting that was off due to Lua/C-index
discrepancy.
Completed the implementation of scrolling.
Fixed a bug in vm.selectrow where entries would not
get the correct color assigned when de-selected.
Fixed a bug where the string describing the directory would start with
"//" after having visited the root directory once.