Justin M. Keyes
8560bafc6c
paste: redraw at end
...
Attempt to fix test failure since 976c6667e1 removed per-chunk redraw:
ERROR test/functional/terminal/tui_spec.lua: TUI paste: cmdline-mode inserts 1 line
test/functional/terminal/tui_spec.lua:367: in function <test/functional/terminal/tui_spec.lua:360
Expected:
|*foo |
|* |
|{4:~ }|
|{4:~ }|
|{5:[No Name] [+] }|
|:"line 1{1:"} |
|{3:-- TERMINAL --} |
Actual:
|* |
|*{4:~ }|
|{4:~ }|
|{4:~ }|
|{5:[No Name] [+] }|
|:"line 1{1:"} |
|{3:-- TERMINAL --} |
2019-09-02 03:34:01 +02:00
Justin M. Keyes
976c6667e1
paste: one undo-block per stream
...
- All "chunks" in a paste-stream should form a single undo-block. Side
effect of 7a85792884 was to create an undo-block for each chunk.
- Also: remove old :redraw force logic, irrelevant after 7a85792884 .
2019-09-02 02:27:13 +02:00
Björn Linse
7a85792884
tui/input: defer nvim_paste properly.
...
Otherwise cursor and redraw code for normal and insert mode will not run. The
"tickle" workaround was used for this instead, and can now be removed.
The builtin vim.lua got the name
[string "-- Nvim-Lua stdlib: thevimmodule (:help l..."]
in error messages. Fix it to something reasonable.
2019-08-31 09:20:24 +02:00
Justin M. Keyes
87389c6a57
paste: make vim.paste() "public"
2019-08-27 22:14:52 +02:00
Justin M. Keyes
5b41070c63
paste: implement redo (AKA dot-repeat)
...
- Normal-mode redo idiom(?): prepend "i" and append ESC.
- Insert-mode only needs AppendToRedobuffLit().
- Cmdline-mode: only paste the first line.
2019-08-27 22:13:45 +02:00
Justin M. Keyes
bfc5a18f4b
paste: insert text "before" cursor in Insert-mode
2019-08-27 22:13:45 +02:00
Justin M. Keyes
eacc70fb3e
API: nvim_paste
2019-08-27 22:13:45 +02:00
Justin M. Keyes
5ae6849517
paste: phases, dots
...
- Send `phase` parameter to the paste handler.
- Redraw at intervals and when paste terminates.
- Show "..." throbber during paste to indicate activity.
2019-08-27 21:19:10 +02:00
Justin M. Keyes
93e5f0235b
API: nvim_put: "follow" parameter
2019-08-27 21:19:10 +02:00
Justin M. Keyes
5a2894d677
paste: use nvim_put()
2019-08-27 21:19:10 +02:00
Justin M. Keyes
f99caa755c
paste: use chansend() in Terminal-mode
2019-08-27 21:19:10 +02:00
Justin M. Keyes
abd55be19a
paste: fixup tests
2019-08-27 21:19:10 +02:00
Justin M. Keyes
4389401a7c
paste: abort paste if handler does not return true
2019-08-27 21:19:10 +02:00
Justin M. Keyes
68ea9a7c8a
TUI/paste: always flush on paste mode-change
...
Flush input before entering, not only when leaving, paste mode. Else
there could be pending input which will erroneously be sent to the paste
handler.
2019-08-27 21:19:10 +02:00
Justin M. Keyes
6d277f43a2
TUI/paste: define paste function as Lua builtin
...
- Define in Lua so that it is compiled-in (available with `-u NONE`).
TODO: Eventually we will want a 'pastefunc' option or some other way to
override the default paste handler.
2019-08-27 21:19:10 +02:00
Justin M. Keyes
7df566060c
lua/stdlib: cleanup
2019-08-27 21:19:10 +02:00
Daniel Hahler
e2d6e67bbc
Merge pull request #10171 from blueyed/vim-8.1.1318
...
vim-patch:8.1.1318: code for text changes is in a "misc" file
2019-08-09 19:25:56 +02:00
Björn Linse
1f54f68732
lua: minimal UTF-16 support needed for LSP
2019-08-08 20:10:14 +02:00
Daniel Hahler
0e3b9ea74d
includes
2019-08-07 14:21:23 +02:00
Björn Linse
88938634e7
lua: add vim.in_fast_event() to check if we are in a luv callback
2019-08-05 13:57:24 +02:00
Björn Linse
e6d77993d1
lua: do not crash on syntax error in debug.debug()
2019-08-05 13:19:44 +02:00
Björn Linse
d3a7bdefb0
lua: immediate-callback safe print()
2019-08-05 13:19:44 +02:00
Björn Linse
6ee05536ca
api/lua: make nvim_execute_lua use native lua floats, not special tables
...
Rationale: the purpose of nvim_execute_lua is to simply call lua code with lua
values. If a lua function expects a floating point value, it should be enough
to specify a float as argument to nvim_execute_lua.
However, make sure to preserve the existing roundtripping behavior of
API values when using `vim.api` functions. This is covered by existing
lua/api_spec.lua tests.
2019-07-01 18:44:58 +02:00
Björn Linse
99f24dfbed
make vim.loop == require'luv'
...
This avoids initializing libluv a second time if a plugin invokes
require'luv'. It is probably not an issue, but better to be safe.
2019-06-30 15:16:32 +02:00
Björn Linse
d33aaa0f5f
libluv: use luv_set_callback to control callback execution
...
Disable the use of deferred API functions in a fast lua callback
Correctly display error messages from a fast lua callback
2019-06-30 13:13:08 +02:00
Björn Linse
64cdf9f78a
api/lua: add on_detach to nvim_buf_attach
2019-06-15 13:19:12 +02:00
George Zhao
c83926cd0a
lua: introduce vim.loop (expose libuv event-loop) #10123
...
Co-authored-by: Andrey Popp <8mayday@gmail.com >
closes #9546
closes #10084
2019-06-10 14:13:18 +02:00
Björn Linse
b684bd05b5
lua: docs and tests for vim.schedule
2019-06-05 10:46:22 +02:00
Andrey Popp
81e1dbca99
lua: add vim.schedule(cb)
...
This executes Lua callback on main loop's event queue so that nvim API
is safe to call.
2019-06-05 10:42:23 +02:00
Björn Linse
f5c56f03bb
api: allow nvim_buf_attach from lua using callbacks
2019-06-04 13:45:20 +02:00
Björn Linse
8ed54bbec3
messages: use proper multiline error message for rpcrequest and API wrappers
2019-05-26 15:42:16 +02:00
Justin M. Keyes
5b04a4fa09
lua/shared: share trim() impl
2019-05-20 23:46:56 +02:00
Justin M. Keyes
7cc01c704c
Merge #9709 'fileio: use os_copy to create backups'
...
ref #8288
2019-05-20 22:33:19 +02:00
Justin M. Keyes
fab81cfb04
lua/shared: share more stuff
...
Leave trim() in vim.lua, because gen_vimdoc.py needs at least one
function in there, else it gets confused...
2019-05-19 18:31:40 +02:00
Justin M. Keyes
e4c2d85c77
lua/shared: share deepcopy() with test/*
...
deepcopy() was duplicated in test/helpers.lua
2019-05-19 17:58:54 +02:00
Justin M. Keyes
e628c011bf
gen_vimdoc.py: support lua/shared.lua module [ci skip]
2019-05-19 17:30:20 +02:00
KillTheMule
53576dfb35
Document the vim.lua functions
2019-05-18 22:01:14 +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
Justin M. Keyes
11a481f711
Merge #9686 'win/Lua: monkey-patch os.getenv()'
...
fixes #9681
2019-03-16 20:28:52 +01:00
erw7
c9264e6d52
Fix os.getenv of lua on Windows
...
Change to use os_getenv instead of getenv because environment variable
set by uv_os_setenv can not be get with getenv.
2019-03-07 13:49:02 +09:00
Björn Linse
27b7813025
cleanup: reduce some duplicate code, avoid function pointers for a condition
...
Add 'multiline' flag to history for correct :messages output
Use larger buffer size for multiline messages. if this turns out to not
be enough, we could do size calculation like api_set_error
2019-01-23 19:34:13 +01:00
Alexandre Dubray
7f2e43c637
message.c: add msg_echo_attr functions, use it for lua error messages
...
The added function behaves like the non-echo function but display message
in a echo-style way (i.e. tab and newline are preserved)
2019-01-22 20:15:27 +01:00
Björn Linse
3a84e5be88
lua: expose full interface of vim.inspect and add test
...
Implement lazy loading for vim.submodule, this would be over-engineering
for inspect only, but we expect to use this solution also for more and
larger modules.
2019-01-14 20:12:57 +01:00
Justin M. Keyes
6c02ff4747
lua/stdlib: Load runtime modules on-demand
...
Instead of eager-loading during plugin/* sourcing, define runtime
modules such as `vim.inspect` as lazy builtins. Otherwise non-builtin
Lua modules such as `vim.inspect` would not be available during startup
(init.vim, `-c`, `--cmd`, …).
ref #6580
ref #8677
2019-01-14 02:22:16 +01:00
KillTheMule
bb3aa824b7
lua/stdlib: vim.inspect, string functions
...
ref #6580
ref #8677
2019-01-14 02:14:34 +01:00
MichaHoffmann
affef0aab8
add func_attr_printf in :
...
log.c
message.c
strings.c
fixed some printf warnings in:
src/nvim/undo.c
src/nvim/eval.c
src/nvim/eval/encode.c
src/nvim/eval/typval.c
src/nvim/ex_getln.c
src/nvim/fileio.c
src/nvim/lua/executor.c
src/nvim/main.c
src/nvim/regexp_nfa.c
src/nvim/shada.c
src/nvim/spellfile.c
src/nvim/tui/terminfo.c
src/nvim/garray.h
2018-09-24 21:28:04 +02:00
Lucas Hoffmann
4d10024a56
API: Remove path prefix from command name in nvim_get_proc()
...
On macOS the output from `ps -o comm` might contain the full path of the
executable. The `ucomm` would be the basename only but is less portable
(see previous commit).
2018-08-18 14:37:33 +02:00
Lucas Hoffmann
794e7b4359
API: Use ps -o comm in nvim_get_proc()
...
- The POSIX version of ps(1) only specifies "comm" for the "-o" option
but not "ucomm". See
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ps.html
- On Linux (with the procps-ng package) "ucomm" is an alias for "comm".
See https://gitlab.com/procps-ng/procps
- OpenBSD also has "ucomm" as an alias for "comm" (with the extra note
"Name to be used for accounting."). See https://man.openbsd.org/ps
- FreeBSD describes "ucomm" as "Name to be used for accounting." but
does not say that it should be an alias for "comm". See
https://www.freebsd.org/cgi/man.cgi?query=ps
2018-08-15 12:39:10 +02:00
Justin M. Keyes
4e02f1ab87
Merge #8107 'jobs: separate process-group'
2018-03-18 18:36:02 +01:00
Justin M. Keyes
26b84a8b3e
build/MSVC: fix "C4003: not enough actual parameters for macro"
...
For the case of TV_DICTITEM_STRUCT, we can't just pass `1` because:
https://github.com/neovim/neovim/pull/8142#discussion_r175262436
> this variant will trigger array overrun warnings from various static analyzers.
2018-03-18 14:30:05 +01:00