def setup_lineno_surfs(self, text_settings):
        """Create digit surfaces used to show line number.

        Parameters
        ==========
        text_settings (dict)
            contains settings to render surfaces for the
            digits used to blit the line numbers beside
            the lines when displaying the text;
        """
        ### define digits text settings and update with
        ### the received ones

        digits_text_settings = {}
        digits_text_settings.update(text_settings)

        ### override the font style settings to force the
        ### digits to use a monospaced font
        digits_text_settings["font_path"] = FIRA_MONO_BOLD_FONT_PATH

        ### iterate over the digits, creating key-value
        ### pairs of each digit string and its corresponding
        ### surface

        self.digits_surf_map = {
            digit: render_text(digit, **digits_text_settings) for digit in digits
        }

        ### also store the width of any digit (here we use
        ### zero) in the digit_surf_width attribute,
        ### which we use when blitting the digit surfaces
        ### beside each visible line

        self.digit_surf_width = self.digits_surf_map["0"].get_width()
Create digit surfaces used to show line number.

        Parameters
        ==========
        text_settings (dict)
            contains settings to render surfaces for the
            digits used to blit the line numbers beside
            the lines when displaying the text;
        
nodezator/textman/viewer/prep.py