MCPcopy
hub / github.com/SirVer/ultisnips / __setitem__

Method __setitem__

pythonx/UltiSnips/buffer_proxy.py:94–114  ·  view source on GitHub ↗

Behaves as vim.current.window.buffer.__setitem__ except it tracks changes and applies them to the current snippet stack.

(self, key, value)

Source from the content-addressed store, hash-verified

92 )
93
94 def __setitem__(self, key, value):
95 """
96 Behaves as vim.current.window.buffer.__setitem__ except it tracks
97 changes and applies them to the current snippet stack.
98 """
99 if isinstance(key, slice):
100 value = list(value)
101 changes = list(self._get_diff(key.start, key.stop, value))
102 self._buffer[key.start : key.stop] = [line.strip("\n") for line in value]
103 else:
104 value = value
105 changes = list(self._get_line_diff(key, self._buffer[key], value))
106 self._buffer[key] = value
107
108 self._change_tick += 1
109
110 if self._forward_edits:
111 for change in changes:
112 self._apply_change(change)
113 if self._snippets_stack:
114 self._vstate.remember_buffer(self._snippets_stack[0])
115
116 def __getitem__(self, key):
117 """

Callers 1

__delitem__Method · 0.95

Calls 4

_get_diffMethod · 0.95
_get_line_diffMethod · 0.95
_apply_changeMethod · 0.95
remember_bufferMethod · 0.80

Tested by

no test coverage detected