Commit Graph

13061 Commits

Author SHA1 Message Date
Yilin Yang
fbf2c414ad API: nvim_set_keymap, nvim_del_keymap #9924
closes #9136

- Treat empty {rhs} like <Nop>

- getchar.c: Pull "repl. MapArg termcodes" into func
  The "preprocessing code" surrounding the replace_termcodes calls needs
  to invoke replace_termcodes, and also check if RHS is equal to "<Nop>".
  To reduce code duplication, factor this out into a helper function.

  Also add an rhs_is_noop flag to MapArguments; buf_do_map_explicit
  expects an empty {rhs} string for "<Nop>", but also needs to distinguish
  that from something like ":map lhs<cr>" where no {rhs} was provided.

- getchar.c: Use allocated buffer for rhs in MapArgs
  Since the MAXMAPLEN limit does not apply to the RHS of a mapping (or
  else an RHS that calls a really long autoload function from a plugin
  would be incorrectly rejected as being too long), use an allocated
  buffer for RHS rather than a static buffer of length MAXMAPLEN + 1.

- Mappings LHS and RHS can contain literal space characters, newlines, etc.

- getchar.c: replace_termcodes in str_to_mapargs
  It makes sense to do this; str_to_mapargs is, intuitively, supposed to
  take a "raw" command string and parse it into a totally "do_map-ready"
  struct.

- api/vim.c: Update lhs, rhs len after replace_termcodes
  Fixes a bug in which replace_termcodes changes the length of lhs or rhs,
  but the later search through the mappings/abbreviations hashtables
  still uses the old length value. This would cause the search to fail
  erroneously and throw 'E31: No such mapping' errors or 'E24: No such
  abbreviation' errors.

- getchar: Create new map_arguments struct
  So that a string of map arguments can be parsed into a more useful, more
  portable data structure.

- getchar.c: Add buf_do_map function
  Exactly the same as the old do_map, but replace the hardcoded references
  to the global `buf_T* curbuf` with a function parameter so that we can
  invoke it from nvim_buf_set_keymap.

