예제 #1
0
    def replace_content(self, value, start=None, end=None):
        """
		Replace editor's content or it's part (from <code>start</code> to
		<code>end</code> index). If <code>value</code> contains
		<code>caret_placeholder</code>, the editor will put caret into
		this position. If you skip <code>start</code> and <code>end</code>
		arguments, the whole target's content will be replaced with
		<code>value</code>.

		If you pass <code>start</code> argument only,
		the <code>value</code> will be placed at <code>start</code> string
		index of current content.

		If you pass <code>start</code> and <code>end</code> arguments,
		the corresponding substring of current target's content will be
		replaced with <code>value</code>
		@param value: Content you want to paste
		@type value: str
		@param start: Start index of editor's content
		@type start: int
		@param end: End index of editor's content
		@type end: int
		"""
        if start is None and end is None:
            iter_start, iter_end = self.__buffer.get_bounds()
        elif end is None:
            iter_start = self.__buffer.get_iter_at_offset(start)
            iter_end = iter_start.copy()
        else:
            iter_start = self.__buffer.get_iter_at_offset(start)
            iter_end = self.__buffer.get_iter_at_offset(end)
        self.__buffer.begin_user_action()
        self.__buffer.delete(iter_start, iter_end)
        start_insertion_offset = self.__editor.cursor.get_offset()
        from zen_actions import get_current_line_padding
        padding = get_current_line_padding(self)
        from zen_core import pad_string
        self.__buffer.insert_at_cursor(pad_string(value, padding))
        end_insertion_offset = self.__editor.cursor.get_offset()
        self.__buffer.end_user_action()
        self.__manager.emit("insertion-offsets",
                            (start_insertion_offset, end_insertion_offset))
        return
예제 #2
0
	def replace_content(self, value, start=None, end=None):
		"""
		Replace editor's content or it's part (from <code>start</code> to
		<code>end</code> index). If <code>value</code> contains
		<code>caret_placeholder</code>, the editor will put caret into
		this position. If you skip <code>start</code> and <code>end</code>
		arguments, the whole target's content will be replaced with
		<code>value</code>.

		If you pass <code>start</code> argument only,
		the <code>value</code> will be placed at <code>start</code> string
		index of current content.

		If you pass <code>start</code> and <code>end</code> arguments,
		the corresponding substring of current target's content will be
		replaced with <code>value</code>
		@param value: Content you want to paste
		@type value: str
		@param start: Start index of editor's content
		@type start: int
		@param end: End index of editor's content
		@type end: int
		"""
		if start is None and end is None:
			iter_start, iter_end = self.__buffer.get_bounds()
		elif end is None:
			iter_start = self.__buffer.get_iter_at_offset(start)
			iter_end = iter_start.copy()
		else:
			iter_start = self.__buffer.get_iter_at_offset(start)
			iter_end = self.__buffer.get_iter_at_offset(end)
		self.__buffer.begin_user_action()
		self.__buffer.delete(iter_start, iter_end)
		start_insertion_offset = self.__editor.cursor.get_offset()
		from zen_actions import get_current_line_padding
		padding = get_current_line_padding(self)
		from zen_core import pad_string
		self.__buffer.insert_at_cursor(pad_string(value, padding))
		end_insertion_offset = self.__editor.cursor.get_offset()
		self.__buffer.end_user_action()
		self.__manager.emit("insertion-offsets", (start_insertion_offset, end_insertion_offset))
		return
예제 #3
0
    def replace_content(self, value, offset_start=None, offset_end=None):
        """
        Replace editor's content or it's part (from <code>start</code> to
        <code>end</code> index). If <code>value</code> contains
        <code>caret_placeholder</code>, the editor will put caret into
        this position. If you skip <code>start</code> and <code>end</code>
        arguments, the whole target's content will be replaced with
        <code>value</code>.

        If you pass <code>start</code> argument only,
        the <code>value</code> will be placed at <code>start</code> string
        index of current content.

        If you pass <code>start</code> and <code>end</code> arguments,
        the corresponding substring of current target's content will be
        replaced with <code>value</code>
        @param value: Content you want to paste
        @type value: str
        @param start: Start index of editor's content
        @type start: int
        @param end: End index of editor's content
        @type end: int
        """
        if offset_start is None and offset_end is None:
            iter_start = self.buffer.get_iter_at_offset(0)
            iter_end = self.get_end_iter()
        elif offset_end is None:
            iter_start = self.buffer.get_iter_at_offset(offset_start)
            iter_end = self.buffer.get_iter_at_offset(offset_start)
        else:
            iter_start = self.buffer.get_iter_at_offset(offset_start)
            iter_end = self.buffer.get_iter_at_offset(offset_end)

        self.buffer.delete(iter_start, iter_end)
        self.insertion_start = self.get_insert_offset()
        
        padding = zen_actions.get_current_line_padding(self)
        self.buffer.insert_at_cursor(zen_core.pad_string(value, padding))

        self.insertion_end = self.get_insert_offset()
예제 #4
0
	def replace_content(self, value, offset_start=None, offset_end=None):

		if offset_start is None and offset_end is None:
			iter_start = self.buffer.get_iter_at_offset(0)
			iter_end = self.get_end_iter()

		elif offset_end is None:
			iter_start = self.buffer.get_iter_at_offset(offset_start)
			iter_end = self.buffer.get_iter_at_offset(offset_start)

		else:
			iter_start = self.buffer.get_iter_at_offset(offset_start)
			iter_end = self.buffer.get_iter_at_offset(offset_end)

		self.buffer.delete(iter_start, iter_end)
		self.set_caret_pos(offset_start)
		self.insertion_start = self.get_insert_offset()
		
		padding = zen_actions.get_current_line_padding(self)
		padding = re.sub('[\r\n]', '', padding)
		self.buffer.insert_at_cursor(zen_core.pad_string(value, padding))

		self.insertion_end = self.get_insert_offset()
예제 #5
0
    def replace_content(self, value, offset_start=None, offset_end=None):

        if offset_start is None and offset_end is None:
            iter_start = self.buffer.get_iter_at_offset(0)
            iter_end = self.get_end_iter()

        elif offset_end is None:
            iter_start = self.buffer.get_iter_at_offset(offset_start)
            iter_end = self.buffer.get_iter_at_offset(offset_start)

        else:
            iter_start = self.buffer.get_iter_at_offset(offset_start)
            iter_end = self.buffer.get_iter_at_offset(offset_end)

        self.buffer.delete(iter_start, iter_end)
        self.set_caret_pos(offset_start)
        self.insertion_start = self.get_insert_offset()

        padding = zen_actions.get_current_line_padding(self)
        padding = re.sub('[\r\n]', '', padding)
        self.buffer.insert_at_cursor(zen_core.pad_string(value, padding))

        self.insertion_end = self.get_insert_offset()