コード例 #1
0
ファイル: sublime_ui.py プロジェクト: zedtux/floobits-sublime
 def get_empty_window():
     for w in sublime.windows():
         project_data = w.project_data()
         try:
             folders = project_data.get('folders', [])
             if len(folders) == 0 or not folders[0].get('path'):
                 # no project data. co-opt this window
                 return w
         except Exception as e:
             print('project_data.get():', str_e(e))
         try:
             folders = w.folders()
             if len(folders) == 0:
                 # no project data. co-opt this window
                 return w
         except Exception as e:
             print(str_e(e))
コード例 #2
0
ファイル: sublime_ui.py プロジェクト: PengCoX/Oh-My-Sublime
 def get_empty_window():
     for w in sublime.windows():
         project_data = w.project_data()
         try:
             folders = project_data.get('folders', [])
             if len(folders) == 0 or not folders[0].get('path'):
                 # no project data. co-opt this window
                 return w
         except Exception as e:
             print('project_data.get():', str_e(e))
         try:
             folders = w.folders()
             if len(folders) == 0:
                 # no project data. co-opt this window
                 return w
         except Exception as e:
             print(str_e(e))
コード例 #3
0
 def _on_create_buf(self, data):
     super(self.__class__, self)._on_create_buf(data)
     cb = self.create_buf_cbs.get(data['path'])
     if not cb:
         return
     del self.create_buf_cbs[data['path']]
     try:
         cb(data['id'])
     except Exception as e:
         print(str_e(e))
コード例 #4
0
 def _on_create_buf(self, data):
     super(self.__class__, self)._on_create_buf(data)
     cb = self.create_buf_cbs.get(data['path'])
     if not cb:
         return
     del self.create_buf_cbs[data['path']]
     try:
         cb(data['id'])
     except Exception as e:
         print(str_e(e))
コード例 #5
0
 def _on_delete_buf(self, data):
     # TODO: somehow tell the user about this
     view = self.get_view(data['id'])
     if view:
         try:
             view = view.view
             view.set_scratch(True)
             G.WORKSPACE_WINDOW.focus_view(view)
             G.WORKSPACE_WINDOW.run_command("close_file")
         except Exception as e:
             msg.debug('Error closing view: ', str_e(e))
     super(self.__class__, self)._on_delete_buf(data)
コード例 #6
0
 def _on_delete_buf(self, data):
     # TODO: somehow tell the user about this
     view = self.get_view(data['id'])
     if view:
         try:
             view = view.view
             view.set_scratch(True)
             G.WORKSPACE_WINDOW.focus_view(view)
             G.WORKSPACE_WINDOW.run_command("close_file")
         except Exception as e:
             msg.debug('Error closing view: ', str_e(e))
     super(self.__class__, self)._on_delete_buf(data)
コード例 #7
0
ファイル: view.py プロジェクト: tjtrabue/dotfiles
 def update(self, buf, message=True):
     self.buf = buf
     if message:
         msg.log("Floobits synced data for consistency: ", buf["path"])
     G.VIEW_TO_HASH[self.view.buffer_id()] = buf["md5"]
     self.view.set_read_only(False)
     try:
         self.view.run_command("floo_view_replace_region", {"r": [0, self.view.size()], "data": buf["buf"]})
         if message:
             self.set_status("Floobits synced data for consistency.")
         utils.set_timeout(self.erase_status, 5000)
     except Exception as e:
         msg.error("Exception updating view: ", str_e(e))
     if "patch" not in G.PERMS:
         self.set_status("You don't have write permission. Buffer is read-only.")
         self.view.set_read_only(True)
コード例 #8
0
ファイル: view.py プロジェクト: jfernand/floobits-sublime
 def update(self, buf, message=True):
     self.buf = buf
     if message:
         msg.log('Floobits synced data for consistency: ', buf['path'])
     G.VIEW_TO_HASH[self.view.buffer_id()] = buf['md5']
     self.view.set_read_only(False)
     try:
         self.view.run_command('floo_view_replace_region', {'r': [0, self.view.size()], 'data': buf['buf']})
         if message:
             self.set_status('Floobits synced data for consistency.')
         utils.set_timeout(self.erase_status, 5000)
     except Exception as e:
         msg.error('Exception updating view: ', str_e(e))
     if 'patch' not in G.PERMS:
         self.set_status('You don\'t have write permission. Buffer is read-only.')
         self.view.set_read_only(True)
コード例 #9
0
    def delete_buf(self, path, unlink=False):
        if not utils.is_shared(path):
            msg.error('Skipping deleting ', path,
                      ' because it is not in shared path ', G.PROJECT_PATH,
                      '.')
            return
        if os.path.isdir(path):
            for dirpath, dirnames, filenames in os.walk(path):
                # TODO: rexamine this assumption
                # Don't care about hidden stuff
                dirnames[:] = [d for d in dirnames if d[0] != '.']
                for f in filenames:
                    f_path = os.path.join(dirpath, f)
                    if f[0] == '.':
                        msg.log('Not deleting buf for hidden file ', f_path)
                    else:
                        self.delete_buf(f_path, unlink)
            return
        buf_to_delete = self.get_buf_by_path(path)
        if buf_to_delete is None:
            msg.error(path, ' is not in this workspace')
            if unlink:
                try:
                    path = utils.get_full_path(path)
                    msg.log('deleting ', utils.to_rel_path(path))
                    utils.rm(path)
                except Exception as e:
                    msg.debug('Error deleting ', path, ': ', str_e(e))
            return
        msg.log('deleting buffer ', utils.to_rel_path(path))
        event = {
            'name': 'delete_buf',
            'id': buf_to_delete['id'],
            'unlink': unlink,
        }

        def done(d):
            self._on_delete_buf(event)

        self.send(event, done)
コード例 #10
0
    def delete_buf(self, path, unlink=False):
        if not utils.is_shared(path):
            msg.error('Skipping deleting ', path, ' because it is not in shared path ', G.PROJECT_PATH, '.')
            return
        if os.path.isdir(path):
            for dirpath, dirnames, filenames in os.walk(path):
                # TODO: rexamine this assumption
                # Don't care about hidden stuff
                dirnames[:] = [d for d in dirnames if d[0] != '.']
                for f in filenames:
                    f_path = os.path.join(dirpath, f)
                    if f[0] == '.':
                        msg.log('Not deleting buf for hidden file ', f_path)
                    else:
                        self.delete_buf(f_path, unlink)
            return
        buf_to_delete = self.get_buf_by_path(path)
        if buf_to_delete is None:
            msg.error(path, ' is not in this workspace')
            if unlink:
                try:
                    path = utils.get_full_path(path)
                    msg.log('deleting ', utils.to_rel_path(path))
                    utils.rm(path)
                except Exception as e:
                    msg.debug('Error deleting ', path, ': ', str_e(e))
            return
        msg.log('deleting buffer ', utils.to_rel_path(path))
        event = {
            'name': 'delete_buf',
            'id': buf_to_delete['id'],
            'unlink': unlink,
        }

        def done(d):
            self._on_delete_buf(event)

        self.send(event, done)