Justin M. Keyes
f85cbea725
Merge #7917 'API: buffer updates'
2018-06-08 10:13:04 +02:00
Justin M. Keyes
3abf17ae88
API: validation: mention invalid method name ( #8489 )
2018-06-07 10:56:44 +02:00
Björn Linse
b8331e1a1c
tui: handle termguicolors rgb value in bridge for now
...
When/if TUI/bridge teardown is refactored to use events, this
commit can be reverted.
2018-06-02 17:44:48 +02:00
Björn Linse
5be3865ce7
nvim_list_uis: include channel id
2018-06-01 10:20:13 +02:00
KillTheMule
333679ad0e
Add empty options dict to buf_attach
2018-05-23 22:07:27 +02:00
KillTheMule
0bee3925ab
Send changedtick as first event if buffer contents weren't requested
2018-05-23 22:07:27 +02:00
KillTheMule
e7451f8a91
Some renamings and doc changes
2018-05-23 22:07:27 +02:00
KillTheMule
2106bada5b
Enable -Wconversion
2018-05-23 22:07:27 +02:00
KillTheMule
6bdcbef2f5
The grand renaming
2018-05-23 22:07:27 +02:00
KillTheMule
37b8e95fd6
Lint
2018-05-23 22:07:27 +02:00
KillTheMule
8bcc011959
Make separate functions to start/stop live updates
2018-05-23 22:07:27 +02:00
KillTheMule
71816e584c
Adjust FUNC_API_SINCE for nvim_buf_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
edcc73e766
API: Implement 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
cb8ea55d71
nvim_eval: fix memory leak
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
32b0470b03
API: better way to capture abort-causing non-exception errors
...
This condition is not perfectly reliable:
(did_emsg && force_abort && !current_exception)
The more proper way to check for abort-causing non-exception errors is
to set up `msg_list` using the "pattern" given by do_cmdline().
2018-05-09 23:18:38 +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
34b6a3d944
doc
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
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
53f11dcfc7
Merge #8218 'Fix errors reported by PVS'
...
closes #4983
2018-04-27 09:25:02 +02:00
Justin M. Keyes
77cb14cc6d
API: nvim__stats()
...
Use it to verify fsync() behavior.
2018-04-24 00:44:06 +02:00
ZyX
d9c010e45d
api/vim: Fix PVS/V547: node was already dereferenced, so can’t be NULL
2018-04-22 20:23:50 +03:00
Björn Linse
c8189096e8
ui_events: correct wrong argument order
2018-04-17 19:09:18 +02: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
2cbeb7ca56
ui_set_option: pass String.data, not String
2018-04-12 12:58:27 +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
ZyX
5660482406
api/buffer: Fix PVS/V547: use correct border for lnum
...
Should actually be silencing that for the sake of the case when `long` is
actually not 64-bit. But it appears that Vim had already defined maximal line
number. And even declared that exact value invalid, so no need in silencing.
2018-04-02 00:41:00 +03:00
ZyX
201a4ef11c
*: Replace did_throw checks with current_exception checks
...
Removes obsolete did_throw after that.
2018-03-25 15:13:05 +03:00
ZyX
79b4b6fc86
*: Make sure that !did_throw implies !current_exception
...
Fixes #7876
2018-03-25 14:50:48 +03: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
Justin M. Keyes
960f093625
build/MSVC: fix "C4028: formal parameter different from declaration"
2018-03-18 14:11:39 +01: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
12af7016e2
nvim_get_proc_children: fallback to shell
...
/proc/…/children may be unavailable because of an unset kernel option.
Fallback to `pgrep` invoked in a shell.
2018-03-16 10:55:12 +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
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