move `call_shell` to misc1.c
Move some fns to state.c
Move some fns to option.c
Move some fns to memline.c
Move `vim_chdir*` fns to file_search.c
Move some fns to new module, bytes.c
Move some fns to fileio.c
- Links to Search by default
screen.c: Combine CursorLine with QuickFixLine
- HLF_QFL takes priority over HLF_CUL
docs: Updated to mention QuickFixLine
runtime: Added QuickFixLine to nvimHLGroup
tests: QuickFixLine highlight
add tests for synIDattr() with [fg|bg|sp]#
add tests for synIDattr and various #RGB colors
synIDattr: test for ui_rgb_attached()
test: fix tests for synIDattr fg/bg/sp
Problem: Only terminals with up to 256 colors work properly.
Solution: Use the 256 color behavior for all terminals with 256 or more
colors. (Robert de Bath)
fa03fd6c4a
Problem: Using searchpair() with a skip expression that uses syntax
highlighting sometimes doesn't work. (David Fishburn)
Solution: Reset next_match_idx. (Christian Brabandt)
6773a348da
- `syntax_on` is documented. Rather than introduce a new undocumented
VimL global `g:syntax_off`, use a module-local flag.
- Rename "maybe" functions to follow style guidelines (use standard
module prefix)
Problem: Crash when using "syn keyword x c". (Dominique Pelle)
Solution: Initialize the keyword tabble. (Raymond Ko, PR 397)
670acbc70f
---
see: "fix crash due to hash table not being initialized"
https://github.com/vim/vim/pull/397
To reproduce:
```sh
nvim -u NONE -c ow -c 'sy keyword x c'
```
Regarding the individual items in the header:
`Vim - Vi improved by Bram Moolenar`
Bram Moolenar is already mentioned throughout the documentation, as
well as the intro screen.
`:help uganda`
It's already shown to all users who don't use `shortmess+=I` upon
starting nvim, and is already placed prominently in help.txt, i.e.,
`:help` run with no arguments.
`:help credits`
Already mentioned near the top of help.txt.
`README.md`
Already mentioned in develop.txt.
We already use wrappers for allocation, the new `xfree` function is the
equivalent for deallocation and provides a way to fully replace the malloc
implementation used by Neovim.
The CENT macro was set condionally depending on the FEAT_GUI constant that was
removed a long time ago.
Other small refactorings:
- remove obsolete TERM= flags
- sort and indent lines in array for readability
- 'Conceal' and 'WildMenu' were moved from highlight_init_{dark,light}[]
to highlight_init_both[] since the same values were used anyway
This commit integrates libvterm with Neovim and implements a terminal emulator
with nvim buffers as the display mechanism. Terminal buffers can be created
using any of the following methods:
- Opening a file with name following the "term://[${cwd}//[${pid}:]]${cmd}"
URI pattern where:
- cwd is the working directory of the process
- pid is the process id. This is just for use in session files where a pid
would have been assigned to the saved buffer title.
- cmd is the command to run
- Invoking the `:terminal` ex command
- Invoking the `termopen` function which returns a job id for automating the
terminal window.
Some extra changes were also implemented to adapt with terminal buffers. Here's
an overview:
- The `main` function now sets a BufReadCmd autocmd to intercept the term:// URI
and spawn the terminal buffer instead of reading the file.
- terminal buffers behave as if the following local buffer options were set:
- `nomodifiable`
- `swapfile`
- `undolevels=-1`
- `bufhidden=hide`
- All commands that delete buffers(`:bun`, `:bd` and `:bw`) behave the same for
terminal buffers, but only work when bang is passed(eg: `:bwipeout!`)
- A new "terminal" mode was added. A consequence is that a new set of mapping
commands were implemented with the "t" prefix(tmap, tunmap, tnoremap...)
- The `edit` function(which enters insert mode) will actually enter terminal
mode if the current buffer is a terminal
- The `put` operator was adapted to send data to the terminal instead of
modifying the buffer directly.
- A window being resized will also trigger a terminal resize if the window
displays the terminal.
ASan spotted a problem when using 'set background={light,dark}' with
color scheme solarized.
While loading the colors for color scheme 'g:colors_name', the pointer
on the value for this variable can become invalid, because of an 'unlet
colors_name' (part of an :highlight clear, syntax.c:6173).
To prevent the use of the freed value, decouple the value from
'g:colors_name' before calling load_colors() with it.