def _make_buffer(self, name, contents, empty_goto=True, switch=False, window='other', modes=[], fit_lines=None): """Make an emacs buffer `window` can be one of `None`, 'current' or 'other'. """ new_buffer = lisp.get_buffer_create(name) lisp.set_buffer(new_buffer) lisp.toggle_read_only(-1) lisp.erase_buffer() if contents or empty_goto: lisp.insert(contents) for mode in modes: lisp[mode + '-mode']() lisp.buffer_disable_undo(new_buffer) lisp.toggle_read_only(1) if switch: if window == 'current': lisp.switch_to_buffer(new_buffer) else: lisp.switch_to_buffer_other_window(new_buffer) lisp.goto_char(lisp.point_min()) elif window == 'other': new_window = lisp.display_buffer(new_buffer) lisp.set_window_point(new_window, lisp.point_min()) if fit_lines and lisp.fboundp(lisp['fit-window-to-buffer']): lisp.fit_window_to_buffer(new_window, fit_lines) lisp.bury_buffer(new_buffer) return new_buffer
def new_buffer_from_paste(paste): """Creates a new buffer from `paste`""" lisp.switch_to_buffer('paste %s' % paste.id) lisp.erase_buffer() lisp.insert(paste.code) # simple guessing of the buffer mode # XXX: is there a better way? # FIXME: do at least a bit of error handling and check, if there is such a mode mode = lisp['%s-mode' % paste.language] mode()
def new_buffer_from_paste(paste): """Creates a new buffer from `paste`""" lisp.switch_to_buffer('paste {0.id}'.format(paste)) lisp.erase_buffer() lisp.insert(paste.code) # simple guessing of the buffer mode # XXX: is there a better way? # FIXME: do at least a bit of error handling and check, if there is such a mode mode = lisp['{0.language}-mode'.format(paste)] mode()
def complete_py(): thing, start = thing_at_point() lisp.message(thing) text, matches = ip.complete(thing) lisp.switch_to_buffer("*pytexipy*") lisp.kill_buffer(lisp.get_buffer("*pytexipy*")) lisp.switch_to_buffer_other_window("*pytexipy*") lisp.insert(thing) for item in matches: lisp.insert(item) lisp.insert("\n")
def _hide_buffer(self, name, delete=True): buffer = lisp.get_buffer(name) if buffer is not None: window = lisp.get_buffer_window(buffer) if window is not None: lisp.bury_buffer(buffer) if delete: lisp.delete_window(window) else: if lisp.buffer_name(lisp.current_buffer()) == name: lisp.switch_to_buffer(None)
def pick_method(): ''' pick the whole line from the list of function calls (completions) ''' print "in pick method" thing, start = thing_at_point(RIGHT2, LEFT2) prev_buffer = os.environ['BUFFER'] print "-"+prev_buffer+"-" lisp.kill_buffer(lisp.get_buffer("*PyJde*")) lisp.switch_to_buffer(prev_buffer) lisp.insert(thing) pos = lisp.point() print "pos="+(str(pos-1)) lisp.goto_char(pos-1) lisp.delete_other_windows()
def promptCallback(filename,line,colbegin,colend): let = Let().push_excursion() # gets popped when let goes out of scope buffer = lisp.current_buffer() if let: ans = 0 lisp.find_file(filename) lisp.goto_line(line) lisp.move_to_column(colbegin) lisp.set_mark(lisp.point() + (colend - colbegin)) if is_xemacs: lisp.activate_region() ans = lisp.y_or_n_p("Couldn't deduce object type - rename this method reference? ") del let lisp.switch_to_buffer(buffer) return ans
def promptCallback(filename, line, colbegin, colend): let = Let().push_excursion() # gets popped when let goes out of scope buffer = lisp.current_buffer() if let: ans = 0 lisp.find_file(filename) lisp.goto_line(line) lisp.move_to_column(colbegin) lisp.set_mark(lisp.point() + (colend - colbegin)) if is_xemacs: lisp.activate_region() ans = lisp.y_or_n_p( "Couldn't deduce object type - rename this method reference? ") del let lisp.switch_to_buffer(buffer) return ans
def publish_XMLRPC_Server(): lisp.switch_to_buffer("*Messages*") # lisp.delete_other_window() lisp.message("XML RPC Started on port 9000. Ctrl-G to stop") server = SimpleXMLRPCServer(("127.0.0.1", 9000)) # We will allow dotted names: server.register_function(closeConnection, "closeConnection") server.register_instance(lisp, True) #server.serve_forever() globals()['closeConnectionFlag'] = False while globals()['closeConnectionFlag'] == False: server.handle_request() lisp.message("Connection closed")
def publish_XMLRPC_Server(): lisp.switch_to_buffer("*Messages*") # lisp.delete_other_window() lisp.message("XML RPC Started on port 9000. Ctrl-G to stop") server=SimpleXMLRPCServer(("127.0.0.1",9000)) # We will allow dotted names: server.register_function(closeConnection,"closeConnection") server.register_instance(lisp, True) #server.serve_forever() globals()['closeConnectionFlag']=False while globals()['closeConnectionFlag']==False: server.handle_request() lisp.message("Connection closed")
def pop_mark(self): marker_ring = self.get('marker_ring') if lisp.ring_empty_p(marker_ring): self.message("There are no more marked buffers in \ the rope-marker-ring") else: oldbuf = lisp.current_buffer() marker = lisp.ring_remove(marker_ring, 0) marker_buffer = lisp.marker_buffer(marker) if marker_buffer is None: lisp.message("The marked buffer has been deleted") return marker_point = lisp.marker_position(marker) lisp.set_buffer(marker_buffer) lisp.goto_char(marker_point) #Kill that marker so it doesn't slow down editing. lisp.set_marker(marker, None, None) if not lisp.eq(oldbuf, marker_buffer): lisp.switch_to_buffer(marker_buffer)
def pick_import(): ''' pick the whole line from the list of imports ''' print "in pick import" thing, start = thing_at_point_regex("\n", "\n") prev_buffer = os.environ['BUFFER'] print "-"+prev_buffer+"-" lisp.kill_buffer(lisp.get_buffer("*PyJde*")) lisp.switch_to_buffer(prev_buffer) remember_where = lisp.point() content = lisp.buffer_substring(1, lisp.point()) insert_where = re.search("package\s.*;", content).span()[1] lisp.goto_char(insert_where + 1) lisp.insert("\n\nimport " + thing + ";") lisp.message(thing + " is imported") lisp.goto_char(remember_where) lisp.delete_other_windows()
# The +1 is because we prefer to have the result of an assignation when the cursor is on it, not one line later. var_info = jarvis.commands.external_inspect_vars(filename, line + 1) var_info = utils.inspect_format(var_info) found = False for window in lisp.window_list(): buffer = lisp.window_buffer(window) if lisp.buffer_name(buffer) == BUFFER_NAME: found = True buffer = lisp.get_buffer_create(BUFFER_NAME) lisp.set_buffer(buffer) lisp.erase_buffer() lisp.insert(str(var_info)) if not found: lisp.split_window_vertically(-10) lisp.other_window(1) lisp.switch_to_buffer(buffer) lisp.goto_line(1) lisp.other_window(1) # if not timer_installed: timer_installed = utils.get_command_global_var(VAR_KEY, False) if not timer_installed: utils.set_command_global_var(VAR_KEY, True) # This is a bit unstable right now, it trigger refresh of the window when needed ... #lisp.run_at_time(True, 1.0, lisp.j_inspect_vars_refresh)
def initLogs(): lisp.switch_to_buffer("*LogBuffer*") debug("Log Buffer succesfully initialized by Pymacs")
var_info = jarvis.commands.external_inspect_vars(filename, line + 1) var_info = utils.inspect_format(var_info) found = False for window in lisp.window_list(): buffer = lisp.window_buffer(window) if lisp.buffer_name(buffer) == BUFFER_NAME: found = True buffer = lisp.get_buffer_create(BUFFER_NAME) lisp.set_buffer(buffer) lisp.erase_buffer() lisp.insert(str(var_info)) if not found: lisp.split_window_vertically(-10) lisp.other_window(1) lisp.switch_to_buffer(buffer) lisp.goto_line(1) lisp.other_window(1) # if not timer_installed: timer_installed = utils.get_command_global_var(VAR_KEY, False) if not timer_installed: utils.set_command_global_var(VAR_KEY, True) # This is a bit unstable right now, it trigger refresh of the window when needed ... #lisp.run_at_time(True, 1.0, lisp.j_inspect_vars_refresh)
def reloadBuffer(self): # ;; (switch-to-buffer bname) # ;; (revert-buffer 'IGNORE-AUTO 'NOCONFIRM) lisp.switch_to_buffer(self.bufferName) lisp.revert_buffer(lisp.IGNORE_AUTO, lisp.NOCONFIRM)