This release has been long in the works but its time now. There
have been many additions and bugfixes since 0.8. In particular
changes to the Lua API have made it easier to extend `vis` in all
sorts of ways that were previously difficult or impossible. As
always the appreciation towards contributors new and old can not
be understated; thanks goes out to everyone for their efforts!
A summary of changes follows:
Compare non-existing files by name and existing files by inode
Do tilde expansion only for the tilde character at the beginning of the pattern.
Add word wrapping via breakat and wrapcolumn options
Add ansi escaping values and theming keyword for dimmed text
Allow statusbar to disabled
Default theme was changed to one that uses the terminal colors directly.
filetype: support filetype detection via hashbang
filetype: many new file extensions are covered
Resync the lexers with Scintillua
Implement Selection:remove()
Allow underscore (_) in command names
Allow nil in vis:pipe() File and Range parameters
Add fullscreen param to vis_pipe_collect() and vis:pipe()
Access and set all available editor options
Implementation of the non-blocking process running Lua API
Make expandtab and tabwidth options window-local
Drop redrawtime option
Add a Lua constant for UI_STYLE_LEXER_MAX
Report viewport as lines in addition to bytes
Add `win:style_pos()` for styling a specific window cell.
Add `UI_DRAW` event for last minute changes to the drawn window.
Report viewport dimensions
Add a basic .editorconfig file
Don't set _FORTIFY_SOURCE in configure
Many documentation improvements.
Make vis-open and vis-complete more POSIX compliant
vis-clipboard: clean up bashisms and make shellcheck happy.
vis-clipboard: add support for wayclip
vis-open: allow to show files vertically
fix warning by dealing with error value from fchdir in text-io.c
text-io: close "cwd" in all cases
vis-complete: Fix commandline options handling
vis-clipboard: make xsel honor --selection
wl-paste and wl-copy should not add \n to the end of the clipboard.
fix a bug with using regex to close windows (i.e. `:X/re/q`)
Limit to lines within range for inner text objects
vis-clipboard: don't fail when sel is primary on unsupported platforms
fix { moving back too much if cursor is at start of a line
Print keybindings containing space correctly in help window
Prevent flickering in curses
vis-menu: try to preserve valid Unicode points
lua: make sure lpeg is in fact optional
vis-single: respect TMPDIR
lua: fail when mapping a key to an invalid handler type
vis_pipe: correctly return non-zero exit status
view: skip empty cells before applying a style
sam: reject invalid ranges for cmd_extract ("x"/"y")
Fix upper/lower case conversions with `gU` and `gu`.
lua: complete-word: use internal regex for splitting words
Theme application was refactored and should be more consistent now.
The option names `show-spaces`, `show-tabs`, `show-newlines`,
`show-eof`, and `change-256colors` are all deprecated and will be
removed for the next release, use the name without the `-` instead
(e.g. showeof). This was done to avoid inconsistencies between the
lua option names and the `:set option` names.
The complete changelog can be viewed on
https://git.sr.ht/~martanne/vis/log/v0.9
- Update to 0.8:
- build: add git based version information back
- lexers: fix bug in bash lexer for last here-doc
- vis: make O implementation independent of <Up> mapping
- fix typos in comments
- lua: fix luacheck warnings
- vis: rename to/till motion internals
- vis: implement multiline to/till motions
- vis-lua: provide file.permission property
- Mention pkg-config in README
- lexers/strace: improve comments, field names and syscall results
- lexers/git-rebase: also highlight break command
- filetype: Set "bash" for APKBUILD and .ebuild.
- filetype: Detect make shebang for "makefile".
- Adding .sv extension to verilog syntax highlighter
- build: update alpine in docker build to version 3.13
- sam: only skip the last empty match if it follows a newline
- sam: produce empty match at the end of looped range
- test: update
- gitignore: remove vim specific swap files
- sam: tweak handling of zero length matches in y commands
- sam: simplify trailing match handling for x/y commands
- vis: correctly close pipe connected to stdin of external process
- add lua5.4 in configure script
- vis: Add readline Ctrl+A/E bindings
- ci: verify codecov script before using it
- ci: verify coverity scan script before using it
- filetype: Set "groovy" for Jenkinsfile
- README: x/freenode/c/libera/
- Set version to 0.8
OBS-URL: https://build.opensuse.org/request/show/1032706
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/vis?expand=0&rev=7
- build: add git based version information back
- lexers: fix bug in bash lexer for last here-doc
- vis: make O implementation independent of <Up> mapping
- fix typos in comments
- lua: fix luacheck warnings
- vis: rename to/till motion internals
- vis: implement multiline to/till motions
- vis-lua: provide file.permission property
- Mention pkg-config in README
- lexers/strace: improve comments, field names and syscall results
- lexers/git-rebase: also highlight break command
- filetype: Set "bash" for APKBUILD and .ebuild.
- filetype: Detect make shebang for "makefile".
- Adding .sv extension to verilog syntax highlighter
- build: update alpine in docker build to version 3.13
- sam: only skip the last empty match if it follows a newline
- sam: produce empty match at the end of looped range
- test: update
- gitignore: remove vim specific swap files
- sam: tweak handling of zero length matches in y commands
- sam: simplify trailing match handling for x/y commands
- vis: correctly close pipe connected to stdin of external process
- add lua5.4 in configure script
- vis: Add readline Ctrl+A/E bindings
- ci: verify codecov script before using it
- ci: verify coverity scan script before using it
- filetype: Set "groovy" for Jenkinsfile
- README: x/freenode/c/libera/
- Set version to 0.8
OBS-URL: https://build.opensuse.org/package/show/editors/vis?expand=0&rev=17
- Update to the released version 0.7:
This is mostly a bug fix release with fixes for a few cases of
undefined behavior and preliminary work for experimentation with
different core text management data structures and general editor
architecture.
- fix UB in core text management data structure
- text refactoring, splitting out reusable text iterator and I/O
components
- new *at() variants taking directory descriptor for file load/save
API
- more efficient initial file read, avoiding spurious syscalls and
copy
- text API cleanups, const correctness improvements
- increased test coverage for core text data structure
- support for Lua 5.4
- Lua API improvements: vis.mark, vis.register, vis.win.file.modified
- and support for terminal CSI events
- NetBSD support
- new :set ignorecase option to search case independently
- new visual mode mapping <C-a> to select all matching selections
- fix mappings involving non-leading <C-c>
- minor file detection fixes for racket, node.js modules, Typescript
and liliypond
- new lexers for Zig, meson build system, Mikrotik RouterOS scripts,
Gemini
- improved inner word text object and its use for <C-n> in normal mode
- improved <C-n> behavior in visual mode
- removed ie, ae inner/outer entire text object, use :, as shorthand
for :0,$
- removed pairwise selection combinators z>, z<, z-, z+, z&, z|
- remove ~ as alias for g~
- use ~ instead of ! for selection complement
- remove special key and window related aliases
- vis-open(1) adds a trailing slash to indicate folders
- add primary clipboard support to vis-clipboard(1)
- support wayland clipboard using wl-clipboard(1)
- new Makefile targets: distclean, testclean
OBS-URL: https://build.opensuse.org/request/show/854112
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/vis?expand=0&rev=5
This is mostly a bug fix release with fixes for a few cases of
undefined behavior and preliminary work for experimentation with
different core text management data structures and general editor
architecture.
- fix UB in core text management data structure
- text refactoring, splitting out reusable text iterator and I/O
components
- new *at() variants taking directory descriptor for file load/save
API
- more efficient initial file read, avoiding spurious syscalls and
copy
- text API cleanups, const correctness improvements
- increased test coverage for core text data structure
- support for Lua 5.4
- Lua API improvements: vis.mark, vis.register, vis.win.file.modified
- and support for terminal CSI events
- NetBSD support
- new :set ignorecase option to search case independently
- new visual mode mapping <C-a> to select all matching selections
- fix mappings involving non-leading <C-c>
- minor file detection fixes for racket, node.js modules, Typescript
and liliypond
- new lexers for Zig, meson build system, Mikrotik RouterOS scripts,
Gemini
- improved inner word text object and its use for <C-n> in normal mode
- improved <C-n> behavior in visual mode
- removed ie, ae inner/outer entire text object, use :, as shorthand
for :0,$
- removed pairwise selection combinators z>, z<, z-, z+, z&, z|
OBS-URL: https://build.opensuse.org/package/show/editors/vis?expand=0&rev=13
- Update to the released version 0.6 (all changes since 0.5):
- bounded time syntax highlighting using the :set redrawtime
option
- support optional count for sam's text commands e.g. :i3/-/
- make <C-n> in visual mode match next occurence of existing
selection
- warn when attempting to write to an existing file
- improved file change detection based on inode instead of path
information
- fix file saves with modifications in file pre-save events
- fix save on file systems without fsync(2) support on
directory descriptors
- do not unlink file~ when saving file
- introduce distinct vis-menu(1) exit codes
- modify Lua package.path to include /init.lua
- performance improvements for the HTML, XML and YAML lexers
- new Julia and Elm lexers, better defaults for standard text
lexer
- support optional exit status in :q and :qall commands
- better temporary file creation using mkstemp(2)
- performance improvements in highlight matching parentheses
- improved behavior of ^ and $ in searches and looping commands
- improved search wrap around behavior
- new :set layout option to specify window orientation
- improved filetype detection by matching known filenames
exactly
- support DragonFly BSD in configure script
- better manual page, fixed warnings
- removed gp, gP, gq
- implement g~, gu and gU using tr(1), they are no longer
OBS-URL: https://build.opensuse.org/request/show/814686
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/vis?expand=0&rev=4
- bounded time syntax highlighting using the :set redrawtime
option
- support optional count for sam's text commands e.g. :i3/-/
- make <C-n> in visual mode match next occurence of existing
selection
- warn when attempting to write to an existing file
- improved file change detection based on inode instead of path
information
- fix file saves with modifications in file pre-save events
- fix save on file systems without fsync(2) support on
directory descriptors
- do not unlink file~ when saving file
- introduce distinct vis-menu(1) exit codes
- modify Lua package.path to include /init.lua
- performance improvements for the HTML, XML and YAML lexers
- new Julia and Elm lexers, better defaults for standard text
lexer
- support optional exit status in :q and :qall commands
- better temporary file creation using mkstemp(2)
- performance improvements in highlight matching parentheses
- improved behavior of ^ and $ in searches and looping commands
- improved search wrap around behavior
- new :set layout option to specify window orientation
- improved filetype detection by matching known filenames
exactly
- support DragonFly BSD in configure script
- better manual page, fixed warnings
- removed gp, gP, gq
- implement g~, gu and gU using tr(1), they are no longer
OBS-URL: https://build.opensuse.org/package/show/editors/vis?expand=0&rev=10
- Update to version 0.5+git.1590819266.c37f09e:
* test: update
* vis: fix implicit enum conversion warning
* build: update alpine in docker build to version 3.12
* doc: update outdated version information
* doc: update sphinx configuration to python 3
* test: update
* text: introduce text_save_method, remove text_save_range
* test: update
* build: use -O2 by default
* vis: cleanup pre-processing of :-commands
* Tweak README
* vt100: do not crash if termkey is not yet initialized
* ui: fix line number drawing
* build: fix _XOPEN_SOURCE redefinition warning
* vis: make <Escape> reset count in visual modes
* vis: make <Escape> reset count in normal mode
* lexers: prioritize markdown list rule
* lexers: make markdown white space rule less greedy
* man: document theme location
* Avoid use of VLAs
* vt100: use shorter escape sequence to clear screen
* Add Julia lexer
OBS-URL: https://build.opensuse.org/request/show/811839
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/vis?expand=0&rev=3
* test: update
* vis: fix implicit enum conversion warning
* build: update alpine in docker build to version 3.12
* doc: update outdated version information
* doc: update sphinx configuration to python 3
* test: update
* text: introduce text_save_method, remove text_save_range
* test: update
* build: use -O2 by default
* vis: cleanup pre-processing of :-commands
* Tweak README
* vt100: do not crash if termkey is not yet initialized
* ui: fix line number drawing
* build: fix _XOPEN_SOURCE redefinition warning
* vis: make <Escape> reset count in visual modes
* vis: make <Escape> reset count in normal mode
* lexers: prioritize markdown list rule
* lexers: make markdown white space rule less greedy
* man: document theme location
* Avoid use of VLAs
* vt100: use shorter escape sequence to clear screen
* Add Julia lexer
OBS-URL: https://build.opensuse.org/package/show/editors/vis?expand=0&rev=8