| @@ 130-163 (lines=34) @@ | ||
| 127 | return dec |
|
| 128 | ||
| 129 | ||
| 130 | def function(name=None, range=False, sync=False, |
|
| 131 | allow_nested=False, eval=None): |
|
| 132 | """Tag a function or plugin method as a Nvim function handler.""" |
|
| 133 | def dec(f): |
|
| 134 | if not name: |
|
| 135 | function_name = capitalize_name(f.__name__) |
|
| 136 | else: |
|
| 137 | function_name = name |
|
| 138 | f._nvim_rpc_method_name = 'function:{}'.format(function_name) |
|
| 139 | f._nvim_rpc_sync = sync |
|
| 140 | f._nvim_bind = True |
|
| 141 | f._nvim_prefix_plugin_path = True |
|
| 142 | ||
| 143 | opts = {} |
|
| 144 | ||
| 145 | if range: |
|
| 146 | opts['range'] = '' if range is True else str(range) |
|
| 147 | ||
| 148 | if eval: |
|
| 149 | opts['eval'] = eval |
|
| 150 | ||
| 151 | if not sync and allow_nested: |
|
| 152 | rpc_sync = "urgent" |
|
| 153 | else: |
|
| 154 | rpc_sync = sync |
|
| 155 | ||
| 156 | f._nvim_rpc_spec = { |
|
| 157 | 'type': 'function', |
|
| 158 | 'name': function_name, |
|
| 159 | 'sync': rpc_sync, |
|
| 160 | 'opts': opts |
|
| 161 | } |
|
| 162 | return f |
|
| 163 | return dec |
|
| 164 | ||
| 165 | ||
| 166 | def capitalize_name(name): |
|
| @@ 96-127 (lines=32) @@ | ||
| 93 | return dec |
|
| 94 | ||
| 95 | ||
| 96 | def autocmd(name=None, pattern='*', sync=False, allow_nested=False, eval=None): |
|
| 97 | """Tag a function or plugin method as a Nvim autocommand handler.""" |
|
| 98 | def dec(f): |
|
| 99 | if not name: |
|
| 100 | autocmd_name = capitalize_name(f.__name__) |
|
| 101 | else: |
|
| 102 | autocmd_name = name |
|
| 103 | f._nvim_rpc_method_name = 'autocmd:{}:{}'.format(autocmd_name, pattern) |
|
| 104 | f._nvim_rpc_sync = sync |
|
| 105 | f._nvim_bind = True |
|
| 106 | f._nvim_prefix_plugin_path = True |
|
| 107 | ||
| 108 | opts = { |
|
| 109 | 'pattern': pattern |
|
| 110 | } |
|
| 111 | ||
| 112 | if eval: |
|
| 113 | opts['eval'] = eval |
|
| 114 | ||
| 115 | if not sync and allow_nested: |
|
| 116 | rpc_sync = "urgent" |
|
| 117 | else: |
|
| 118 | rpc_sync = sync |
|
| 119 | ||
| 120 | f._nvim_rpc_spec = { |
|
| 121 | 'type': 'autocmd', |
|
| 122 | 'name': autocmd_name, |
|
| 123 | 'sync': rpc_sync, |
|
| 124 | 'opts': opts |
|
| 125 | } |
|
| 126 | return f |
|
| 127 | return dec |
|
| 128 | ||
| 129 | ||
| 130 | def function(name=None, range=False, sync=False, |
|