def get_view_text_by_path(self, path): for v in G.WORKSPACE_WINDOW.views(): if not v.file_name(): continue try: rel_path = utils.to_rel_path(v.file_name()) except ValueError: continue if path == rel_path: return get_text(v)
def on_post_save(self, view, agent): view_buf_id = view.buffer_id() def cleanup(): i = self.between_save_events[view_buf_id] i[0] -= 1 if view.is_scratch(): return i = self.between_save_events[view_buf_id] if agent.ignored_saves[view_buf_id] > 0: agent.ignored_saves[view_buf_id] -= 1 return cleanup() old_name = i[1] i = self.between_save_events[view_buf_id] if i[0] > 1: return cleanup() old_name = i[1] event = None buf = get_buf(view) try: name = utils.to_rel_path(view.file_name()) except ValueError: name = view.file_name() is_shared = utils.is_shared(view.file_name()) if buf is None: if not is_shared: return cleanup() if G.IGNORE and G.IGNORE.is_ignored(view.file_name(), log=True): msg.log(view.file_name(), ' is ignored. Not creating buffer.') return cleanup() msg.log('Creating new buffer ', name, ' ', view.file_name()) event = {'name': 'create_buf', 'buf': get_text(view), 'path': name} elif name != old_name: if is_shared: msg.log('renamed buffer ', old_name, ' to ', name) event = {'name': 'rename_buf', 'id': buf['id'], 'path': name} else: msg.log('deleting buffer from shared: ', name) event = { 'name': 'delete_buf', 'id': buf['id'], } if event: agent.send(event) if is_shared and buf: agent.views_changed.append(('saved', view, buf)) cleanup()
def on_modified(self, view, agent): buf = is_view_loaded(view) if not buf: return text = get_text(view) if buf['encoding'] != 'utf8': return msg.warn('Floobits does not support patching binary files at this time') text = text.encode('utf-8') view_md5 = hashlib.md5(text).hexdigest() if view_md5 == G.VIEW_TO_HASH.get(view.buffer_id()): return G.VIEW_TO_HASH[view.buffer_id()] = view_md5 msg.debug('changed view %s buf id %s' % (buf['path'], buf['id'])) self.disable_stalker_mode(2000) buf['forced_patch'] = False agent.views_changed.append((view, buf))
def on_modified(self, view, agent): buf = is_view_loaded(view) if not buf: return text = get_text(view) if buf['encoding'] != 'utf8': return msg.warn('Floobits does not support patching binary files at this time') text = text.encode('utf-8') view_md5 = hashlib.md5(text).hexdigest() if view_md5 == G.VIEW_TO_HASH.get(view.buffer_id()): return G.VIEW_TO_HASH[view.buffer_id()] = view_md5 msg.debug('changed view %s buf id %s' % (buf['path'], buf['id'])) self.disable_follow_mode(2000) buf['forced_patch'] = False agent.views_changed.append((view, buf))
def on_modified(self, view, agent, activated=False, *args): buf = is_view_loaded(view) if not buf: return text = get_text(view) if buf['encoding'] != 'utf8': return msg.warn('Floobits does not support patching binary files at this time') text = text.encode('utf-8') view_md5 = hashlib.md5(text).hexdigest() bid = view.buffer_id() buf['forced_patch'] = False if view_md5 == G.VIEW_TO_HASH.get(bid): self._highlights.add(bid) return G.VIEW_TO_HASH[view.buffer_id()] = view_md5 msg.debug('changed view ', buf['path'], ' buf id ', buf['id']) if not activated: self.disable_follow_mode(2000) agent.views_changed.append(('patch', view, buf))
def on_modified(self, view, agent, activated=False, *args): buf = is_view_loaded(view) if not buf: return text = get_text(view) if buf['encoding'] != 'utf8': return msg.warn( 'Floobits does not support patching binary files at this time') text = text.encode('utf-8') view_md5 = hashlib.md5(text).hexdigest() bid = view.buffer_id() buf['forced_patch'] = False if view_md5 == G.VIEW_TO_HASH.get(bid): self._highlights.add(bid) return G.VIEW_TO_HASH[view.buffer_id()] = view_md5 msg.debug('changed view ', buf['path'], ' buf id ', buf['id']) if not activated: self.disable_follow_mode(2000) agent.views_changed.append(('patch', view, buf))
def on_post_save(self, view, agent): view_buf_id = view.buffer_id() def cleanup(): i = self.between_save_events[view_buf_id] i[0] -= 1 if view == G.CHAT_VIEW or view.file_name() == G.CHAT_VIEW_PATH: return i = self.between_save_events[view_buf_id] if agent.ignored_saves[view_buf_id] > 0: agent.ignored_saves[view_buf_id] -= 1 return cleanup() old_name = i[1] i = self.between_save_events[view_buf_id] if i[0] > 1: return cleanup() old_name = i[1] event = None buf = get_buf(view) try: name = utils.to_rel_path(view.file_name()) except ValueError: name = view.file_name() is_shared = utils.is_shared(view.file_name()) if buf is None: if not is_shared: return cleanup() if ignore.is_ignored(view.file_name()): msg.log('%s is ignored. Not creating buffer.' % view.file_name()) return cleanup() msg.log('Creating new buffer ', name, view.file_name()) event = { 'name': 'create_buf', 'buf': get_text(view), 'path': name } elif name != old_name: if is_shared: msg.log('renamed buffer {0} to {1}'.format(old_name, name)) event = { 'name': 'rename_buf', 'id': buf['id'], 'path': name } else: msg.log('deleting buffer from shared: {0}'.format(name)) event = { 'name': 'delete_buf', 'id': buf['id'], } if event: agent.send(event) if is_shared and buf: agent.send({'name': 'saved', 'id': buf['id']}) cleanup()
def on_post_save(self, view, agent): view_buf_id = view.buffer_id() def cleanup(): i = self.between_save_events[view_buf_id] i[0] -= 1 if view.is_scratch(): return i = self.between_save_events[view_buf_id] if agent.ignored_saves[view_buf_id] > 0: agent.ignored_saves[view_buf_id] -= 1 return cleanup() old_name = i[1] i = self.between_save_events[view_buf_id] if i[0] > 1: return cleanup() old_name = i[1] event = None buf = get_buf(view) try: name = utils.to_rel_path(view.file_name()) except ValueError: name = view.file_name() is_shared = utils.is_shared(view.file_name()) if buf is None: if not is_shared: return cleanup() if G.IGNORE and G.IGNORE.is_ignored(view.file_name(), log=True): msg.log(view.file_name(), ' is ignored. Not creating buffer.') return cleanup() msg.log('Creating new buffer ', name, view.file_name()) event = { 'name': 'create_buf', 'buf': get_text(view), 'path': name } elif name != old_name: if is_shared: msg.log('renamed buffer ', old_name, ' to ', name) event = { 'name': 'rename_buf', 'id': buf['id'], 'path': name } else: msg.log('deleting buffer from shared: ', name) event = { 'name': 'delete_buf', 'id': buf['id'], } if event: agent.send(event) if is_shared and buf: agent.views_changed.append(('saved', view, buf)) cleanup()
def get_text(self): return get_text(self.view)