Commit Graph
2134 Commits
Author SHA1 Message Date
Justin M. Keyes 9d7aaf7149 lua/shared: move table util funcs to vim.shared
Use `tbl_` prefix for all table-util functions. Specify in the function
docstring if it expects a list-like or map-like table.
2019-05-18 21:07:30 +02:00
Justin M. Keyes bba75eb184 lua/stdlib: Introduce vim.shared
This is where "pure functions" can live, which can be shared by Nvim and
test logic which may not have a running Nvim instance available.

If in the future we use Nvim itself as the Lua engine for tests, then
these functions could be moved directly onto the `vim` Lua module.

closes #6580
2019-05-18 15:48:13 +02:00
Kwon-Young Choi 9420a2127f runtime/termdebug.vim #10015
* bugfix
* use NormalFloat for floating window background
* use floating window by default
* correctly use nvim_open_win()
* use nvim_win_set_option to set window local option
* use nvim_buf_set_option for buffer options
* renamed augroup to nvim_termdebug_close_hover to be consistent with
nvim_terminal_... augroup
2019-05-16 21:58:07 +02:00
Kwon-Young Choi 3a699a790c runtime/termdebug.vim #8364
* commit 36257d0f97b396467bef7a5937befd894fb23e31
Author: Kwon-Young Choi <kwon-young.choi@hotmail.fr>
Date:   Sat May 5 16:57:45 2018 +0200

    Port of the termdebug.vim plugin to neovim terminal feature.
    For neovim compatibility,
    The vim specific calls were replaced with neovim specific calls:
      term_start -> term_open
      term_sendkeys -> jobsend
      term_getline -> getbufline
      job_info && term_getjob -> using linux command ps to get the tty

    fix1: forgot to port EndDebug callback to neovim

    fix2: use nvim_get_chan_info to get pty of job
          remove the use of communication buffer by using jobstart instead
          of termopen

    fix3: get gdbbuf using nvim_get_chan_info

* cleaned up if has('nvim') to remove vim support.
added neovim floating window support for expression evaluation

* improvred documentation, cleaned up vim menu code, fixed bug when
floating window feature is not available
2019-05-16 11:21:05 +02:00
Justin M. Keyes f35d233e07 API/nvim_set_keymap: minor cleanup
ref #9924
2019-05-12 13:04:48 +02:00
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 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 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)
https://github.com/vim/vim/commit/eae1b91fea74842000fc055afc74fe2e7934c6ee
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 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
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)
https://github.com/vim/vim/commit/fda9784dc9596e1e36f840bbf1935a4c4b502bd9
2019-05-08 11:44:04 +02: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)
https://github.com/vim/vim/commit/d1362211291c85d29609baab65abc764b1aec169
2019-05-06 22:35:45 -04: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 720cb36cea doc: update setqflist() 2019-05-05 14:05:25 +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)

https://github.com/vim/vim/commit/d76ce852668635d81778cedacc2d3f021ed4e475
2019-05-05 13:46:19 +02:00
Jan Edmund Lazo 96a8b0ab78 vim-patch:8.1.0369: continuation lines cannot contain comments
Problem:    Continuation lines cannot contain comments.
Solution:   Support using "\ .
https://github.com/vim/vim/commit/67f8ab829911c7901c534ef2bf19cc34b622936f
2019-05-03 02:08:18 -04:00
Justin M. Keyes fd0fd752c8 terminal: swap priority of terminal, editor highlights
closes #9964
2019-05-02 09:56:22 +02:00
Justin M. Keyes c11e618133 gen_vimdoc.py: support <pre> preformatted text [ci skip] 2019-05-01 00:18:49 +02:00
Justin M. Keyes afd947e0c3 doc [ci skip]
ref #9886
2019-05-01 00:18:43 +02:00
Justin M. Keyes e22c475156 Merge #9951 'vim-patch:8.1.0519: save/restore tag stack' 2019-04-30 23:41:34 +02:00
Justin M. Keyes 3033b5a70a vim-patch:8.1.1231: asking about existing swap file unnecessarily
Problem:    Asking about existing swap file unnecessarily.
Solution:   When it is safe, delete the swap file.  Remove
            HAS_SWAP_EXISTS_ACTION, it is always defined. (closes vim/vim#1237)
https://github.com/vim/vim/commit/67cf86bfff5fd5224d557d81cb146f46e33b831c

N/A:
vim-patch:8.1.1232
vim-patch:8.1.1233
vim-patch:8.1.1236
2019-04-29 21:22:55 +02:00
Justin M. Keyes 04f0bc97b7 vim-patch:8.1.0401: can't get swap name of another buffer
Problem:    Can't get swap name of another buffer.
Solution:   Add swapname(). (Ozaki Kiichi, closes vim/vim#3441)
https://github.com/vim/vim/commit/110bd60985c31e8978e9b071e2179f4233ef8557
2019-04-29 21:19:45 +02:00
Justin M. Keyes 39e3783c69 vim-patch:8.1.0314: add swapinfo() "dirty" item
Problem:    Build failure without the +eval feature. (Brenton Horne)
Solution:   Add #ifdef.  Also add the "dirty" item.
https://github.com/vim/vim/commit/47ad5656e1e4285a74e7e8e5d0f1f71cd554e25c
2019-04-29 21:19:45 +02:00
Justin M. Keyes 24b7462b3c vim-patch:8.1.0313: information about a swap file is unavailable
Problem:    Information about a swap file is unavailable.
Solution:   Add swapinfo(). (Enzo Ferber)
https://github.com/vim/vim/commit/00f123a56585363cd13f062fd3bb123efcfaa664
2019-04-29 19:55:42 +02:00
Jan Edmund Lazo a0d723db55 vim-patch:8.0.1563: getwinposx() timeout #9955
Problem:    Timeout of getwinposx() can be too short. (lilydjwg)
Solution:   Add getwinpos(). (closes vim/vim#2689)
https://github.com/vim/vim/commit/3f54fd319f6641b4bed478bcc90cdb39ede68e31
2019-04-29 11:53:44 +02:00
AlxHnr fbd6666a06 runtime/Tutor: define highlights as "default" #9947 2019-04-28 12:55:38 +02:00
rolag 924dd6f14a vim-patch:8.1.0519: cannot save and restore the tag stack
Problem:    Cannot save and restore the tag stack.
Solution:   Add gettagstack() and settagstack(). (Yegappan Lakshmanan,
            closes vim/vim#3604)
https://github.com/vim/vim/commit/f49cc60aa802862c595ff619dccc11271633a94b
2019-04-28 11:37:19 +01:00
Justin M. Keyes 769f44e918 win/defaults: Use "…/nvim-data/site" in 'runtimepath'
On Windows we store non-config data in "$XDG_DATA_HOME/nvim-data". But
the "…/site" items in 'runtimepath' did not correctly point to that
location, they used "…/nvim/site".

Fix the init logic to use  "…/nvim-data/site".

closes #9910
2019-04-28 00:27:07 +02:00
Justin M. Keyes 83d571653b spellfile.vim: store files in stdpath('data')
ref b9b2fb7d5d #6664 #6272
2019-04-27 21:34:54 +02:00
Justin M. Keyes f0a7e3fc9a test: 'shadafile' default
ref 773bdd41ec
2019-04-27 16:19:40 +02:00
Jan Edmund Lazo 9d77a07686 vim-patch:8.0.1510: cannot assert beep #9938
Problem:    Cannot test if a command causes a beep.
Solution:   Add assert_beeps().
https://github.com/vim/vim/commit/b48e96f61c87a64e38e3ac50732c92a84a4833b8
2019-04-25 14:31:33 +02:00
Jan Edmund Lazo b8128aee02 vim-patch:8.0.1107: terminal debugger jumps to non-existing file
Problem:    Terminal debugger jumps to non-existing file.
Solution:   Check that the file exists.  Add an option to make the Vim wide
            wide. Fix removing highlight groups.
https://github.com/vim/vim/commit/38baa3e63427112d389de5e5942243414d9b1336
2019-04-23 00:03:47 -04:00
Jan Edmund Lazo e6f22d0fdd vim-patch:8.0.1092: terminal debugger can't evaluate expressions
Problem:    Terminal debugger can't evaluate expressions.
Solution:   Add :Evaluate and K.  Various other improvements.
https://github.com/vim/vim/commit/45d5f26d11d9aac2383453d2c1a8582cad1c8a3d
2019-04-23 00:03:47 -04:00
Jan Edmund Lazo 9e9015ee23 vim-patch:8.0.1085: terminal debugger can't set breakpoints
Problem:    The terminal debugger can't set breakpoints.
Solution:   Add :Break and :Delete commands.  Also commands for stepping
            through code.
https://github.com/vim/vim/commit/e09ba7bae5c867f6d3abc184709dd27488318e97
2019-04-23 00:03:47 -04:00
Jan Edmund Lazo 07a182c6b5 vim-patch:8.0.0647: syntax highlighting can make cause a freeze
Problem:    Syntax highlighting can make cause a freeze.
Solution:   Apply 'redrawtime' to syntax highlighting, per window.
https://github.com/vim/vim/commit/06f1ed2f78c5c03af95054fc3a8665df39dec362
2019-04-23 00:03:47 -04:00
Justin M. Keyes eada8f5aaa Merge pull request #9871 from justinmk/doc 2019-04-22 21:34:46 +02:00
Justin M. Keyes c1887f465d gen_vimdoc.py: skip "Parameters" header if all excluded 2019-04-22 21:24:46 +02:00
erw7 d0fd66ba82 health/provider.vim: check curl HTTPS support
closes #9925
closes #9928
2019-04-22 21:05:39 +02:00
Justin M. Keyes 544305e802 doc: clarify -Es 2019-04-22 20:56:16 +02:00
Justin M. Keyes eabe7d95f8 doc: UI 2019-04-22 20:56:16 +02:00
Justin M. Keyes 4d97abe805 doc 2019-04-22 20:56:16 +02:00
Marco Hinz 43356a43d0 health: check if tmux enabled true colors (#9929)
References https://github.com/neovim/neovim/issues/7764
2019-04-20 19:02:19 +02:00
Marco Hinz 477e1a8648 vim-patch:8.1.1177: .ts files are recognized as xml, typescript is more common (#9922)
Problem:    .ts files are recognized as xml, while typescript is more common.
Solution:   Recognize .ts files as typescript.

https://github.com/vim/vim/commit/1a4dce7cad4af4de347853aad6d671da2df662ad
2019-04-19 12:06:23 +02:00
Justin M. Keyes aa82f8b88f vim-patch:8.0.0716: "--clean", 'shadafile' #9907
Nvim notes:
- Nvim does not support "-u DEFAULTS", that change is omitted.
- Also add 'shadafile' as an alias to 'viminfofile'.
- Deprecate 'viminfofile'.

Problem:    Not easy to start Vim cleanly without changing the viminfo file.
            Not possible to know whether the -i command line flag was used.
Solution:   Add the --clean command line argument.  Add the 'viminfofile'
            option.  Add "-u DEFAULTS".
https://github.com/vim/vim/commit/c4da113ef98dcfd6f2a088b1693c0317dcb5bf42
2019-04-15 21:15:36 +02:00
Jan Edmund Lazo e52f6f21a1 vim-patch:8.0.1093: various small quickfix issues
Problem:    Various small quickfix issues.
Solution:   Remove ":" prefix from title set by a user. Add the qf_id2nr().
            function. Add a couple more tests.  Update documentation.
            (Yegappan Lakshmanan)
https://github.com/vim/vim/commit/b4d5fbabc99917a8069ba32a60c2d73d4f60e128
2019-04-14 19:09:19 -04:00
Marco Hinz 21b108fe44 vim-patch:8.1.1140: not easy to find out what neighbors a window has (#9873)
Problem:    Not easy to find out what neighbors a window has.
Solution:   Add more arguments to winnr(). (Yegappan Lakshmanan)

https://github.com/vim/vim/commit/46ad288b9b2a6eb0430cf802ff5ce68a58629897
2019-04-10 10:16:32 +02:00
Justin M. Keyes ddd0eb6f51 startup: -es/-Es (silent/batch mode): skip swapfile #8540
To use Nvim as a scripting engine the side-effects of swapfiles and user
config should be avoided by default.
2019-04-10 03:27:25 +02:00
Justin M. Keyes 9d085c75ff vim-patch:8.0.0702: error in a timer can make Vim unusable #9826
Problem:    An error in a timer can make Vim unusable.
Solution:   Don't set the error flag or exception from a timer.  Stop a timer
            if it causes an error 3 out of 3 times.  Discard an exception
            caused inside a timer.
https://github.com/vim/vim/commit/c577d813b7978345dec4310b2d8f5d5624a681f6

closes #9826
2019-04-10 00:50:51 +02:00
glacambre d928b036dc :stopinsert should leave terminal-mode #9856
Problem:  Calling :stopinsert from RPC while in terminal-mode does not
          go back to normal-mode.
Solution: Implement a check() handler for state_enter(), adapted from
          insert_check().

Fix #7807
2019-04-08 01:13:43 +02:00