original_docstring: If in attribute completion, the attribute being completed
docstring: If in attribute completion, the attribute being completed
docstring_tokens: If in attribute completion the attribute being completed
code: def current_object_attribute(
      cursor_offset: int, line: str
  ) -> Optional[LinePart]:
      """If in attribute completion, the attribute being completed"""
      # TODO replace with more general current_expression_attribute
      match = current_word(cursor_offset, line)
      if match is None:
          return None
      start, end, word = match
      matches = _current_object_attribute_re.finditer(word)
      next(matches)
      for m in matches:
          if m.start(1) + start <= cursor_offset <= m.end(1) + start:
              return LinePart(m.start(1) + start, m.end(1) + start, m.group(1))
      return None
code_tokens: def current_object_attribute ( cursor_offset : int , line : str ) -> Optional [ LinePart ] : match = current_word ( cursor_offset , line ) if match is None : return None start , end , word = match matches = _current_object_attribute_re . finditer ( word ) next ( matches ) for m in matches : if m . start ( 1 ) + start <= cursor_offset <= m . end ( 1 ) + start : return LinePart ( m . start ( 1 ) + start , m . end ( 1 ) + start , m . group ( 1 ) ) return None
short_docstring: If in attribute completion, the attribute being completed
short_docstring_tokens: If in attribute completion the attribute being completed
comment: """If in attribute completion, the attribute being completed"""$SEP$# TODO replace with more general current_expression_attribute