code: def __init__(self, editwin):
      self.editwin = editwin
      self.text = editwin.text
      self.textfont = self.text["font"]
      self.label = None
      # self.info is a list of (line number, indent level, line text, block
      # keyword) tuples providing the block structure associated with
      # self.topvisible (the linenumber of the line displayed at the top of
      # the edit window). self.info[0] is initialized as a 'dummy' line which
      # starts the toplevel 'block' of the module.
      self.info = [(0, -1, "", False)]
      self.topvisible = 1
      visible = idleConf.GetOption(
          "extensions",
          "CodeContext",
          "visible",
          type="bool",
          default=False,
      )
      if visible:
          self.toggle_code_context_event()
          self.editwin.setvar("<<toggle-code-context>>", True)
      # Start two update cycles, one for context lines, one for font changes.
      self.text.after(UPDATEINTERVAL, self.timer_event)
      self.text.after(FONTUPDATEINTERVAL, self.font_timer_event)
  
file_path: catboost/contrib/tools/python/src/Lib/idlelib/CodeContext.py
imports: import Tkinter
  from Tkconstants import TOP, LEFT, X, W, SUNKEN
  import re
  from sys import maxint
  from idlelib.configHandler import idleConf
label_desc: Use image node_id 1 to create a new CodeContext object  with example: obj = CodeContext(editwin)