| Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
This is in response to a comment left on a35e7ea. Backwards compatibility
is a good idea for at least a release.
|
|
The first point of this commit is to allow all options to be read from
lua. This has a number of uses for plugin writers. They are grouped into
a couple of tables depending on what they control:
`vis.options`: table with global configuration
`win.options`: table with window specific configuration
The second point is to allow you to set all these options as if they
were simply lua variables. Technically this is already possible by
using `vis:command("set ...")` but personally I think this interface
is cleaner. Note that this already possible for some things like the
current mode (eg. vis.mode = vis.modes.VISUAL). Examples:
`vis.options.ai = true`
`win.options.brk = " !?."`
`win.options = { showeof = true, showtabs = true }
There are a number of related issues and pull requests:
closes #803: Lua API: let plugins read the values of options
closes #812: Window layout property
supersedes/closes #717: Add ability to access tabwidth from Lua
supersedes/closes #1066: expose UI layout and allow it to be set from lua API
|
|
this is contolled by the wrapcolumn/wc and breakat/brk options
related #142: Word wrap and line breaks
related #932: Vis for Prose?
related #1092: Disabling line wrapping
|
|
This enables restoring the terminal from a fullscreen command like
curses based program. Use cases are e.g. a file picker based on some
external program like nnn (https://github.com/jarun/nnn).
|
|
this slipped through in commit 6be370d
|
|
Fixes #1060 - :help doesn't display mappings starting with <Space>
correctly
Co-authored-by: Randy Palamar <palamar@ualberta.ca>
|
|
|
|
This makes it thread safe. While it is unlikely that we use threads in
the near future, it is sensible to avoid unnecessary global state.
|
|
Add a global ignorecase boolean option. When set add REG_ICASE to cflags
when calling text_regex_compile().
|
|
|
|
This can for example be used to abort git commit messages with :q! 1.
|
|
This introduces a new `set` option for setting the layout to
vertical or horizontal, which previously could not be done
without creating a new window (via `split` or `vsplit`).
Now, `set layout|lay h|v` will control this without creating
a new window.
|
|
Valid values are `read`, `mmap` or `auto`.
|
|
Conflicts:
view.c
view.h
|
|
|
|
|
|
Rename some structures, add typedefs for function pointers, remove unused
arguments from vis_run.
|
|
|
|
This should fix the ressource leak as found by CID 142510.
|
|
|
|
|
|
It is no longer possible to change the used syntax by assigning to the
`win.syntax = name` field, instead the function win:set_syntax(name)`
should be called.
The distinction between filetype and syntax lexer to use should probably
be clarified/cleaned up at some point.
|
|
|
|
The intention of this is not to slowly reimplement curses but to provide
a minimal working terminal UI backend which can also be used for debugging,
fuzzing and in environments where curses is not available.
Currently no attempt is made to optimize terminal output. The amount of
flickering will depend on the smartness of your terminal emulator.
|
|
It does not really fit into the style of the rest of
the command language. Eventually we should be able
to express this kind of thing using a looping construct
based on the `X` and `Y` commands.
|
|
Fix #505
|
|
$ ./configure --disable-help
shrinks the binary by about 20K on a x86_64 system.
|
|
|
|
|
|
|
|
The argument needs to be a valid regular expression. It currently
clobbers the last used search term and hence allows repeated searches
using `n` and `N` respectively.
|
|
Terminal.app sets $TERM=xterm-256color and ships a corresponding
terminfo description advocating that it is capable of color changes
to the 256 color palette when in fact it can not.
We introduce a new boolean option "change-256colors" which is
true by default but can be used to disable color changes. It is
automatically set if Terminal.app is detected using $TERM_PROGRAM.
This should fix display artifacts as described in #456.
|
|
While memory consumption should be improved, backward searches
will still be slow, because they are implemented in terms of
repeated forward searches. It needs to be investigated whether
the underlying automaton can have its transitions reversed and
essentially run backwards, as is the case in sam.
|
|
Close #458
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fix #447
|
|
The handling of :unmap needs to be revisited at some point.
|
|
Boolean options can be toggled by appending `!` to the option name.
Close #435
|
|
|
|
Close #433
|
|
Specifies how the current file should be saved, `atomic` which uses
rename(2) to atomically replace the file, `inplace` which truncates the
file and then rewrites it or `auto` which tries the former before falling
back to the latter. The rename method fails for symlinks, hardlinks,
in case of insufficient directory permissions or when either the file
owner, group, POSIX ACL or SELinux labels can not be restored.
The option defaults to `auto`.
|
|
Only accept numbers in range [0, INT_MAX]. Reject trailing garbage,
where before something like `:set cc 50NaN` worked it will now cause
an error.
Close #418
|
|
When a file is opened in multiple windows we could end up in an
inconsistent state by doing:
$ vis some-file
:spl
:e
At this point the two windows were referencing different file objects
thus changes in one would not affect the other although they have
the same path.
Another option would be to reload all windows currently displaying
the file being reloaded. We opt for the simpler fix for now.
|
|
The `:!` command did redirect stdout to a pipe which was used by
`vis-menu` to return the selected entry. However, this breaks
other interactive commands such as `:!/bin/sh` where command
output was never displayed. Instead we modified `vis-menu` to
re-open /dev/tty for its user interface which makes it work
as a regular filter `:|`
This patch also obsoletes the interactive flag previously passed
to the vis_pipe function. Interactive mode is instead enabled
by piping an invalid range.
|