neovim_lib/
neovim_api.rs

1// Auto generated 2019-01-27 23:29:06.441158
2
3use neovim::*;
4use rpc::*;
5
6#[derive(PartialEq, Clone, Debug)]
7pub struct Buffer {
8    code_data: Value,
9}
10
11impl Buffer {
12    pub fn new(code_data: Value) -> Buffer {
13        Buffer { code_data }
14    }
15
16    /// Internal value, that represent type
17    pub fn get_value(&self) -> &Value {
18        &self.code_data
19    }
20
21    /// since: 1
22    pub fn line_count(&self, neovim: &mut Neovim) -> Result<i64, CallError> {
23        neovim
24            .session
25            .call("nvim_buf_line_count", call_args![self.code_data.clone()])
26            .map(map_result)
27            .map_err(map_generic_error)
28    }
29    /// since: 4
30    pub fn attach(
31        &self,
32        neovim: &mut Neovim,
33        send_buffer: bool,
34        opts: Vec<(Value, Value)>,
35    ) -> Result<bool, CallError> {
36        neovim
37            .session
38            .call(
39                "nvim_buf_attach",
40                call_args![self.code_data.clone(), send_buffer, opts],
41            )
42            .map(map_result)
43            .map_err(map_generic_error)
44    }
45    /// since: 4
46    pub fn detach(&self, neovim: &mut Neovim) -> Result<bool, CallError> {
47        neovim
48            .session
49            .call("nvim_buf_detach", call_args![self.code_data.clone()])
50            .map(map_result)
51            .map_err(map_generic_error)
52    }
53    /// since: 1
54    pub fn get_lines(
55        &self,
56        neovim: &mut Neovim,
57        start: i64,
58        end: i64,
59        strict_indexing: bool,
60    ) -> Result<Vec<String>, CallError> {
61        neovim
62            .session
63            .call(
64                "nvim_buf_get_lines",
65                call_args![self.code_data.clone(), start, end, strict_indexing],
66            )
67            .map(map_result)
68            .map_err(map_generic_error)
69    }
70    /// since: 1
71    pub fn set_lines(
72        &self,
73        neovim: &mut Neovim,
74        start: i64,
75        end: i64,
76        strict_indexing: bool,
77        replacement: Vec<String>,
78    ) -> Result<(), CallError> {
79        neovim
80            .session
81            .call(
82                "nvim_buf_set_lines",
83                call_args![
84                    self.code_data.clone(),
85                    start,
86                    end,
87                    strict_indexing,
88                    replacement
89                ],
90            )
91            .map(map_result)
92            .map_err(map_generic_error)
93    }
94    /// since: 5
95    pub fn get_offset(&self, neovim: &mut Neovim, index: i64) -> Result<i64, CallError> {
96        neovim
97            .session
98            .call(
99                "nvim_buf_get_offset",
100                call_args![self.code_data.clone(), index],
101            )
102            .map(map_result)
103            .map_err(map_generic_error)
104    }
105    /// since: 1
106    pub fn get_var(&self, neovim: &mut Neovim, name: &str) -> Result<Value, CallError> {
107        neovim
108            .session
109            .call("nvim_buf_get_var", call_args![self.code_data.clone(), name])
110            .map(map_result)
111            .map_err(map_generic_error)
112    }
113    /// since: 2
114    pub fn get_changedtick(&self, neovim: &mut Neovim) -> Result<i64, CallError> {
115        neovim
116            .session
117            .call(
118                "nvim_buf_get_changedtick",
119                call_args![self.code_data.clone()],
120            )
121            .map(map_result)
122            .map_err(map_generic_error)
123    }
124    /// since: 3
125    pub fn get_keymap(
126        &self,
127        neovim: &mut Neovim,
128        mode: &str,
129    ) -> Result<Vec<Vec<(Value, Value)>>, CallError> {
130        neovim
131            .session
132            .call(
133                "nvim_buf_get_keymap",
134                call_args![self.code_data.clone(), mode],
135            )
136            .map(map_result)
137            .map_err(map_generic_error)
138    }
139    /// since: 4
140    pub fn get_commands(
141        &self,
142        neovim: &mut Neovim,
143        opts: Vec<(Value, Value)>,
144    ) -> Result<Vec<(Value, Value)>, CallError> {
145        neovim
146            .session
147            .call(
148                "nvim_buf_get_commands",
149                call_args![self.code_data.clone(), opts],
150            )
151            .map(map_result)
152            .map_err(map_generic_error)
153    }
154    /// since: 1
155    pub fn set_var(&self, neovim: &mut Neovim, name: &str, value: Value) -> Result<(), CallError> {
156        neovim
157            .session
158            .call(
159                "nvim_buf_set_var",
160                call_args![self.code_data.clone(), name, value],
161            )
162            .map(map_result)
163            .map_err(map_generic_error)
164    }
165    /// since: 1
166    pub fn del_var(&self, neovim: &mut Neovim, name: &str) -> Result<(), CallError> {
167        neovim
168            .session
169            .call("nvim_buf_del_var", call_args![self.code_data.clone(), name])
170            .map(map_result)
171            .map_err(map_generic_error)
172    }
173    /// since: 1
174    pub fn get_option(&self, neovim: &mut Neovim, name: &str) -> Result<Value, CallError> {
175        neovim
176            .session
177            .call(
178                "nvim_buf_get_option",
179                call_args![self.code_data.clone(), name],
180            )
181            .map(map_result)
182            .map_err(map_generic_error)
183    }
184    /// since: 1
185    pub fn set_option(
186        &self,
187        neovim: &mut Neovim,
188        name: &str,
189        value: Value,
190    ) -> Result<(), CallError> {
191        neovim
192            .session
193            .call(
194                "nvim_buf_set_option",
195                call_args![self.code_data.clone(), name, value],
196            )
197            .map(map_result)
198            .map_err(map_generic_error)
199    }
200    /// since: 1
201    pub fn get_number(&self, neovim: &mut Neovim) -> Result<i64, CallError> {
202        neovim
203            .session
204            .call("nvim_buf_get_number", call_args![self.code_data.clone()])
205            .map(map_result)
206            .map_err(map_generic_error)
207    }
208    /// since: 1
209    pub fn get_name(&self, neovim: &mut Neovim) -> Result<String, CallError> {
210        neovim
211            .session
212            .call("nvim_buf_get_name", call_args![self.code_data.clone()])
213            .map(map_result)
214            .map_err(map_generic_error)
215    }
216    /// since: 1
217    pub fn set_name(&self, neovim: &mut Neovim, name: &str) -> Result<(), CallError> {
218        neovim
219            .session
220            .call(
221                "nvim_buf_set_name",
222                call_args![self.code_data.clone(), name],
223            )
224            .map(map_result)
225            .map_err(map_generic_error)
226    }
227    /// since: 5
228    pub fn is_loaded(&self, neovim: &mut Neovim) -> Result<bool, CallError> {
229        neovim
230            .session
231            .call("nvim_buf_is_loaded", call_args![self.code_data.clone()])
232            .map(map_result)
233            .map_err(map_generic_error)
234    }
235    /// since: 1
236    pub fn is_valid(&self, neovim: &mut Neovim) -> Result<bool, CallError> {
237        neovim
238            .session
239            .call("nvim_buf_is_valid", call_args![self.code_data.clone()])
240            .map(map_result)
241            .map_err(map_generic_error)
242    }
243    /// since: 1
244    pub fn get_mark(&self, neovim: &mut Neovim, name: &str) -> Result<(i64, i64), CallError> {
245        neovim
246            .session
247            .call(
248                "nvim_buf_get_mark",
249                call_args![self.code_data.clone(), name],
250            )
251            .map(map_result)
252            .map_err(map_generic_error)
253    }
254    /// since: 1
255    pub fn add_highlight(
256        &self,
257        neovim: &mut Neovim,
258        ns_id: i64,
259        hl_group: &str,
260        line: i64,
261        col_start: i64,
262        col_end: i64,
263    ) -> Result<i64, CallError> {
264        neovim
265            .session
266            .call(
267                "nvim_buf_add_highlight",
268                call_args![
269                    self.code_data.clone(),
270                    ns_id,
271                    hl_group,
272                    line,
273                    col_start,
274                    col_end
275                ],
276            )
277            .map(map_result)
278            .map_err(map_generic_error)
279    }
280    /// since: 5
281    pub fn clear_namespace(
282        &self,
283        neovim: &mut Neovim,
284        ns_id: i64,
285        line_start: i64,
286        line_end: i64,
287    ) -> Result<(), CallError> {
288        neovim
289            .session
290            .call(
291                "nvim_buf_clear_namespace",
292                call_args![self.code_data.clone(), ns_id, line_start, line_end],
293            )
294            .map(map_result)
295            .map_err(map_generic_error)
296    }
297    /// since: 1
298    pub fn clear_highlight(
299        &self,
300        neovim: &mut Neovim,
301        ns_id: i64,
302        line_start: i64,
303        line_end: i64,
304    ) -> Result<(), CallError> {
305        neovim
306            .session
307            .call(
308                "nvim_buf_clear_highlight",
309                call_args![self.code_data.clone(), ns_id, line_start, line_end],
310            )
311            .map(map_result)
312            .map_err(map_generic_error)
313    }
314    /// since: 5
315    pub fn set_virtual_text(
316        &self,
317        neovim: &mut Neovim,
318        ns_id: i64,
319        line: i64,
320        chunks: Vec<Value>,
321        opts: Vec<(Value, Value)>,
322    ) -> Result<i64, CallError> {
323        neovim
324            .session
325            .call(
326                "nvim_buf_set_virtual_text",
327                call_args![self.code_data.clone(), ns_id, line, chunks, opts],
328            )
329            .map(map_result)
330            .map_err(map_generic_error)
331    }
332}
333
334#[derive(PartialEq, Clone, Debug)]
335pub struct Window {
336    code_data: Value,
337}
338
339impl Window {
340    pub fn new(code_data: Value) -> Window {
341        Window { code_data }
342    }
343
344    /// Internal value, that represent type
345    pub fn get_value(&self) -> &Value {
346        &self.code_data
347    }
348
349    /// since: 1
350    pub fn get_buf(&self, neovim: &mut Neovim) -> Result<Buffer, CallError> {
351        neovim
352            .session
353            .call("nvim_win_get_buf", call_args![self.code_data.clone()])
354            .map(map_result)
355            .map_err(map_generic_error)
356    }
357    /// since: 5
358    pub fn set_buf(&self, neovim: &mut Neovim, buffer: &Buffer) -> Result<(), CallError> {
359        neovim
360            .session
361            .call(
362                "nvim_win_set_buf",
363                call_args![self.code_data.clone(), buffer],
364            )
365            .map(map_result)
366            .map_err(map_generic_error)
367    }
368    /// since: 1
369    pub fn get_cursor(&self, neovim: &mut Neovim) -> Result<(i64, i64), CallError> {
370        neovim
371            .session
372            .call("nvim_win_get_cursor", call_args![self.code_data.clone()])
373            .map(map_result)
374            .map_err(map_generic_error)
375    }
376    /// since: 1
377    pub fn set_cursor(&self, neovim: &mut Neovim, pos: (i64, i64)) -> Result<(), CallError> {
378        neovim
379            .session
380            .call(
381                "nvim_win_set_cursor",
382                call_args![self.code_data.clone(), pos],
383            )
384            .map(map_result)
385            .map_err(map_generic_error)
386    }
387    /// since: 1
388    pub fn get_height(&self, neovim: &mut Neovim) -> Result<i64, CallError> {
389        neovim
390            .session
391            .call("nvim_win_get_height", call_args![self.code_data.clone()])
392            .map(map_result)
393            .map_err(map_generic_error)
394    }
395    /// since: 1
396    pub fn set_height(&self, neovim: &mut Neovim, height: i64) -> Result<(), CallError> {
397        neovim
398            .session
399            .call(
400                "nvim_win_set_height",
401                call_args![self.code_data.clone(), height],
402            )
403            .map(map_result)
404            .map_err(map_generic_error)
405    }
406    /// since: 1
407    pub fn get_width(&self, neovim: &mut Neovim) -> Result<i64, CallError> {
408        neovim
409            .session
410            .call("nvim_win_get_width", call_args![self.code_data.clone()])
411            .map(map_result)
412            .map_err(map_generic_error)
413    }
414    /// since: 1
415    pub fn set_width(&self, neovim: &mut Neovim, width: i64) -> Result<(), CallError> {
416        neovim
417            .session
418            .call(
419                "nvim_win_set_width",
420                call_args![self.code_data.clone(), width],
421            )
422            .map(map_result)
423            .map_err(map_generic_error)
424    }
425    /// since: 1
426    pub fn get_var(&self, neovim: &mut Neovim, name: &str) -> Result<Value, CallError> {
427        neovim
428            .session
429            .call("nvim_win_get_var", call_args![self.code_data.clone(), name])
430            .map(map_result)
431            .map_err(map_generic_error)
432    }
433    /// since: 1
434    pub fn set_var(&self, neovim: &mut Neovim, name: &str, value: Value) -> Result<(), CallError> {
435        neovim
436            .session
437            .call(
438                "nvim_win_set_var",
439                call_args![self.code_data.clone(), name, value],
440            )
441            .map(map_result)
442            .map_err(map_generic_error)
443    }
444    /// since: 1
445    pub fn del_var(&self, neovim: &mut Neovim, name: &str) -> Result<(), CallError> {
446        neovim
447            .session
448            .call("nvim_win_del_var", call_args![self.code_data.clone(), name])
449            .map(map_result)
450            .map_err(map_generic_error)
451    }
452    /// since: 1
453    pub fn get_option(&self, neovim: &mut Neovim, name: &str) -> Result<Value, CallError> {
454        neovim
455            .session
456            .call(
457                "nvim_win_get_option",
458                call_args![self.code_data.clone(), name],
459            )
460            .map(map_result)
461            .map_err(map_generic_error)
462    }
463    /// since: 1
464    pub fn set_option(
465        &self,
466        neovim: &mut Neovim,
467        name: &str,
468        value: Value,
469    ) -> Result<(), CallError> {
470        neovim
471            .session
472            .call(
473                "nvim_win_set_option",
474                call_args![self.code_data.clone(), name, value],
475            )
476            .map(map_result)
477            .map_err(map_generic_error)
478    }
479    /// since: 1
480    pub fn get_position(&self, neovim: &mut Neovim) -> Result<(i64, i64), CallError> {
481        neovim
482            .session
483            .call("nvim_win_get_position", call_args![self.code_data.clone()])
484            .map(map_result)
485            .map_err(map_generic_error)
486    }
487    /// since: 1
488    pub fn get_tabpage(&self, neovim: &mut Neovim) -> Result<Tabpage, CallError> {
489        neovim
490            .session
491            .call("nvim_win_get_tabpage", call_args![self.code_data.clone()])
492            .map(map_result)
493            .map_err(map_generic_error)
494    }
495    /// since: 1
496    pub fn get_number(&self, neovim: &mut Neovim) -> Result<i64, CallError> {
497        neovim
498            .session
499            .call("nvim_win_get_number", call_args![self.code_data.clone()])
500            .map(map_result)
501            .map_err(map_generic_error)
502    }
503    /// since: 1
504    pub fn is_valid(&self, neovim: &mut Neovim) -> Result<bool, CallError> {
505        neovim
506            .session
507            .call("nvim_win_is_valid", call_args![self.code_data.clone()])
508            .map(map_result)
509            .map_err(map_generic_error)
510    }
511}
512
513#[derive(PartialEq, Clone, Debug)]
514pub struct Tabpage {
515    code_data: Value,
516}
517
518impl Tabpage {
519    pub fn new(code_data: Value) -> Tabpage {
520        Tabpage { code_data }
521    }
522
523    /// Internal value, that represent type
524    pub fn get_value(&self) -> &Value {
525        &self.code_data
526    }
527
528    /// since: 1
529    pub fn list_wins(&self, neovim: &mut Neovim) -> Result<Vec<Window>, CallError> {
530        neovim
531            .session
532            .call("nvim_tabpage_list_wins", call_args![self.code_data.clone()])
533            .map(map_result)
534            .map_err(map_generic_error)
535    }
536    /// since: 1
537    pub fn get_var(&self, neovim: &mut Neovim, name: &str) -> Result<Value, CallError> {
538        neovim
539            .session
540            .call(
541                "nvim_tabpage_get_var",
542                call_args![self.code_data.clone(), name],
543            )
544            .map(map_result)
545            .map_err(map_generic_error)
546    }
547    /// since: 1
548    pub fn set_var(&self, neovim: &mut Neovim, name: &str, value: Value) -> Result<(), CallError> {
549        neovim
550            .session
551            .call(
552                "nvim_tabpage_set_var",
553                call_args![self.code_data.clone(), name, value],
554            )
555            .map(map_result)
556            .map_err(map_generic_error)
557    }
558    /// since: 1
559    pub fn del_var(&self, neovim: &mut Neovim, name: &str) -> Result<(), CallError> {
560        neovim
561            .session
562            .call(
563                "nvim_tabpage_del_var",
564                call_args![self.code_data.clone(), name],
565            )
566            .map(map_result)
567            .map_err(map_generic_error)
568    }
569    /// since: 1
570    pub fn get_win(&self, neovim: &mut Neovim) -> Result<Window, CallError> {
571        neovim
572            .session
573            .call("nvim_tabpage_get_win", call_args![self.code_data.clone()])
574            .map(map_result)
575            .map_err(map_generic_error)
576    }
577    /// since: 1
578    pub fn get_number(&self, neovim: &mut Neovim) -> Result<i64, CallError> {
579        neovim
580            .session
581            .call(
582                "nvim_tabpage_get_number",
583                call_args![self.code_data.clone()],
584            )
585            .map(map_result)
586            .map_err(map_generic_error)
587    }
588    /// since: 1
589    pub fn is_valid(&self, neovim: &mut Neovim) -> Result<bool, CallError> {
590        neovim
591            .session
592            .call("nvim_tabpage_is_valid", call_args![self.code_data.clone()])
593            .map(map_result)
594            .map_err(map_generic_error)
595    }
596}
597
598impl FromVal<Value> for Buffer {
599    fn from_val(val: Value) -> Self {
600        Buffer::new(val)
601    }
602}
603
604impl<'a> IntoVal<Value> for &'a Buffer {
605    fn into_val(self) -> Value {
606        self.code_data.clone()
607    }
608}
609impl FromVal<Value> for Window {
610    fn from_val(val: Value) -> Self {
611        Window::new(val)
612    }
613}
614
615impl<'a> IntoVal<Value> for &'a Window {
616    fn into_val(self) -> Value {
617        self.code_data.clone()
618    }
619}
620impl FromVal<Value> for Tabpage {
621    fn from_val(val: Value) -> Self {
622        Tabpage::new(val)
623    }
624}
625
626impl<'a> IntoVal<Value> for &'a Tabpage {
627    fn into_val(self) -> Value {
628        self.code_data.clone()
629    }
630}
631
632pub trait NeovimApi {
633    /// since: 1
634    fn ui_detach(&mut self) -> Result<(), CallError>;
635    /// since: 1
636    fn ui_try_resize(&mut self, width: i64, height: i64) -> Result<(), CallError>;
637    /// since: 1
638    fn ui_set_option(&mut self, name: &str, value: Value) -> Result<(), CallError>;
639    /// since: 1
640    fn command(&mut self, command: &str) -> Result<(), CallError>;
641    /// since: 3
642    fn get_hl_by_name(&mut self, name: &str, rgb: bool) -> Result<Vec<(Value, Value)>, CallError>;
643    /// since: 3
644    fn get_hl_by_id(&mut self, hl_id: i64, rgb: bool) -> Result<Vec<(Value, Value)>, CallError>;
645    /// since: 1
646    fn feedkeys(&mut self, keys: &str, mode: &str, escape_csi: bool) -> Result<(), CallError>;
647    /// since: 1
648    fn input(&mut self, keys: &str) -> Result<i64, CallError>;
649    /// since: 1
650    fn replace_termcodes(
651        &mut self,
652        str: &str,
653        from_part: bool,
654        do_lt: bool,
655        special: bool,
656    ) -> Result<String, CallError>;
657    /// since: 1
658    fn command_output(&mut self, command: &str) -> Result<String, CallError>;
659    /// since: 1
660    fn eval(&mut self, expr: &str) -> Result<Value, CallError>;
661    /// since: 3
662    fn execute_lua(&mut self, code: &str, args: Vec<Value>) -> Result<Value, CallError>;
663    /// since: 1
664    fn call_function(&mut self, fname: &str, args: Vec<Value>) -> Result<Value, CallError>;
665    /// since: 4
666    fn call_dict_function(
667        &mut self,
668        dict: Value,
669        fname: &str,
670        args: Vec<Value>,
671    ) -> Result<Value, CallError>;
672    /// since: 1
673    fn strwidth(&mut self, text: &str) -> Result<i64, CallError>;
674    /// since: 1
675    fn list_runtime_paths(&mut self) -> Result<Vec<String>, CallError>;
676    /// since: 1
677    fn set_current_dir(&mut self, dir: &str) -> Result<(), CallError>;
678    /// since: 1
679    fn get_current_line(&mut self) -> Result<String, CallError>;
680    /// since: 1
681    fn set_current_line(&mut self, line: &str) -> Result<(), CallError>;
682    /// since: 1
683    fn del_current_line(&mut self) -> Result<(), CallError>;
684    /// since: 1
685    fn get_var(&mut self, name: &str) -> Result<Value, CallError>;
686    /// since: 1
687    fn set_var(&mut self, name: &str, value: Value) -> Result<(), CallError>;
688    /// since: 1
689    fn del_var(&mut self, name: &str) -> Result<(), CallError>;
690    /// since: 1
691    fn get_vvar(&mut self, name: &str) -> Result<Value, CallError>;
692    /// since: 1
693    fn get_option(&mut self, name: &str) -> Result<Value, CallError>;
694    /// since: 1
695    fn set_option(&mut self, name: &str, value: Value) -> Result<(), CallError>;
696    /// since: 1
697    fn out_write(&mut self, str: &str) -> Result<(), CallError>;
698    /// since: 1
699    fn err_write(&mut self, str: &str) -> Result<(), CallError>;
700    /// since: 1
701    fn err_writeln(&mut self, str: &str) -> Result<(), CallError>;
702    /// since: 1
703    fn list_bufs(&mut self) -> Result<Vec<Buffer>, CallError>;
704    /// since: 1
705    fn get_current_buf(&mut self) -> Result<Buffer, CallError>;
706    /// since: 1
707    fn set_current_buf(&mut self, buffer: &Buffer) -> Result<(), CallError>;
708    /// since: 1
709    fn list_wins(&mut self) -> Result<Vec<Window>, CallError>;
710    /// since: 1
711    fn get_current_win(&mut self) -> Result<Window, CallError>;
712    /// since: 1
713    fn set_current_win(&mut self, window: &Window) -> Result<(), CallError>;
714    /// since: 1
715    fn list_tabpages(&mut self) -> Result<Vec<Tabpage>, CallError>;
716    /// since: 1
717    fn get_current_tabpage(&mut self) -> Result<Tabpage, CallError>;
718    /// since: 1
719    fn set_current_tabpage(&mut self, tabpage: &Tabpage) -> Result<(), CallError>;
720    /// since: 5
721    fn create_namespace(&mut self, name: &str) -> Result<i64, CallError>;
722    /// since: 5
723    fn get_namespaces(&mut self) -> Result<Vec<(Value, Value)>, CallError>;
724    /// since: 1
725    fn subscribe(&mut self, event: &str) -> Result<(), CallError>;
726    /// since: 1
727    fn unsubscribe(&mut self, event: &str) -> Result<(), CallError>;
728    /// since: 1
729    fn get_color_by_name(&mut self, name: &str) -> Result<i64, CallError>;
730    /// since: 1
731    fn get_color_map(&mut self) -> Result<Vec<(Value, Value)>, CallError>;
732    /// since: 2
733    fn get_mode(&mut self) -> Result<Vec<(Value, Value)>, CallError>;
734    /// since: 3
735    fn get_keymap(&mut self, mode: &str) -> Result<Vec<Vec<(Value, Value)>>, CallError>;
736    /// since: 4
737    fn get_commands(&mut self, opts: Vec<(Value, Value)>)
738        -> Result<Vec<(Value, Value)>, CallError>;
739    /// since: 1
740    fn get_api_info(&mut self) -> Result<Vec<Value>, CallError>;
741    /// since: 4
742    fn set_client_info(
743        &mut self,
744        name: &str,
745        version: Vec<(Value, Value)>,
746        typ: &str,
747        methods: Vec<(Value, Value)>,
748        attributes: Vec<(Value, Value)>,
749    ) -> Result<(), CallError>;
750    /// since: 4
751    fn get_chan_info(&mut self, chan: i64) -> Result<Vec<(Value, Value)>, CallError>;
752    /// since: 4
753    fn list_chans(&mut self) -> Result<Vec<Value>, CallError>;
754    /// since: 1
755    fn call_atomic(&mut self, calls: Vec<Value>) -> Result<Vec<Value>, CallError>;
756    /// since: 4
757    fn parse_expression(
758        &mut self,
759        expr: &str,
760        flags: &str,
761        highlight: bool,
762    ) -> Result<Vec<(Value, Value)>, CallError>;
763    /// since: 4
764    fn list_uis(&mut self) -> Result<Vec<Value>, CallError>;
765    /// since: 4
766    fn get_proc_children(&mut self, pid: i64) -> Result<Vec<Value>, CallError>;
767    /// since: 4
768    fn get_proc(&mut self, pid: i64) -> Result<Value, CallError>;
769}
770
771impl NeovimApi for Neovim {
772    fn ui_detach(&mut self) -> Result<(), CallError> {
773        self.session
774            .call("nvim_ui_detach", call_args![])
775            .map(map_result)
776            .map_err(map_generic_error)
777    }
778
779    fn ui_try_resize(&mut self, width: i64, height: i64) -> Result<(), CallError> {
780        self.session
781            .call("nvim_ui_try_resize", call_args![width, height])
782            .map(map_result)
783            .map_err(map_generic_error)
784    }
785
786    fn ui_set_option(&mut self, name: &str, value: Value) -> Result<(), CallError> {
787        self.session
788            .call("nvim_ui_set_option", call_args![name, value])
789            .map(map_result)
790            .map_err(map_generic_error)
791    }
792
793    fn command(&mut self, command: &str) -> Result<(), CallError> {
794        self.session
795            .call("nvim_command", call_args![command])
796            .map(map_result)
797            .map_err(map_generic_error)
798    }
799
800    fn get_hl_by_name(&mut self, name: &str, rgb: bool) -> Result<Vec<(Value, Value)>, CallError> {
801        self.session
802            .call("nvim_get_hl_by_name", call_args![name, rgb])
803            .map(map_result)
804            .map_err(map_generic_error)
805    }
806
807    fn get_hl_by_id(&mut self, hl_id: i64, rgb: bool) -> Result<Vec<(Value, Value)>, CallError> {
808        self.session
809            .call("nvim_get_hl_by_id", call_args![hl_id, rgb])
810            .map(map_result)
811            .map_err(map_generic_error)
812    }
813
814    fn feedkeys(&mut self, keys: &str, mode: &str, escape_csi: bool) -> Result<(), CallError> {
815        self.session
816            .call("nvim_feedkeys", call_args![keys, mode, escape_csi])
817            .map(map_result)
818            .map_err(map_generic_error)
819    }
820
821    fn input(&mut self, keys: &str) -> Result<i64, CallError> {
822        self.session
823            .call("nvim_input", call_args![keys])
824            .map(map_result)
825            .map_err(map_generic_error)
826    }
827
828    fn replace_termcodes(
829        &mut self,
830        str: &str,
831        from_part: bool,
832        do_lt: bool,
833        special: bool,
834    ) -> Result<String, CallError> {
835        self.session
836            .call(
837                "nvim_replace_termcodes",
838                call_args![str, from_part, do_lt, special],
839            )
840            .map(map_result)
841            .map_err(map_generic_error)
842    }
843
844    fn command_output(&mut self, command: &str) -> Result<String, CallError> {
845        self.session
846            .call("nvim_command_output", call_args![command])
847            .map(map_result)
848            .map_err(map_generic_error)
849    }
850
851    fn eval(&mut self, expr: &str) -> Result<Value, CallError> {
852        self.session
853            .call("nvim_eval", call_args![expr])
854            .map(map_result)
855            .map_err(map_generic_error)
856    }
857
858    fn execute_lua(&mut self, code: &str, args: Vec<Value>) -> Result<Value, CallError> {
859        self.session
860            .call("nvim_execute_lua", call_args![code, args])
861            .map(map_result)
862            .map_err(map_generic_error)
863    }
864
865    fn call_function(&mut self, fname: &str, args: Vec<Value>) -> Result<Value, CallError> {
866        self.session
867            .call("nvim_call_function", call_args![fname, args])
868            .map(map_result)
869            .map_err(map_generic_error)
870    }
871
872    fn call_dict_function(
873        &mut self,
874        dict: Value,
875        fname: &str,
876        args: Vec<Value>,
877    ) -> Result<Value, CallError> {
878        self.session
879            .call("nvim_call_dict_function", call_args![dict, fname, args])
880            .map(map_result)
881            .map_err(map_generic_error)
882    }
883
884    fn strwidth(&mut self, text: &str) -> Result<i64, CallError> {
885        self.session
886            .call("nvim_strwidth", call_args![text])
887            .map(map_result)
888            .map_err(map_generic_error)
889    }
890
891    fn list_runtime_paths(&mut self) -> Result<Vec<String>, CallError> {
892        self.session
893            .call("nvim_list_runtime_paths", call_args![])
894            .map(map_result)
895            .map_err(map_generic_error)
896    }
897
898    fn set_current_dir(&mut self, dir: &str) -> Result<(), CallError> {
899        self.session
900            .call("nvim_set_current_dir", call_args![dir])
901            .map(map_result)
902            .map_err(map_generic_error)
903    }
904
905    fn get_current_line(&mut self) -> Result<String, CallError> {
906        self.session
907            .call("nvim_get_current_line", call_args![])
908            .map(map_result)
909            .map_err(map_generic_error)
910    }
911
912    fn set_current_line(&mut self, line: &str) -> Result<(), CallError> {
913        self.session
914            .call("nvim_set_current_line", call_args![line])
915            .map(map_result)
916            .map_err(map_generic_error)
917    }
918
919    fn del_current_line(&mut self) -> Result<(), CallError> {
920        self.session
921            .call("nvim_del_current_line", call_args![])
922            .map(map_result)
923            .map_err(map_generic_error)
924    }
925
926    fn get_var(&mut self, name: &str) -> Result<Value, CallError> {
927        self.session
928            .call("nvim_get_var", call_args![name])
929            .map(map_result)
930            .map_err(map_generic_error)
931    }
932
933    fn set_var(&mut self, name: &str, value: Value) -> Result<(), CallError> {
934        self.session
935            .call("nvim_set_var", call_args![name, value])
936            .map(map_result)
937            .map_err(map_generic_error)
938    }
939
940    fn del_var(&mut self, name: &str) -> Result<(), CallError> {
941        self.session
942            .call("nvim_del_var", call_args![name])
943            .map(map_result)
944            .map_err(map_generic_error)
945    }
946
947    fn get_vvar(&mut self, name: &str) -> Result<Value, CallError> {
948        self.session
949            .call("nvim_get_vvar", call_args![name])
950            .map(map_result)
951            .map_err(map_generic_error)
952    }
953
954    fn get_option(&mut self, name: &str) -> Result<Value, CallError> {
955        self.session
956            .call("nvim_get_option", call_args![name])
957            .map(map_result)
958            .map_err(map_generic_error)
959    }
960
961    fn set_option(&mut self, name: &str, value: Value) -> Result<(), CallError> {
962        self.session
963            .call("nvim_set_option", call_args![name, value])
964            .map(map_result)
965            .map_err(map_generic_error)
966    }
967
968    fn out_write(&mut self, str: &str) -> Result<(), CallError> {
969        self.session
970            .call("nvim_out_write", call_args![str])
971            .map(map_result)
972            .map_err(map_generic_error)
973    }
974
975    fn err_write(&mut self, str: &str) -> Result<(), CallError> {
976        self.session
977            .call("nvim_err_write", call_args![str])
978            .map(map_result)
979            .map_err(map_generic_error)
980    }
981
982    fn err_writeln(&mut self, str: &str) -> Result<(), CallError> {
983        self.session
984            .call("nvim_err_writeln", call_args![str])
985            .map(map_result)
986            .map_err(map_generic_error)
987    }
988
989    fn list_bufs(&mut self) -> Result<Vec<Buffer>, CallError> {
990        self.session
991            .call("nvim_list_bufs", call_args![])
992            .map(map_result)
993            .map_err(map_generic_error)
994    }
995
996    fn get_current_buf(&mut self) -> Result<Buffer, CallError> {
997        self.session
998            .call("nvim_get_current_buf", call_args![])
999            .map(map_result)
1000            .map_err(map_generic_error)
1001    }
1002
1003    fn set_current_buf(&mut self, buffer: &Buffer) -> Result<(), CallError> {
1004        self.session
1005            .call("nvim_set_current_buf", call_args![buffer])
1006            .map(map_result)
1007            .map_err(map_generic_error)
1008    }
1009
1010    fn list_wins(&mut self) -> Result<Vec<Window>, CallError> {
1011        self.session
1012            .call("nvim_list_wins", call_args![])
1013            .map(map_result)
1014            .map_err(map_generic_error)
1015    }
1016
1017    fn get_current_win(&mut self) -> Result<Window, CallError> {
1018        self.session
1019            .call("nvim_get_current_win", call_args![])
1020            .map(map_result)
1021            .map_err(map_generic_error)
1022    }
1023
1024    fn set_current_win(&mut self, window: &Window) -> Result<(), CallError> {
1025        self.session
1026            .call("nvim_set_current_win", call_args![window])
1027            .map(map_result)
1028            .map_err(map_generic_error)
1029    }
1030
1031    fn list_tabpages(&mut self) -> Result<Vec<Tabpage>, CallError> {
1032        self.session
1033            .call("nvim_list_tabpages", call_args![])
1034            .map(map_result)
1035            .map_err(map_generic_error)
1036    }
1037
1038    fn get_current_tabpage(&mut self) -> Result<Tabpage, CallError> {
1039        self.session
1040            .call("nvim_get_current_tabpage", call_args![])
1041            .map(map_result)
1042            .map_err(map_generic_error)
1043    }
1044
1045    fn set_current_tabpage(&mut self, tabpage: &Tabpage) -> Result<(), CallError> {
1046        self.session
1047            .call("nvim_set_current_tabpage", call_args![tabpage])
1048            .map(map_result)
1049            .map_err(map_generic_error)
1050    }
1051
1052    fn create_namespace(&mut self, name: &str) -> Result<i64, CallError> {
1053        self.session
1054            .call("nvim_create_namespace", call_args![name])
1055            .map(map_result)
1056            .map_err(map_generic_error)
1057    }
1058
1059    fn get_namespaces(&mut self) -> Result<Vec<(Value, Value)>, CallError> {
1060        self.session
1061            .call("nvim_get_namespaces", call_args![])
1062            .map(map_result)
1063            .map_err(map_generic_error)
1064    }
1065
1066    fn subscribe(&mut self, event: &str) -> Result<(), CallError> {
1067        self.session
1068            .call("nvim_subscribe", call_args![event])
1069            .map(map_result)
1070            .map_err(map_generic_error)
1071    }
1072
1073    fn unsubscribe(&mut self, event: &str) -> Result<(), CallError> {
1074        self.session
1075            .call("nvim_unsubscribe", call_args![event])
1076            .map(map_result)
1077            .map_err(map_generic_error)
1078    }
1079
1080    fn get_color_by_name(&mut self, name: &str) -> Result<i64, CallError> {
1081        self.session
1082            .call("nvim_get_color_by_name", call_args![name])
1083            .map(map_result)
1084            .map_err(map_generic_error)
1085    }
1086
1087    fn get_color_map(&mut self) -> Result<Vec<(Value, Value)>, CallError> {
1088        self.session
1089            .call("nvim_get_color_map", call_args![])
1090            .map(map_result)
1091            .map_err(map_generic_error)
1092    }
1093
1094    fn get_mode(&mut self) -> Result<Vec<(Value, Value)>, CallError> {
1095        self.session
1096            .call("nvim_get_mode", call_args![])
1097            .map(map_result)
1098            .map_err(map_generic_error)
1099    }
1100
1101    fn get_keymap(&mut self, mode: &str) -> Result<Vec<Vec<(Value, Value)>>, CallError> {
1102        self.session
1103            .call("nvim_get_keymap", call_args![mode])
1104            .map(map_result)
1105            .map_err(map_generic_error)
1106    }
1107
1108    fn get_commands(
1109        &mut self,
1110        opts: Vec<(Value, Value)>,
1111    ) -> Result<Vec<(Value, Value)>, CallError> {
1112        self.session
1113            .call("nvim_get_commands", call_args![opts])
1114            .map(map_result)
1115            .map_err(map_generic_error)
1116    }
1117
1118    fn get_api_info(&mut self) -> Result<Vec<Value>, CallError> {
1119        self.session
1120            .call("nvim_get_api_info", call_args![])
1121            .map(map_result)
1122            .map_err(map_generic_error)
1123    }
1124
1125    fn set_client_info(
1126        &mut self,
1127        name: &str,
1128        version: Vec<(Value, Value)>,
1129        typ: &str,
1130        methods: Vec<(Value, Value)>,
1131        attributes: Vec<(Value, Value)>,
1132    ) -> Result<(), CallError> {
1133        self.session
1134            .call(
1135                "nvim_set_client_info",
1136                call_args![name, version, typ, methods, attributes],
1137            )
1138            .map(map_result)
1139            .map_err(map_generic_error)
1140    }
1141
1142    fn get_chan_info(&mut self, chan: i64) -> Result<Vec<(Value, Value)>, CallError> {
1143        self.session
1144            .call("nvim_get_chan_info", call_args![chan])
1145            .map(map_result)
1146            .map_err(map_generic_error)
1147    }
1148
1149    fn list_chans(&mut self) -> Result<Vec<Value>, CallError> {
1150        self.session
1151            .call("nvim_list_chans", call_args![])
1152            .map(map_result)
1153            .map_err(map_generic_error)
1154    }
1155
1156    fn call_atomic(&mut self, calls: Vec<Value>) -> Result<Vec<Value>, CallError> {
1157        self.session
1158            .call("nvim_call_atomic", call_args![calls])
1159            .map(map_result)
1160            .map_err(map_generic_error)
1161    }
1162
1163    fn parse_expression(
1164        &mut self,
1165        expr: &str,
1166        flags: &str,
1167        highlight: bool,
1168    ) -> Result<Vec<(Value, Value)>, CallError> {
1169        self.session
1170            .call("nvim_parse_expression", call_args![expr, flags, highlight])
1171            .map(map_result)
1172            .map_err(map_generic_error)
1173    }
1174
1175    fn list_uis(&mut self) -> Result<Vec<Value>, CallError> {
1176        self.session
1177            .call("nvim_list_uis", call_args![])
1178            .map(map_result)
1179            .map_err(map_generic_error)
1180    }
1181
1182    fn get_proc_children(&mut self, pid: i64) -> Result<Vec<Value>, CallError> {
1183        self.session
1184            .call("nvim_get_proc_children", call_args![pid])
1185            .map(map_result)
1186            .map_err(map_generic_error)
1187    }
1188
1189    fn get_proc(&mut self, pid: i64) -> Result<Value, CallError> {
1190        self.session
1191            .call("nvim_get_proc", call_args![pid])
1192            .map(map_result)
1193            .map_err(map_generic_error)
1194    }
1195}