bpo-17535: IDLE editor line numbers (GH-14030) · python/cpython@7123ea0 (original) (raw)
`@@ -819,6 +819,7 @@ def create_page_highlight(self):
`
819
819
`'Shell Error Text': ('error', '12'),
`
820
820
`'Shell Stdout Text': ('stdout', '13'),
`
821
821
`'Shell Stderr Text': ('stderr', '14'),
`
``
822
`+
'Line Number': ('linenumber', '16'),
`
822
823
` }
`
823
824
`self.builtin_name = tracers.add(
`
824
825
`StringVar(self), self.var_changed_builtin_name)
`
`@@ -866,6 +867,11 @@ def create_page_highlight(self):
`
866
867
` ('stderr', 'stderr'), ('\n\n', 'normal'))
`
867
868
`for texttag in text_and_tags:
`
868
869
`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')
`
869
875
`for element in self.theme_elements:
`
870
876
`def tem(event, elem=element):
`
871
877
`# event.widget.winfo_top_level().highlight_target.set(elem)
`
`@@ -1827,6 +1833,9 @@ def create_page_general(self):
`
1827
1833
` frame_format: Frame
`
1828
1834
` format_width_title: Label
`
1829
1835
` (*)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
`
1830
1839
` frame_context: Frame
`
1831
1840
` context_title: Label
`
1832
1841
` (*)context_int: Entry - context_lines
`
`@@ -1866,6 +1875,9 @@ def create_page_general(self):
`
1866
1875
`IntVar(self), ('main', 'General', 'autosave'))
`
1867
1876
`self.format_width = tracers.add(
`
1868
1877
`StringVar(self), ('extensions', 'FormatParagraph', 'max-width'))
`
``
1878
`+
self.line_numbers_default = tracers.add(
`
``
1879
`+
BooleanVar(self),
`
``
1880
`+
('main', 'EditorWindow', 'line-numbers-default'))
`
1869
1881
`self.context_lines = tracers.add(
`
1870
1882
`StringVar(self), ('extensions', 'CodeContext', 'maxlines'))
`
1871
1883
``
`@@ -1944,6 +1956,14 @@ def create_page_general(self):
`
1944
1956
`validatecommand=self.digits_only, validate='key',
`
1945
1957
` )
`
1946
1958
``
``
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
+
1947
1967
`frame_context = Frame(frame_editor, borderwidth=0)
`
1948
1968
`context_title = Label(frame_context, text='Max Context Lines :')
`
1949
1969
`self.context_int = Entry(
`
`@@ -2021,6 +2041,10 @@ def create_page_general(self):
`
2021
2041
`frame_format.pack(side=TOP, padx=5, pady=0, fill=X)
`
2022
2042
`format_width_title.pack(side=LEFT, anchor=W, padx=5, pady=5)
`
2023
2043
`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)
`
2024
2048
`# frame_context.
`
2025
2049
`frame_context.pack(side=TOP, padx=5, pady=0, fill=X)
`
2026
2050
`context_title.pack(side=LEFT, anchor=W, padx=5, pady=5)
`
`@@ -2063,6 +2087,8 @@ def load_general_cfg(self):
`
2063
2087
`'main', 'General', 'autosave', default=0, type='bool'))
`
2064
2088
`self.format_width.set(idleConf.GetOption(
`
2065
2089
`'extensions', 'FormatParagraph', 'max-width', type='int'))
`
``
2090
`+
self.line_numbers_default.set(idleConf.GetOption(
`
``
2091
`+
'main', 'EditorWindow', 'line-numbers-default', type='bool'))
`
2066
2092
`self.context_lines.set(idleConf.GetOption(
`
2067
2093
`'extensions', 'CodeContext', 'maxlines', type='int'))
`
2068
2094
``