@@ -819,6 +819,7 @@ def create_page_highlight(self):
819819 'Shell Error Text' : ('error' , '12' ),
820820 'Shell Stdout Text' : ('stdout' , '13' ),
821821 'Shell Stderr Text' : ('stderr' , '14' ),
822+ 'Line Number' : ('linenumber' , '16' ),
822823 }
823824 self .builtin_name = tracers .add (
824825 StringVar (self ), self .var_changed_builtin_name )
@@ -866,6 +867,11 @@ def create_page_highlight(self):
866867 ('stderr' , 'stderr' ), ('\n \n ' , 'normal' ))
867868 for texttag in text_and_tags :
868869 text .insert (END , texttag [0 ], texttag [1 ])
870+ n_lines = len (text .get ('1.0' , END ).splitlines ())
871+ for lineno in range (1 , n_lines + 1 ):
872+ text .insert (f'{ lineno } .0' ,
873+ f'{ lineno :{len (str (n_lines ))}d} ' ,
874+ 'linenumber' )
869875 for element in self .theme_elements :
870876 def tem (event , elem = element ):
871877 # event.widget.winfo_top_level().highlight_target.set(elem)
@@ -1827,6 +1833,9 @@ def create_page_general(self):
18271833 frame_format: Frame
18281834 format_width_title: Label
18291835 (*)format_width_int: Entry - format_width
1836+ frame_line_numbers_default: Frame
1837+ line_numbers_default_title: Label
1838+ (*)line_numbers_default_bool: Checkbutton - line_numbers_default
18301839 frame_context: Frame
18311840 context_title: Label
18321841 (*)context_int: Entry - context_lines
@@ -1866,6 +1875,9 @@ def create_page_general(self):
18661875 IntVar (self ), ('main' , 'General' , 'autosave' ))
18671876 self .format_width = tracers .add (
18681877 StringVar (self ), ('extensions' , 'FormatParagraph' , 'max-width' ))
1878+ self .line_numbers_default = tracers .add (
1879+ BooleanVar (self ),
1880+ ('main' , 'EditorWindow' , 'line-numbers-default' ))
18691881 self .context_lines = tracers .add (
18701882 StringVar (self ), ('extensions' , 'CodeContext' , 'maxlines' ))
18711883
@@ -1944,6 +1956,14 @@ def create_page_general(self):
19441956 validatecommand = self .digits_only , validate = 'key' ,
19451957 )
19461958
1959+ frame_line_numbers_default = Frame (frame_editor , borderwidth = 0 )
1960+ line_numbers_default_title = Label (
1961+ frame_line_numbers_default , text = 'Show line numbers in new windows' )
1962+ self .line_numbers_default_bool = Checkbutton (
1963+ frame_line_numbers_default ,
1964+ variable = self .line_numbers_default ,
1965+ width = 1 )
1966+
19471967 frame_context = Frame (frame_editor , borderwidth = 0 )
19481968 context_title = Label (frame_context , text = 'Max Context Lines :' )
19491969 self .context_int = Entry (
@@ -2021,6 +2041,10 @@ def create_page_general(self):
20212041 frame_format .pack (side = TOP , padx = 5 , pady = 0 , fill = X )
20222042 format_width_title .pack (side = LEFT , anchor = W , padx = 5 , pady = 5 )
20232043 self .format_width_int .pack (side = TOP , padx = 10 , pady = 5 )
2044+ # frame_line_numbers_default.
2045+ frame_line_numbers_default .pack (side = TOP , padx = 5 , pady = 0 , fill = X )
2046+ line_numbers_default_title .pack (side = LEFT , anchor = W , padx = 5 , pady = 5 )
2047+ self .line_numbers_default_bool .pack (side = LEFT , padx = 5 , pady = 5 )
20242048 # frame_context.
20252049 frame_context .pack (side = TOP , padx = 5 , pady = 0 , fill = X )
20262050 context_title .pack (side = LEFT , anchor = W , padx = 5 , pady = 5 )
@@ -2063,6 +2087,8 @@ def load_general_cfg(self):
20632087 'main' , 'General' , 'autosave' , default = 0 , type = 'bool' ))
20642088 self .format_width .set (idleConf .GetOption (
20652089 'extensions' , 'FormatParagraph' , 'max-width' , type = 'int' ))
2090+ self .line_numbers_default .set (idleConf .GetOption (
2091+ 'main' , 'EditorWindow' , 'line-numbers-default' , type = 'bool' ))
20662092 self .context_lines .set (idleConf .GetOption (
20672093 'extensions' , 'CodeContext' , 'maxlines' , type = 'int' ))
20682094
0 commit comments