summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-06-16vis-clipboard: Add a manpage.Tim Allen
2016-05-29Merge branch 'vis-open-cleanup' of https://github.com/Screwtapello/visMarc André Tanner
2016-05-29vis-menu: improve empty prompt handling (vis-menu -p '')Marc André Tanner
The textw{,n} functions should probably be changed to not accomodate for leading and trailing spaces. They should also be changed to properly calculate the display width of an UTF-8 encoded string. Currently they will just return the number of codepoints which is obviously wrong.
2016-05-29vis-menu: reduce indentation level of switch statementsMarc André Tanner
2016-05-29vis-menu: more cleanupMarc André Tanner
2016-05-29sam: use more suitable error message if no command is givenMarc André Tanner
2016-05-28vis: try to reduce number of redrawsMarc André Tanner
This is a not yet successful attempt to reduce terminal flickering when resizing windows as is for example the case when entering command mode. UI related debug output can be enabled with: $ make CFLAGS=-DDEBUG_UI=1 $ ./vis > log
2016-05-28lexer: add lexer for Google protocol buffer IDLDavid B. Lamkins
Close #326
2016-05-28[vis-menu] Document the initial-filter parameter.Tim Allen
2016-05-28[vis-open] Don't use realpath(1).Tim Allen
Despite how useful realpath is, apparently it's not POSIX and isn't part of the BSD userland.
2016-05-28[vis-open] Handle filenames with spaces and tabs.Tim Allen
We still don't handle filenames that contain newlines, but we're pressing against the limits of what portable POSIX shell can do. Besides which, we're ultimately plumbing filenames into vis-menu which uses newlines as a delimiter *anyway*, so there's not much we can do.
2016-05-28[vis-open] Actually use '--' where it's useful.Tim Allen
2016-05-28[vis-open] Fix '--' to actually work.Tim Allen
2016-05-28Rewrite vis-open to be more robust.Tim Allen
Rather than try to loop manually and build up a path, this new version exec's itself for each new directory scanned. Functional changes include: - We `set -e` at the top of the script, so any surprising permission-denied errors will automatically cause the script to exit with a helpful error message. - We now support the GNU "--" convention for splitting options from filename arguments, just in case somebody happens across a directory with a file named "-h" or "-p". - If launched with a single filename parameter, we automatically return it - if somebody writes ":e somepattern*" and it matches exactly one file, we might as well open it directly. - If we select a single filename parameter, we use `realpath` to build an absolute path for it - much more reliable than trying to build up a path while the user is navigating around. - If launched with a single directory parameter, we change into that directory and re-exec ourselves with ".." and all the files in that directory as arguments. This means we don't have to handle selection and recursion at the same time. - Note that if we recurse into a directory, we pass the "-f" parameter to suppress auto-selection - otherwise recursing into an empty directory would immediately select the ".." entry and pop you back out, which would be confusing. - The new version doesn't bother trying to manipulate `$VIS_MENU_ARGS` and sometimes add a prompt to it. Setting no prompt is the same as setting the prompt to an empty string, so we can just use an empty string as the default value. One specific use-case that this change cleans up is giving ":e" a pattern that matches multiple directories (for example, running ":e *e*" in the root of the vis repo). "ls -1" would list the contents of each directory (without a prefix, so you couldn't select those files) but would also print the directory names as headings followed by a colon, so you couldn't usefully select the directory names either. We get around this by only ever running "ls -1" without any arguments, so it only scans the current directory.
2016-05-28[vis-menu] Add a manpage.Tim Allen
Unlike the existing vis(1) manpage, this uses the `mdoc` macro set because it's (very slightly) more modern, and OpenBSD only supports `mdoc` while everybody else supports both.
2016-05-28[vis-menu] Remove unused keybinding.Tim Allen
I'm guessing at some point slmenu's author wanted to make the various deletion commands move text to a kill-buffer, and then Insert and Control-Y could yank from it back into the text field. That clearly never happened, though, so this is dead code.
2016-05-26ui: properly redraw status line when window focus changesMarc André Tanner
2016-05-26vis: use normalized absolute file names as internal representationMarc André Tanner
Try to display a shorthand version in the status bar, this currently only works for files below the current working directory of the editor process.
2016-05-24vis-lua: cleanup Lua status bar display codeMarc André Tanner
2016-05-24vis: cleanup C status bar display codeMarc André Tanner
2016-05-24Add utility function to calculate display width of a stringMarc André Tanner
This is based on the implementation of text_line_width_get from text-motions.c. There might be an opportunity for code sharing.
2016-05-24vis-lua: improve error handling when loading visrc.luaMarc André Tanner
If loading fails because visrc.lua is not found, then simply display an information message. However if there is a syntax error, display a complete stack trace. This fixes commit 352155889aad57f8cb6d20317ffef81073fb6533.
2016-05-24vis-lua: add debug infrastructure to trace object lifetimeMarc André Tanner
Output will be printed to stdout and can be enabled by: $ make debug CFLAGS=-DDEBUG_LUA=1 $ ./vis > log This commit also tries to make object creation slightly more robust.
2016-05-22vis: only display mode in status bar of active windowMarc André Tanner
2016-05-22vis-lua: introduce light references for short lived objectsMarc André Tanner
Light object references are used to type check, but contrary to full object references they are not stored in the Lua registry. This means that they are not bound to the object lifetime of their corresponding C object. Hence such objects must not be used after they have been free(3)-ed by the editor core. Such lightweight object references are always re-created, thus custom properties will not be stored across subsequent accesses. For now light object references are only used for cursor objects. This should ix the crashes introduced by the recent changes which make heavy use of the Lua API.
2016-05-22Add a newline at the end of the fileSilvan Jegen
This is encouraged by the ISO C99 standard.
2016-05-22Remove unneeded header importSilvan Jegen
2016-05-22vis: load default styles even for unknown file typesMarc André Tanner
2016-05-22vis-lua: fall back to C status bar handling if the Lua implementation is not ↵Marc André Tanner
available
2016-05-22vis-lua: do not report errors recursivelyMarc André Tanner
Displaying an error might create a new window which in turn can trigger new events (all other windows are resized+redrawn) which might again cause errors. There is still no sane way to exit the editor in this case, but at least the error messages should be readable.
2016-05-22vis: refactor status line handlingMarc André Tanner
Make window status bar content configurable via Lua.
2016-05-22vis-lua: add win:status functionMarc André Tanner
2016-05-22vis: add function to change window statusbar contentMarc André Tanner
2016-05-22vis-lua: add vis.recording propertyMarc André Tanner
2016-05-22vis-lua: add window.{width, height} read only propertiesMarc André Tanner
2016-05-22vis: add functions to query window sizeMarc André Tanner
2016-05-22vis-lua: add vis.VERSION propertyMarc André Tanner
It is a string in `git describe` format, as reporte by `vis -v`.
2016-05-22vis: consider :set horizon setting when syntax highlightingMarc André Tanner
2016-05-22lexer: return nil if lexer loading failsMarc André Tanner
2016-05-22vis: move syntax highlighting to pure Lua codeMarc André Tanner
2016-05-22vis-lua: add window.viewport rangeMarc André Tanner
2016-05-22vis-lua: add bindings for new view style functionsMarc André Tanner
2016-05-22view: add functions to style a file rangeMarc André Tanner
2016-05-22ui: s/UiStyles/UiStyle/gMarc André Tanner
2016-05-22vis-lua: cleanup vis.MODE_* constants handlingMarc André Tanner
2016-05-22vis: always start vis-menu with -b flagMarc André Tanner
2016-05-22We don't use slmenu, so don't mention it.Tim Allen
2016-05-22vis-menu: do not segfault if an option lacks an argumentTim Allen
2016-05-20implement xread() and wrap read() + die()Christian Hesse
2016-05-20ignore vis-menuChristian Hesse