File indexing completed on 2024-05-12 04:40:07

0001 #
0002 # LLDB data formatters for Qt types
0003 #
0004 # SPDX-FileCopyrightText: 2016 Aetf <aetf@unlimitedcodeworks.xyz>
0005 #
0006 # SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0007 #
0008 
0009 def __lldb_init_module(debugger, unused):
0010     debugger.HandleCommand('type summary add KDevelop::Path -w kdevelop-kde -F kde.KDevPathSummaryProvider')
0011     debugger.HandleCommand('type summary add KTextEditor::Cursor -w kdevelop-kde -F kde.KTextEditorCursorSummaryProvider')  # noqa: E501
0012     debugger.HandleCommand('type summary add KTextEditor::Range -w kdevelop-kde -F kde.KTextEditorRangeSummaryProvider')
0013 
0014     debugger.HandleCommand('type category enable kdevelop-kde')
0015 
0016 
0017 def KDevPathSummaryProvider(valobj, internal_dict):
0018     segments = [seg.GetSummary() for seg in valobj.GetChildMemberWithName('m_data')]
0019     return '(' + ', '.join(segments) + ')' if segments else None
0020 
0021 
0022 def KTextEditorCursorSummaryProvider(valobj, internal_dict):
0023     line = valobj.GetChildMemberWithName('m_line').GetValueAsUnsigned(0)
0024     col = valobj.GetChildMemberWithName('m_column').GetValueAsUnsigned(0)
0025     return '({}, {})'.format(line, col)
0026 
0027 
0028 def KTextEditorRangeSummaryProvider(valobj, internal_dict):
0029     start = valobj.GetChildMemberWithName('m_start')
0030     end = valobj.GetChildMemberWithName('m_end')
0031 
0032     st_line = start.GetChildMemberWithName('m_line').GetValueAsUnsigned(0)
0033     st_col = start.GetChildMemberWithName('m_column').GetValueAsUnsigned(0)
0034     ed_line = end.GetChildMemberWithName('m_line').GetValueAsUnsigned(0)
0035     ed_col = end.GetChildMemberWithName('m_column').GetValueAsUnsigned(0)
0036     return '[({}, {}) -> ({}, {})]'.format(st_line, st_col, ed_line, ed_col)