Justin M. Keyes
f72f638f97
doc: job/channel, misc #7783
...
doc: termios defaults. ref #6992
doc: :help shell-powershell
doc: provider: Python minimum version is 2.7, 3.4
doc: remove :!start special-case. #5844
doc: mention #7917 change which accepts empty Array for Dictionary parameter
doc: <Cmd> pseudokey
doc: lmap change #5658
doc: -s, -es
2018-06-11 00:08:27 +02:00
Justin M. Keyes
3abf17ae88
API: validation: mention invalid method name ( #8489 )
2018-06-07 10:56:44 +02:00
Björn Linse
5be3865ce7
nvim_list_uis: include channel id
2018-06-01 10:20:13 +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
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
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
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
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
Justin M. Keyes
fe60fa9faa
doc
...
vim-patch:8.0.1206: no autocmd for entering or leaving the command line
(commit a4f6cec7a3
)
NA patches:
vim-patch:8.0.0320: warning for unused variable with small build
2017-12-26 03:58:28 +01:00
ZyX
45998deb5d
*: Fix linter errors
2017-12-12 00:52:14 +03:00
Justin M. Keyes
dc232b74fb
doc: hack to avoid doxygen bug
...
Use `@cond <something>` to obscure a section from doxygen.
doxygen thinks kvec_withinit_t() is a function. That adds noise to the
generated API documentation, and also prevents the following function
from being noticed.
2017-12-10 17:13:22 +01:00
Justin M. Keyes
3cc7ebf810
Merge #7234 'built-in expression parser'
2017-12-09 18:47:34 +01: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
5215e3205a
channels: refactor
2017-11-24 14:50:00 +01:00
ZyX
03a129aacf
Merge branch 'master' into expression-parser
2017-11-19 22:05:22 +03:00
James McCoy
0407ddb364
Use PRId64 to format Integer when calling api_set_error
...
Integer is a 64-bit type so using %d can produce incorrect results.
test/functional/api/highlight_spec.lua @ 35: highlight api nvim_get_hl_by_id
...W7Xi/neovim-0.2.1/test/functional/api/highlight_spec.lua:46: Expected objects to be the same.
Passed in:
(string) 'Invalid highlight id: 7671724'
Expected:
(string) 'Invalid highlight id: 30000'
2017-11-12 16:45:39 -05:00
ZyX
c7495ebcc0
viml/parser/expressions: Add support for parsing assignments
2017-11-12 02:18:43 +03:00
ZyX
4aebd00a9e
*: Fix linter errors
2017-11-06 20:28:37 +03:00
ZyX
24a353364d
Merge branch 'master' into expression-parser
2017-11-06 20:23:35 +03:00
Justin M. Keyes
280943d9b9
doc: API (generated)
2017-11-06 04:51:34 +01:00
Justin M. Keyes
842a54a1bb
doc
2017-11-06 01:56:04 +01: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
07ec709141
vim/api: Actually dump AST, fix some bugs in nvim_parse_expression
2017-11-06 01:17:38 +03:00
ZyX
b9d5aea073
api/vim: Create part of nvim_parse_expression function
2017-11-06 01:17:38 +03:00
ZyX
22d161a5dd
api/vim: Add nvim_parse_expression function
2017-10-29 20:11:44 +03: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