|
4 | 4 | importmsgpack |
5 | 5 |
|
6 | 6 | # vim's python binding doesn't have the `call` method, wrap it here |
7 | | -defnvim_call_function(method,args): |
| 7 | + |
| 8 | + |
| 9 | +defnvim_call_function(method,args): |
8 | 10 | vim.vars['_neovim_rpc_tmp_args']=args |
9 | 11 | # vim.eval('getcurpos()') return an array of string, it should be an array |
10 | 12 | # of int. Use json_encode to workaround this |
11 | 13 | returnvim.bindeval('call("%s",g:_neovim_rpc_tmp_args)'%method) |
12 | 14 |
|
| 15 | + |
13 | 16 | defnvim_get_current_buf(): |
14 | 17 | returnvim.current.buffer |
15 | 18 |
|
| 19 | + |
16 | 20 | defnvim_list_bufs(): |
17 | 21 | returnlist(vim.buffers) |
18 | 22 |
|
19 | 23 | # {'return_type': 'Integer', 'since': 1, 'method': True, 'parameters': [['Buffer', 'buffer']], 'name': 'nvim_buf_get_number'} |
| 24 | + |
| 25 | + |
20 | 26 | defnvim_buf_get_number(buf): |
21 | 27 | returnbuf.number |
22 | 28 |
|
| 29 | + |
23 | 30 | defnvim_buf_get_name(buffer): |
24 | 31 | returnbuffer.name |
25 | 32 |
|
| 33 | + |
26 | 34 | defnvim_get_var(name): |
27 | 35 | returnvim.vars[name] |
28 | 36 |
|
29 | | -defnvim_set_var(name,val): |
| 37 | + |
| 38 | +defnvim_set_var(name,val): |
30 | 39 | vim.vars[name]=val |
31 | 40 | returnval |
32 | 41 |
|
33 | | -defnvim_buf_get_var(buffer,name): |
| 42 | + |
| 43 | +defnvim_buf_get_var(buffer,name): |
34 | 44 | returnbuffer.vars[name] |
35 | 45 |
|
36 | | -defnvim_buf_set_var(buffer,name,val): |
| 46 | + |
| 47 | +defnvim_buf_set_var(buffer,name,val): |
37 | 48 | buffer.vars[name]=val |
38 | 49 |
|
39 | | -defnvim_buf_get_lines(buffer,start,end,*args): |
| 50 | + |
| 51 | +defnvim_buf_get_lines(buffer,start,end,*args): |
40 | 52 | ifstart<0: |
41 | 53 | start=len(buffer)+1+start |
42 | 54 | ifend<0: |
43 | 55 | end=len(buffer)+1+end |
44 | 56 | returnbuffer[start:end] |
45 | 57 |
|
| 58 | + |
46 | 59 | defnvim_eval(expr): |
47 | | -returnnvim_call_function('eval',[expr]) |
| 60 | +returnnvim_call_function('eval', [expr]) |
| 61 | + |
48 | 62 |
|
49 | | -defnvim_buf_set_lines(buffer,start,end,err,lines): |
| 63 | +defnvim_buf_set_lines(buffer,start,end,err,lines): |
50 | 64 | ifstart<0: |
51 | 65 | start=len(buffer)+1+start |
52 | 66 | ifend<0: |
53 | 67 | end=len(buffer)+1+end |
54 | 68 | buffer[start:end]=lines |
55 | 69 |
|
56 | | -ifnvim_call_function('bufwinnr',[buffer.number])!=-1: |
| 70 | +ifnvim_call_function('bufwinnr',[buffer.number])!=-1: |
57 | 71 | # vim needs' redraw to update the screen, it seems to be a bug |
58 | 72 | vim.command('redraw') |
59 | 73 |
|
| 74 | + |
60 | 75 | buffer_set_lines=nvim_buf_set_lines |
61 | 76 |
|
| 77 | + |
62 | 78 | defbuffer_line_count(buffer): |
63 | 79 | returnlen(buffer) |
64 | 80 |
|
| 81 | + |
65 | 82 | defnvim_buf_line_count(buffer): |
66 | 83 | returnlen(buffer) |
67 | 84 |
|
| 85 | + |
68 | 86 | defnvim_get_option(name): |
69 | 87 | returnvim.options[name] |
70 | 88 |
|
| 89 | + |
71 | 90 | defnvim_buf_get_option(buf,name): |
72 | 91 | returnbuf.options[name] |
73 | 92 |
|
| 93 | + |
74 | 94 | defnvim_set_option(name,val): |
75 | 95 | vim.options[name]=val |
76 | 96 |
|
| 97 | + |
77 | 98 | defnvim_command(cmd): |
78 | 99 | vim.command(cmd) |
79 | 100 |
|
| 101 | + |
80 | 102 | defnvim_get_current_win(): |
81 | 103 | returnvim.current.window |
82 | 104 |
|
| 105 | + |
83 | 106 | defnvim_win_get_cursor(window): |
84 | 107 | returnwindow.cursor |
85 | 108 |
|
| 109 | + |
86 | 110 | defnvim_win_get_buf(window): |
87 | 111 | returnwindow.buffer |
88 | 112 |
|
| 113 | + |
89 | 114 | defnvim_win_get_width(window): |
90 | 115 | returnwindow.width |
91 | 116 |
|
| 117 | + |
92 | 118 | defnvim_win_set_width(window,width): |
93 | 119 | window.width=width |
94 | 120 |
|
| 121 | + |
95 | 122 | defnvim_win_get_height(window): |
96 | 123 | returnwindow.height |
97 | 124 |
|
| 125 | + |
98 | 126 | defnvim_win_set_height(window,height): |
99 | 127 | window.height=height |
100 | 128 |
|
| 129 | + |
101 | 130 | defnvim_win_get_var(window,name): |
102 | 131 | returnwindow.vars[name] |
103 | 132 |
|
| 133 | + |
104 | 134 | defnvim_win_set_var(window,name,val): |
105 | 135 | window.vars[name]=val |
106 | 136 |
|
| 137 | + |
107 | 138 | defnvim_win_get_option(window,name): |
108 | 139 | returnwindow.options[name] |
109 | 140 |
|
| 141 | + |
110 | 142 | defnvim_win_set_option(window,name,val): |
111 | 143 | window.options[name]=val |
112 | 144 |
|
| 145 | + |
113 | 146 | defnvim_win_get_position(window): |
114 | 147 | return (window.row,window.col) |
115 | 148 |
|
| 149 | + |
116 | 150 | defnvim_win_get_number(window): |
117 | 151 | returnwindow.number |
118 | 152 |
|
| 153 | + |
119 | 154 | defnvim_win_is_valid(window): |
120 | 155 | returnwindow.valid |
121 | 156 |
|
| 157 | + |
122 | 158 | defnvim_out_write(s): |
123 | 159 | nvim_call_function('neovim_rpc#_nvim_out_write', [s]) |
124 | 160 |
|
| 161 | + |
125 | 162 | defnvim_err_write(s): |
126 | 163 | nvim_call_function('neovim_rpc#_nvim_err_write', [s]) |
127 | 164 |
|
128 | 165 | # NOTE https://github.com/autozimu/LanguageClient-neovim/pull/151#issuecomment-339198527 |
129 | 166 | # TODO |
| 167 | + |
| 168 | + |
130 | 169 | defnvim_buf_add_highlight(buf,src_id,*args): |
131 | 170 | returnsrc_id |
132 | 171 |
|
133 | 172 | # NOTE https://github.com/autozimu/LanguageClient-neovim/pull/151#issuecomment-339198527 |
134 | 173 | # TODO |
| 174 | + |
| 175 | + |
135 | 176 | defnvim_buf_clear_highlight(*args): |
136 | 177 | pass |