- Remove gettext calls in do_map error handling
2019-05-12 11:44:48 +02:00
Justin M. Keyes
24f9dd73d5 test/channels_spec: cleanup
- Remove stray print()
- Use uname() instead of system('uname')
2019-05-12 00:43:28 +02:00
Justin M. Keyes
ab7d9ae193
Merge #9993 from justinmk/ui-message-kinds
UI/ext_messages: learn more message kinds
2019-05-12 00:11:57 +02:00
Justin M. Keyes
a0f775c4d3 doc 2019-05-11 23:42:55 +02:00
Justin M. Keyes
3d1ed7c959 UI/ext_messages: learn more message kinds
ref #6201
2019-05-11 23:42:55 +02:00
Jan Edmund Lazo
7c9d4d971c vim-patch:8.1.0543: fix memory leak #10001
Problem:    Coverity warns for leaking memory and using wrong struct.
Solution:   Free pointer when allocation fails. Change "boff" to "loff".
            (closes vim/vim#3634)
4e303c8ba8
2019-05-11 21:53:59 +02:00
Justin M. Keyes
da3c0e4962
Merge #9994 from janlazo/vim-8.1.1306
vim-patch:8.1.{1306,1312}
2019-05-11 12:48:26 +02:00
Jan Edmund Lazo
c82c5d7570 vim-patch:8.1.1312: Coverity warning for using uninitialized variable
Problem:    Coverity warning for using uninitialized variable.
Solution:   Clear exarg_T.
4ca41534b7
2019-05-09 23:16:17 -04:00
Jan Edmund Lazo
92f39762af vim-patch:8.1.1306: Borland support is outdated and doesn't work
Problem:    Borland support is outdated and doesn't work.
Solution:   Remove Borland support, there are other (free) compilers
            available. (Thomas Dziedzic, Ken Takata, closes vim/vim#4364)
eae1b91fea
2019-05-09 20:27:11 -04:00
juliancoffee
a541c681f6 runtime/tutor [ci skip] #9990 2019-05-09 23:32:57 +02:00
Justin M. Keyes
d818135e3f
Merge #9992 from justinmk/ui-upgrade
UI/nvim_ui_attach(): add "override" option
2019-05-09 23:31:30 +02:00
Justin M. Keyes
b9ad12e6c2 UI/nvim_ui_attach(): add override option
Before now, Nvim always degrades UI capabilities to the lowest-common
denominator. For example, if any connected UI has `ext_messages=false`
then `ext_messages=true` requested by any other connected UI is ignored.

Now `nvim_ui_attach()` supports `override=true`, which flips the
behavior: if any UI requests an `ext_*` UI capability then the
capability is enabled (and the legacy behavior is disabled).

Legacy UIs will be broken while a `override=true` UI is connected, but
it's useful for debugging: you can type into the TUI and observe the UI
events from another connected (UI) client. And the legacy UI will
"recover" after the `override=true` UI disconnects.

Example using pynvim:

    >>> n.ui_attach(2048, 2048, rgb=True, override=True, ext_multigrid=True, ext_messages=True, ext_popupmenu=True)
    >>> while True: n.next_message();
2019-05-09 22:27:41 +02:00
Justin M. Keyes
b6ad206024
Merge pull request #9987 from janlazo/vim-8.1.0865
vim-patch:8.1.{865,1299}
2019-05-09 11:15:19 +02:00
Jan Edmund Lazo
98398ff93f vim-patch:8.1.1299: "extends" from 'listchars' is used when 'list' is off
Problem:    "extends" from 'listchars' is used when 'list' is off. (Hiroyuki
            Yoshinaga)
Solution:   Only use the "extends" character when 'list' is on. (Hirohito
            Higashi, closes vim/vim#4360)
a5c6a0b6c7
2019-05-08 21:46:37 -04:00
Jan Edmund Lazo
924f1173cb vim-patch:8.1.0865: when 'listchars' only contains "nbsp:X" it does not work
Problem:    When 'listchars' only contains "nbsp:X" it does not work.
Solution:   Set extra_check when lcs_nbsp is set. (Ralf Schandl, closes vim/vim#3889)
895d966e34
2019-05-08 21:05:10 -04:00
Justin M. Keyes
8330cc22af
vim-patch:8.1.1205: BufReadPre may move the cursor #9980
Problem:    A BufReadPre autocommand may cause the cursor to move.
Solution:   Restore the cursor position after executing the autocommand,
            unless the autocommand moved it. (Christian Brabandt,
            closes vim/vim#4302, closes vim/vim#4294)
a68e595909
2019-05-08 18:01:21 +02:00
Jan Edmund Lazo
d36ef9339f vim-patch:8.1.1293: MSVC files are no longer useful #9982
Problem:    MSVC files are no longer useful for debugging.  Newer Visual
            Studio versions cannot read them.
Solution:   Delete the files. (Ken Takata, closes vim/vim#4357)
fda9784dc9
2019-05-08 11:44:04 +02:00
Justin M. Keyes
bc395b4fd4
Merge #9979 from janlazo/vim-8.0.0876
vim-patch:8.0.{876,1144},8.1.0133
2019-05-07 11:42:21 +02:00
Jan Edmund Lazo
4423759d03 vim-patch:8.0.1144: using wrong #ifdef for computing length
Problem:    Using wrong #ifdef for computing length.
Solution:   use BACKSLASH_IN_FILENAME instead of COLON_IN_FILENAME. (Yasuhiro
            Matsomoto, closes vim/vim#2153)
0b05e491b4
2019-05-07 03:43:47 -04:00
Jan Edmund Lazo
32059526de lint 2019-05-07 03:24:37 -04:00
Jan Edmund Lazo
f4e5cd200a vim-patch:8.1.0133: tagfiles() can have duplicate entries
Problem:    tagfiles() can have duplicate entries.
Solution:   Simplify the filename to make checking for duplicates work better.
            Add a test. (Dominique Pelle, closes vim/vim#2979)
46577b5e54
2019-05-07 03:21:26 -04:00
hashinclude
400ee59247 API: fix cursor position when lines are added #9961
Restore code removed in #9674.
2019-05-07 09:17:37 +02:00
Jan Edmund Lazo
f76792a10b vim-patch:8.0.0876: backslashes and wildcards in backticks don't work
Problem:    MS-Windows: Backslashes and wildcards in backticks don't work.
Solution:   Do not handle backslashes inside backticks in the wrong place.
            (Yasuhiro Matsumoto, closes vim/vim#1942)
39d21e3c30
2019-05-07 03:03:28 -04:00
Justin M. Keyes
b3adfa03b7
Merge #9978 from janlazo/vim-8.1.1285
vim-patch:8.1.{1284,1285,1286}
2019-05-07 08:38:18 +02:00
Jan Edmund Lazo
ac1fbc2860 fixup! vim-patch:8.0.1782: no simple way to label quickfix entries 2019-05-06 22:35:45 -04:00
Jan Edmund Lazo
b5539c2044 vim-patch:8.1.1284: detecting *.tmpl as htmlcheetah is outdated
Problem:    Detecting *.tmpl as htmlcheetah is outdated.
Solution:   Use the generic name "template". (closes vim/vim#4348)
d136221129
2019-05-06 22:35:45 -04:00
Jan Edmund Lazo
53d99b9657 vim-patch:8.1.1286: running tests leaves XTest_tabpage_cmdheight file behind
Problem:    Running tests leaves XTest_tabpage_cmdheight file behind.
Solution:   Delete the right file. (closes vim/vim#4350)
4fa06870e5
2019-05-06 22:35:45 -04:00
Jan Edmund Lazo
210d803777 vim-patch:8.1.1285: test17 is old style
Problem:    Test17 is old style.
Solution:   Turn into new style test. (Yegappan Lakshmanan, closes vim/vim#4347)
f0ab01f6d8
2019-05-06 22:35:45 -04:00
Justin M. Keyes
5a714c53f2
Merge #9977 from justinmk/pvs 2019-05-06 23:59:43 +02:00
Justin M. Keyes
d83a7dc687 Merge #9798 'aucmd_prepbuf: Use floating window' 2019-05-06 23:10:16 +02:00
Juraj Fiala
df9059d1a8 appdata: Include more info #9974
- Configuring the translation domain allows calculating and showing the translation states of each language
- OARS gives Neovim a nice ‘safe for children’ badge
- Releases allow displaying release info/update frequency
2019-05-06 22:11:59 +02:00
Marco Hinz
b0e3b5cf2e
aucmd_win: use a floating window 2019-05-06 16:31:58 +02:00
Justin M. Keyes
91547a80b6 lint 2019-05-06 10:02:15 +02:00
Justin M. Keyes
e7a8908b11 PVS/V781: "maxlen" variable checked after use
False positive.
2019-05-06 10:02:08 +02:00
Justin M. Keyes
fe299a82a6 PVS/V547: Expression is always true
Since 67bac681ea (see msg_multiline_attr()) msg_clr_eos() is always
called.
2019-05-06 10:02:00 +02:00
Justin M. Keyes
a52e93dfd8 PVS/V547: Expression is always false 2019-05-06 10:01:57 +02:00
Justin M. Keyes
c08ca29649 PVS/V547: Expression is always false 2019-05-06 10:01:49 +02:00
Justin M. Keyes
5faed57ac7 PVS/V571: condition was already verified 2019-05-06 08:59:13 +02:00
Justin M. Keyes
4658e9c1d9 vim-patch:8.0.1750: crash clearing location list #9968
Problem:    Crash when clearing loccation list in autocommand.
Solution:   Check if "qi" equals "ql_info". (Yegappan Lakshmanan)
3b9474b4ad
2019-05-05 23:18:47 +02:00
Justin M. Keyes
4b65a0059a test: cleanup
Avoid hyper-granularity. Don't need subdirectories for every little
thing.
2019-05-05 23:01:35 +02:00
Justin M. Keyes
8a1880f041
Merge #9972 from janlazo/vim-8.1.1249
vim-patch:8.1.{613,1046,1249}
2019-05-05 20:04:35 +02:00
Justin M. Keyes
9d6c205a33
Merge #9842 from mhinz/vim-8.0.1782
vim-patch:8.0.{1353,1389,1406,1420,1432,1500,1569,1634,1678,1727,1782,1805,1831}
2019-05-05 20:01:27 +02:00
Jan Edmund Lazo
fb02e9f1e9 vim-patch:8.1.1046: the "secure" variable is used inconsistently
Problem:    the "secure" variable is used inconsistently. (Justin M. Keyes)
Solution:   Set it to one instead of incrementing.
82b033eff8
2019-05-05 11:40:19 -04:00
Jan Edmund Lazo
9c6476d81e vim-patch:8.1.0613: when executing an insecure function the secure flag is stuck
Problem:    When executing an insecure function the secure flag is stuck.
            (Gabriel Barta)
Solution:   Restore "secure" instead of decrementing it. (closes vim/vim#3705)
48f377a476
2019-05-05 11:38:21 -04:00
Marco Hinz
5f903a1648
lint 2019-05-05 14:05:26 +02:00
Marco Hinz
720cb36cea
doc: update setqflist() 2019-05-05 14:05:25 +02:00
Marco Hinz
1eda387951
tests: adjust to latest Vim patches 2019-05-05 14:05:25 +02:00
Marco Hinz
daa82cbf69
vim-patch:8.0.1831: sometimes the quickfix title is incorrectly prefixed with ':'
Problem:    Sometimes the quickfix title is incorrectly prefixed with ':'.
Solution:   Prepend the colon in another way. (Yegappan Lakshmanan)

8b62e31003
2019-05-05 13:46:20 +02:00
Marco Hinz
446bfdd49f
vim-patch:8.0.1805: qf_parse_line() is too long
Problem:    qf_parse_line() is too long.
Solution:   Split it in parts.  Properly handle vim_realloc() failing.
            (Yegappan Lakshmanan)

18cebf4417
2019-05-05 13:46:20 +02:00
Marco Hinz
e6c21c4bc0
vim-patch:8.0.1782: no simple way to label quickfix entries
Problem:    No simple way to label quickfix entries.
Solution:   Add the "module" item, to be used instead of the file name for
            display purposes. (Martin Szamotulski)

d76ce85266
2019-05-05 13:46:19 +02:00