Skip to content

Instantly share code, notes, and snippets.

@kevinw
Created February 11, 2010 17:08
Show Gist options
  • Save kevinw/301709 to your computer and use it in GitHub Desktop.
Save kevinw/301709 to your computer and use it in GitHub Desktop.
diff -r 5a125fe3302d ropevim.py
--- a/ropevim.py Fri Feb 05 00:33:19 2010 +0300
+++ b/ropevim.py Thu Feb 11 12:07:55 2010 -0500
@@ -7,6 +7,8 @@
import ropemode.environment
import ropemode.interface
+import rope.base.fscommands as fscommands
+
import vim
@@ -108,6 +110,25 @@
def get_text(self):
return self._decode_line('\n'.join(self.buffer)) + u'\n'
+ def set_text(self, filename, contents):
+ buffer = self._get_buffer_for_filename(filename)
+ if buffer is not None:
+ buffer[:] = self._encode_line(contents).split('\n')
+ return True
+ else:
+ return False
+
+ def _get_buffer_for_filename(self, filename):
+ def normpath(p):
+ return os.path.normpath(os.path.abspath(p))
+
+ for buffer in vim.buffers:
+ if normpath(buffer.name) == normpath(filename):
+ return buffer
+
+ def get_editor_changes_fscommands(self, root):
+ return VimFileSystemCommands(self, root)
+
def get_region(self):
start = self._position_to_offset(*self.buffer.mark('<'))
end = self._position_to_offset(*self.buffer.mark('>'))
@@ -363,6 +384,28 @@
def done(self):
echo('%s ... done' % self.name)
+class VimFileSystemCommands(object):
+ def __init__(self, env, root):
+ self.env = env
+ self.fscommands = fscommands.create_fscommands(root)
+
+ def create_file(self, path):
+ return self.fscommands.create_file(path)
+
+ def create_folder(self, path):
+ return self.fscommands.create_folder(path)
+
+ def move(self, path, new_location):
+ return self.fscommands.move(path, new_location)
+
+ def remove(self, path):
+ return self.fscommands.remove(path)
+
+ def write(self, path, data):
+ if not self.env.set_text(path, data):
+ return self.fscommands.write(self, path, data)
+ else:
+ return True
def echo(message):
print message
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment