| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
Problem: Cannot get the script line number when executing a function.
Solution: Store the line number besides the script ID. (Ozaki Kiichi,
closes vim/vim#3362) Also display the line number with ":verbose set".
https://github.com/vim/vim/commit/f29c1c6aa3f365c025890fab5fb9efbe88eb1761
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
- input: recognize <kEqual>, <kComma>
- terminal.c: If we need to support function key, a change must be made
in libvtermkey. Currently, it emulates strictly VT220 terminal, and
returning numeric value in 'normal' mode is the expected behaviour.
closes #9810
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- K_KORIGIN instead of K_KCENTER: This name is similar to what is used
by xev. Alternative could be K_KBEGIN as hinted here:
https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-PC-Style-Function-Keys
But I find Begin and Home too similar, and it might induced some
confusion. The naming looked related to some old keyboard
configuration.
- keymap.c: alias KPPeriod to kDel instead of kPoint.
This might seems weird, but this is actually the behaviour that should
be expected. libtermkey produces "KPPeriod" when num lock is off. To
fix this would need to change this name in termkey.
closes #9780
closes #9793
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Remove occurences of these macros.
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem: The buffer used to store a key name theoreticaly could be too
small. (Coverity)
Solution: Count all possible modifier characters. Add a check for the
length just in case.
https://github.com/vim/vim/commit/423977d3cebac2be1158b1d11da60fe96db4b750
|
|
|
|
|
|
|
|
|
|
|
| |
cb02137dfac7 had two mistakes, of the same nature: trans_special() must
be invoked with in_string=false unless the parsing context is a VimL
string. replace_termcodes() and input_enqueue() are low-level
mechanisms where VimL strings do not exist.
keymap.c: adjust double-quote case to satisfy keymap_spec.lua
closes #7410
|
|
|
|
|
|
|
|
| |
Note: there are three changes to ascii_isident. Reverting first two (in
find_special_key and first in get_special_key_code) normally fails the new test
with empty &isident, but reverting the third does not. Hence adding `>` to
&isident.
Ref vim/vim#2389.
|
| |
|
|
|
|
| |
Big function in expressions.c may be refactored, if I ever catch the idea how to
split it right.
|
| |
|
| |
|
| |
|
|\ |
|
| | |
|
| |
| |
| |
| |
| | |
closes #4840
closes #6164
|
|/ |
|
| |
|
|
|
|
| |
Closes #6937 "nvim_get_keymap output is unreliable"
|
|
|
|
|
|
|
| |
Problem: Number variables are not 64 bits while they could be.
Solution: Add the num64 feature. (Ken Takata)
https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
|
|\ |
|
| | |
|
|/
|
|
|
|
|
|
| |
Problem: Cannot map <M-">. (Stephen Riehm)
Solution: Solve the memory access problem in another way. (Dominique Pelle)
Allow for using <M-\"> in a string.
https://github.com/vim/vim/commit/35a4cfa200917dd171b1fff3cd5b6cee9add673d
|
|
|
|
|
|
|
|
| |
Main points:
- Replace `char_u` with `char` in some cases.
- Remove `str[len] = NUL` hack in some cases when `str` may be considered
`const`.
|
|
|
|
|
|
| |
Problem: Invalid memory access with "\<C-">.
Solution: Do not recognize this as a special character. (Dominique Pelle)
https://github.com/vim/vim/commit/1d90a5a5af84250e226f8a9121e771f7b72aa894
|
|
|
|
|
|
|
| |
Reasons:
- One does not have to do `s[len] = NUL` to work with these functions if they do
not need to replace the whole string: thus `s` may be const.
- One does not have to save/restore p_cpo to work with them.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds support for:
- api:vim_input("<D-a>")
- ":nnoremap <C-D-S-...>" and permutations thereof
UIs must capture the modifier and send it as "<D-...>" to vim_input().
Note: Before this commit, any arbitrary ":nnoremap <{foo}-{bar}>"
mapping could already be invoked with feedkeys("\<{foo}-{bar}>"). This
commit supports "D-" as a modifier that can be combined with "C-", "A-",
"S-" in any order.
For non-GUI (terminal) support, user must:
:set <D-a>={CSI sequence}
then send the {CSI sequence} from their terminal. But this does not work
yet (regression #2204).
Closes #2190
|
|
|
|
|
|
|
| |
Problem: No support for binary numbers.
Solution: Add "bin" to nrformats. (Jason Schulz)
https://github.com/vim/vim/commit/887c1fea4a114e7170091942d0446c8882701b5b
|
|
|
|
|
|
|
| |
Problem: Still a few problems with CTRL-A and CTRL-X in Visual mode.
Solution: Fix the reported problems. (Christian Brabandt)
https://github.com/vim/vim/commit/5d1bc78a2b9fbe3e3112afcde7c80eb19d5989f4
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Background: Vim internally prefers to represent ALT/META chords as
single-byte keys, by setting the high bit of the key byte.
extract_modifiers() _discards_ the meta/alt modifier, but we need it for
libvterm and libtermkey.
Closes #2440
Closes #3727
Closes #2017
References #2277
References #2254
https://github.com/neovim/neovim/issues/2017#issuecomment-140423557
> We [not libtermkey] are setting the high bit for some reason
https://github.com/neovim/neovim/issues/176#issuecomment-77834715
> libvtermkey requires the leading esc to parse alt/meta
https://github.com/neovim/neovim/pull/3246#issuecomment-136328450
> A program could do better than the current logic on some terminals, by
> asking for pure 8bit mode (S8C1T) and then immediately querying the
> mode again. If the result comes back as an 8bit single-byte CSI, then
> it can presume the mode setting was successful, and now the ESC prefix
> byte won't be seen in multibyte sequences; only as an Alt- prefix or
> a real Escape key. On such a terminal, it could therefore avoid
> needing to use that waiting timeout.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two new keys have been added to key_name_entry in keymap.c:
`FocusGained` and `FocusLost`.
Two cases have been added to the key handing switch in edit.c each
applying their respective autocmds.
In normal.c two functions have been added alongside nv_cursorhold doing
a similar job of applying the autocmd for the appropriate key.
tui/input.c has a new function `handle_focus_event` which eats either of
the control sequences for focus gained or lost. This function is checked
before handle_bracketed_paste and handle_forced_escape.
tui.c registers neovim as able to receive these control sequences in
terminfo_start and undoes that in terminfo_stop.
Closes #2302
|
|
|
|
|
|
|
|
|
|
|
| |
Refactor input.c, normal.c and edit.c to use the K_EVENT special key to trigger
the CURSORHOLD event. In normal and edit mode, K_EVENT is treated as
K_CURSORHOLD, which enables better handling of arbitrary actions in those
states(eg: In normal mode the previous operator counts will be restored).
Also fix a test in vim_spec.lua. The test had a wrong assumption: cmdheight is
only used to determine when the press enter screen will be shown, not to limit
how many lines or control pagination.
|
|
|
|
|
|
|
| |
Add a new special key that can be used by UIs to toggle the 'paste' option and
use it in the TUI instead of the user's 'pastetoggle' value.
Close #2843 #2092
|
|
|
|
|
|
| |
Because of 3baba1e7bc6698e6bc9f1d37fce88b30d6274bc9, it's dead code.
Helped-by: Justin M. Keyes <justinkz@gmail.com>
|
|
|
|
|
| |
These macros (and global) haven't been used since
3baba1e7bc6698e6bc9f1d37fce88b30d6274bc9
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Removed term.c, term.h and term_defs.h
- Tests for T_* values were removed. screen.c was simplified as a
consequence(the best strategy for drawing is implemented in the UI layer)
- Redraw functions now call ui.c functions directly. Updates are flushed with
`ui_flush()`
- Removed all termcap options(they now return empty strings for compatibility)
- &term/&ttybuiltin options return a constant value(nvim)
- &t_Co is still available, but it mirrors t_colors directly
- Remove cursor tracking from screen.c and the `screen_start` function. Now the
UI is expected to maintain cursor state across any call, and reset it when
resized.
- Remove unused code
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove abstract_ui global, now it is always active
- Remove some terminal handling code
- Remove unused functions
- Remove HAVE_TGETENT/TERMINFO/TERMIOS/IOCTL #ifdefs
- Remove tgetent/terminfo from version.c
- Remove curses/terminfo dependencies
- Only start/stop termcap when starting/exiting the program
- msg_use_printf will return true if there are no attached UIs(
messages will be written to stdout)
- Remove `ex_winpos`(implement `:winpos` with `ex_ni`)
|