KillTheMule
8bcc011959
Make separate functions to start/stop live updates
2018-05-23 22:07:27 +02:00
KillTheMule
bafae1c427
Add argument to not send a buffers content when updates are enabled
...
Add a test.
2018-05-23 22:07:27 +02:00
Peter Hodge
79184809bb
Tests for buffer updates
...
Originally written by @phodge in
https://github.com/neovim/neovim/pull/5269 .
2018-05-23 22:07:27 +02:00
Björn Linse
6da4548f0e
api: list information about all channels/jobs.
...
Fire autocmd when channel opens or its info changes.
Add a way for API clients can describe themselves.
2018-05-23 18:18:16 +02:00
Justin M. Keyes
137eedb4ed
API: nvim_get_commands(): return Dictionary
2018-05-12 07:29:21 +02:00
Justin M. Keyes
cb6672853a
API: nvim_get_commands(): builtin is irrelevant for buffer-local
...
builtin commands are never buffer-local, so we can return empty for that
case.
2018-05-12 07:29:21 +02:00
Justin M. Keyes
738bffea2c
API: nvim_get_commands(): more attributes
...
Support more :command attributes:
-bang
-bar
-register
2018-05-11 13:50:00 +02:00
Justin M. Keyes
9fa7727ce0
API: nvim_get_commands(): always return keys
...
- Always return all keys, with at least NIL value.
- Require `opts` param to be {"builtin":false}
- Validate `opts` param
2018-05-11 13:20:43 +02:00
Nimit Bhardwaj
25b6304840
API: nvim_get_commands()
2018-05-11 13:20:19 +02:00
Justin M. Keyes
273d2cd5d5
Merge #8329 'API: Make nvim_set_option() update :verbose set …
'
2018-05-11 10:08:09 +02:00
Justin M. Keyes
79a0d82755
test: API: fix tests after improved error capture
2018-05-10 04:01:25 +02:00
Justin M. Keyes
2326a4ac3a
API: nvim_eval(): return non-generic VimL errors
...
Use the same pattern as nvim_call_function (_call_function).
2018-05-09 23:18:39 +02:00
Justin M. Keyes
c9f3174075
API: return non-generic VimL errors
...
- Return VimL errors instead of generic errors for:
- nvim_call_function
- nvim_call_dict_function
- Fix tests which were silently broken before this change.
This violates #6150 where we agreed not to translate API errors. But
that can be fixed later.
2018-05-09 23:18:38 +02:00
Justin M. Keyes
cabffb0182
API: nvim_call_dict_function: expect actual function, not name
2018-05-06 14:52:21 +02:00
Justin M. Keyes
fe7ab60af7
API: nvim_call_dict_function: eliminate internal
param
...
The `internal` param is difficult to explain, and will rarely be
anything but `true`. To avoid it, use a hack: check if the resolved
dict value starts with "function(".
2018-05-06 14:38:26 +02:00
Justin M. Keyes
19c2ce1901
refactor: nvim_call_dict_function
...
- Add test coverage for errors.
- Rename, rearrange.
2018-05-06 14:38:26 +02:00
Sebastian Witte
124275dd58
API: nvim_call_dict_function #3032
2018-05-06 14:38:26 +02:00
Justin M. Keyes
f46f138fb6
test: nvim_call_function: verify "too many arguments" error
2018-05-06 14:38:26 +02:00
b-r-o-c-k
7170de1971
api: Make nvim_set_option() update :verbose set ...
...
Make `:verbose set ...` show when an option was last modified by an
API client or Lua script/chunk. In the case of an API client, the
channel ID is displayed.
2018-05-03 21:05:20 -05:00
Justin M. Keyes
1c3a849881
API/nvim_command_output: handle :echon capture ( #8265 )
...
ref https://github.com/neovim/python-client/pull/290
2018-04-13 00:49:37 +02:00
Justin M. Keyes
87f4d2592c
test/util: expect_err() ( #8257 )
...
other cleanup, ref #8245
2018-04-11 22:07:00 +02:00
Justin M. Keyes
fa6415f13f
test/API: validate channel arg ( #8245 )
2018-04-08 03:01:15 +02:00
Björn Linse
98e7112390
msg: do not scroll entire screen ( #8088 )
2018-03-31 11:12:27 +02:00
Nimit Bhardwaj
8d5a46e77b
TUI: implement "standout" attribute #8081
...
closes #8054
2018-03-27 04:38:19 +02:00
Justin M. Keyes
a034d4b69d
API: nvim_get_proc()
...
TODO: "exepath" field (win32: QueryFullProcessImageName())
On unix-likes `ps` is used because the platform-specific APIs are
a nightmare. For reference, below is a (incomplete) attempt:
diff --git a/src/nvim/os/process.c b/src/nvim/os/process.c
index 09769925aca5..99afbbf290c1 100644
--- a/src/nvim/os/process.c
+++ b/src/nvim/os/process.c
@@ -208,3 +210,60 @@ int os_proc_children(int ppid, int **proc_list, size_t *proc_count)
return 0;
}
+/// Gets various properties of the process identified by `pid`.
+///
+/// @param pid Process to inspect.
+/// @return Map of process properties, empty on error.
+Dictionary os_proc_info(int pid)
+{
+ Dictionary pinfo = ARRAY_DICT_INIT;
+#ifdef WIN32
+
+#elif defined(__APPLE__)
+ char buf[PROC_PIDPATHINFO_MAXSIZE];
+ if (proc_pidpath(pid, buf, sizeof(buf))) {
+ name = getName(buf);
+ PUT(pinfo, "exepath", STRING_OBJ(cstr_to_string(buf)));
+ return name;
+ } else {
+ ILOG("proc_pidpath() failed for pid: %d", pid);
+ }
+#elif defined(BSD)
+# if defined(__FreeBSD__)
+# define KP_COMM(o) o.ki_comm
+# else
+# define KP_COMM(o) o.p_comm
+# endif
+ struct kinfo_proc *proc = kinfo_getproc(pid);
+ if (proc) {
+ PUT(pinfo, "name", cstr_to_string(KP_COMM(proc)));
+ xfree(proc);
+ } else {
+ ILOG("kinfo_getproc() failed for pid: %d", pid);
+ }
+
+#elif defined(__linux__)
+ char fname[256] = { 0 };
+ char buf[MAXPATHL];
+ snprintf(fname, sizeof(fname), "/proc/%d/comm", pid);
+ FILE *fp = fopen(fname, "r");
+ // FileDescriptor *f = file_open_new(&error, fname, kFileReadOnly, 0);
+ // ptrdiff_t file_read(FileDescriptor *const fp, char *const ret_buf,
+ // const size_t size)
+ if (fp == NULL) {
+ ILOG("fopen() of /proc/%d/comm failed", pid);
+ } else {
+ size_t n = fread(buf, sizeof(char), sizeof(buf) - 1, fp);
+ if (n == 0) {
+ WLOG("fread() of /proc/%d/comm failed", pid);
+ } else {
+ size_t end = MIN(sizeof(buf) - 1, n);
+ end = (end > 0 && buf[end - 1] == '\n') ? end - 1 : end;
+ buf[end] = '\0';
+ PUT(pinfo, "name", STRING_OBJ(cstr_to_string(buf)));
+ }
+ }
+ fclose(fp);
+#endif
+ return pinfo;
+}
2018-03-18 00:11:45 +01:00
Justin M. Keyes
dbad797edd
API: nvim_get_proc_children()
...
ref https://github.com/libuv/libuv/pull/836
2018-03-16 10:55:12 +01:00
Justin M. Keyes
fd4021387e
test: rename next_message() to next_msg()
2018-03-11 12:43:42 +01:00
geekodour
9f994bb699
api: nvim_list_uis #8004
...
ref #7438
closes #4842
2018-03-03 15:06:24 +01:00
Björn Linse
6e5cb0debd
ui: refactor ui options
2018-02-13 20:48:51 +01:00
Justin M. Keyes
352a51e831
test: :! print binary data, control chars
...
closes #5442
closes #4142
ref #6618
ref #4376
ref #7844
ref #2958
ref #4338
2018-02-07 09:25:51 +01:00
Björn Linse
4e7d85e635
shell: update execute('!cmd')
test to new behavior
...
And similarly nvim_command_output test
2018-02-06 20:16:38 +01:00
ZyX
a2dfeb8a16
functests: Improve error reporting in _check_parsing function
...
May be needed for unit tests as well though.
2018-02-02 07:28:56 -05:00
Justin M. Keyes
5055d4a755
api: nvim_command_output: direct impl
2018-01-10 23:58:56 +01:00
Justin M. Keyes
c095f83116
api: change nvim_command_output behavior
...
Implement nvim_command_output with `execute({cmd},"silent")`.
Behavior changes:
- does not provoke any hit-enter prompt
- no longer prepends a newline char
- does not capture some noise (like the "[New File]" message, see the
change to tabnewentered_spec.lua)
Technically ("bug-for-bug") this a breaking change. But the previous
behavior of nvim_command_output meant that it probably wasn't used for
anything outside of tests.
Also remove the undocumented `v:command_output` variable which was
a hack introduced only for the purposes of nvim_command_output.
closes #7726
2018-01-10 23:45:44 +01:00
ZyX
5ab0f988ca
*: Replace all occurrences of NVim with Nvim
2017-11-30 11:53:25 +03:00
ZyX
17077b6813
viml/parser/expressions: Make $ENV not depend on &isident
2017-11-26 16:08:53 +03:00
ZyX
b9c7813058
Merge branch 'master' into expression-parser
2017-11-26 15:54:03 +03:00
Björn Linse
91b856ccce
channels: tests
2017-11-26 09:17:04 +01:00
ZyX
ebb33eddd9
tests: Stabilize float format and %e in format_luav and format_string
2017-11-19 22:00:59 +03:00
ZyX
f20f97c936
*: Fix linter errors
2017-11-19 21:13:27 +03:00
ZyX
a94255a7ac
tests: Use single test file for unit and functional parser tests
2017-11-19 20:20:06 +03:00
ZyX
24a353364d
Merge branch 'master' into expression-parser
2017-11-06 20:23:35 +03:00
ZyX
ebb5977837
api/vim: Add “len” dictionary key
...
This allows determining where parsing ended which may be needed for e.g. parsing
`:echo` with that API function.
2017-11-06 01:17:39 +03:00
ZyX
7849070f99
tests: Add missing test cases
2017-11-06 01:17:39 +03:00
ZyX
7bc6de7526
api/vim,functests: Add tests for nvim_parse_expression, fix found bugs
2017-11-06 01:17:39 +03:00
ZyX
b9d5aea073
api/vim: Create part of nvim_parse_expression function
2017-11-06 01:17:38 +03:00
James McCoy
a39c8b7ce3
test: server_spec: Tolerate missing protocol ( #7478 )
...
Travis disabled IPv6:
[ RUN ] serverstart(), serverstop() parses endpoints correctly: FAIL
...build/neovim/neovim/test/functional/eval/server_spec.lua:83: Expected objects to be the same.
Passed in:
(table) {
[1] = '127.0.0.1:12345' }
Expected:
(table) {
[1] = '127.0.0.1:12345'
*[2] = '::1:12345' }
Change all tests to ensure a server was actually started before
expecting it to be returned from serverlist().
2017-11-02 10:45:38 +01:00
Björn Linse
2a3bcd1ff8
rpc: Don't delay notifications when request is pending ( #6544 )
...
With the old behavior, if a GUI makes a blocking request that requires user
interaction (like nvim_input()), it would not get any screen updates.
The client, not nvim, should decide how to handle notifications during a
pending request. If an rplugin wants to avoid async calls while a sync call is
busy, it likely wants to avoid processing async calls while another async call
also is handled as well.
This may break the expectation of some existing rplugins. For compatibility,
remote/define.vim reimplements the old behavior. Clients can opt-out by
specifying `sync=urgent`.
- Legacy hosts should be updated to use `sync=urgent`. They could add a flag
indicating which async methods are always safe to call and which must wait
until the main loop returns.
- New hosts can expose the full asyncness, they don't need to offer both
behaviors.
ref #6532
ref #1398 d83868fe90
2017-10-29 03:06:53 +01:00
Justin M. Keyes
52517321d1
test: nvim_get_hl_by_name/by_id #7082
...
- test all properties
- test failure modes
2017-10-08 21:17:20 +02:00
Justin M. Keyes
04187a1c74
Merge #7082 'api: nvim_get_hl_by_name/by_id'
2017-10-08 19:09:14 +02:00