def adjust_editing_area_left_and_width(self):
        """Adjust the left and width of the editing area.

        Such adjustments are needed to make room for the
        line numbers at the left of the editing area.
        """
        ### multiply the the maximum number of characters
        ### needed by the width of a digit to obtain the
        ### maximum width occupied by the surfaces forming
        ### line numbers

        max_lineno_width = self.max_char_needed * self.__class__.DIGIT_SURF_WIDTH

        ### based on the maximum width we just calculated,
        ### define a new left for the editing area

        new_left = (
            # start from the x coordinate from where we
            # blit line numbers
            self.te.line_number_x
            # add the width which will be occupied by the
            # line numbers
            + max_lineno_width
            # add 15 pixels as padding between the line
            # numbers and the left of the text editing area
            + 15
        )

        ### the right used is always the right of the text
        ### editor itself minus 10 pixels (to serve as a
        ### padding between the right of the text editing
        ### area and the text editor's right)
        right = TEXT_EDITOR_RECT.right - 10

        ### now we obtain the new width from the difference
        ### between the right and the new left
        new_width = right - new_left

        ### we now finally have the new left and new width
        ### of the editing area, but before setting them,
        ### we'll clean the editing area where it sits now
        ### by blitting the text editor background color
        ### over the area it currently occupies
        self.te.clean_editing_area()

        ### we then update the editing area rect by
        ### assigning the new_left and new_width to their
        ### respective properties

        EDITING_AREA_RECT.left = new_left
        EDITING_AREA_RECT.width = new_width

        ### now that the editing area is rellocated and its
        ### width adjusted, we can paint it over the text
        ### editor again, along with the area for the
        ### line numbers

        self.te.paint_editing_and_lineno_areas(self.background_color, self.lineno_bg)

        ### since we changed the position of the text
        ### editing area along the x axis, we need to
        ### change the position of the cursor and the lines
        ### in that axis as well, so that they accompany the
        ### editing area

        ## calculate the difference between the left of
        ## the text editing area and the left of the text
        ## (represented here by the lines)

        delta_x = EDITING_AREA_RECT.left - self.visible_lines.rect.left

        ## offset the cursor and lines in the x axis by
        ## the obtained delta x

        self.rect.move_ip(delta_x, 0)
        self.visible_lines.rect.move_ip(delta_x, 0)
Adjust the left and width of the editing area.

        Such adjustments are needed to make room for the
        line numbers at the left of the editing area.
        
nodezator/textman/editor/cursor/op.py