code: def scroll_one_line_up(event: E) -> None:
      """
      scroll_offset -= 1
      """
      w = event.app.layout.current_window
      b = event.app.current_buffer
  
      if w:
          # When the cursor is at the bottom, move to the previous line. (Otherwise, only scroll.)
          if w.render_info:
              info = w.render_info
  
              if w.vertical_scroll > 0:
                  first_line_height = info.get_height_for_line(
                      info.first_visible_line()
                  )
  
                  cursor_up = info.cursor_position.y - (
                      info.window_height
                      - 1
                      - first_line_height
                      - info.configured_scroll_offsets.bottom
                  )
  
                  # Move cursor up, as many steps as the height of the first line.
                  # TODO: not entirely correct yet, in case of line wrapping and many long lines.
                  for _ in range(max(0, cursor_up)):
                      b.cursor_position += (
                          b.document.get_cursor_up_position()
                      )
  
                  # Scroll window
                  w.vertical_scroll -= 1
  
file_path: catboost/contrib/python/prompt-toolkit/py3/prompt_toolkit/key_binding/bindings/scroll.py
imports: from __future__ import annotations
  from prompt_toolkit.key_binding.key_processor import KeyPressEvent
label_desc: Use image node_id 6 for calling a global function with example usage: scroll_one_line_up(event) without return types