================ @@ -948,13 +956,11 @@ def request_scopes(self, frameId): command_dict = {"command": "scopes", "type": "request", "arguments": args_dict} return self.send_recv(command_dict) - def request_setBreakpoints(self, file_path, line_array, data=None): + def request_setBreakpoints(self, source_dict, line_array, data=None): ---------------- ashgti wrote:
What about: ```py from typing import TypedDict, Optional class Source(TypedDict, total=False): # At runtime, this is just a dict with well known keys name: str path: str sourceReference: int class SourceBreakpoint(TypedDict, total=False): line: int column: str condition: str hitCondition: str logMessage: str def request_setBreakpoints( self, # For backwards compatibility, leaving these as positional args sourcePath: Optional[str] = None, lines: Optional[list[int]] = None, breakpoints: Optional[list[SourceBreakpoint]] = None, *, source: Optional[Source] = None, sourceReference: Optional[int] = None, ): source_dict = {} if source is not None: source_dict = source elif sourcePath is not None: source_dict["name"] = os.path.basename(sourcePath) source_dict["pah"] = sourcePath elif sourceReference is not None: source_dict["sourceReference"] = sourceReference else: raise ValueError("'source', 'sourcePath' or 'sourceReference' must be set') args_dict = { "source": source_dict, "sourceModified": False, } ... ``` Then we wouldn't need the `get_source_for_path` and `get_source_for_source_reference` helpers, since those would be built based on the args of the request. I could also look at adding this as a follow up to this. https://github.com/llvm/llvm-project/pull/139969 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits