================ @@ -23,10 +23,240 @@ #include "llvm/Support/JSON.h" #include <cstdint> #include <optional> +#include <set> #include <string> namespace lldb_dap::protocol { +/// An `ExceptionBreakpointsFilter` is shown in the UI as an filter option for +/// configuring how exceptions are dealt with. +struct ExceptionBreakpointsFilter { + /// The internal ID of the filter option. This value is passed to the + /// `setExceptionBreakpoints` request. + std::string filter; + + /// The name of the filter option. This is shown in the UI. + std::string label; + + /// A help text providing additional information about the exception filter. + /// This string is typically shown as a hover and can be translated. + std::optional<std::string> description; + + /// Initial value of the filter option. If not specified a value false is + /// assumed. + std::optional<bool> defaultState; + + /// Controls whether a condition can be specified for this filter option. If + /// false or missing, a condition can not be set. + std::optional<bool> supportsCondition; + + /// A help text providing information about the condition. This string is + /// shown as the placeholder text for a text box and can be translated. + std::optional<std::string> conditionDescription; +}; +llvm::json::Value toJSON(const ExceptionBreakpointsFilter &); + +/// A ColumnDescriptor specifies what module attribute to show in a column of +/// the modules view, how to format it, and what the column’s label should be. +/// +/// It is only used if the underlying UI actually supports this level of +/// customization. +struct ColumnDescriptor { + /// Name of the attribute rendered in this column. + std::string attributeName; + + /// Header UI label of column. + std::string label; + + /// Format to use for the rendered values in this column. TBD how the format + /// strings looks like. + std::optional<std::string> format; + + enum class Type { String, Number, Boolean, Timestamp }; + + /// Datatype of values in this column. Defaults to `string` if not specified. + /// Values: 'string', 'number', 'boolean', 'unixTimestampUTC'. + std::optional<Type> type; + + /// Width of this column in characters (hint only). + std::optional<int> width; +}; +llvm::json::Value toJSON(const ColumnDescriptor &); + +/// Names of checksum algorithms that may be supported by a debug adapter. +/// Values: ‘MD5’, ‘SHA1’, ‘SHA256’, ‘timestamp’. +enum class ChecksumAlgorithm { md5, sha1, sha256, timestamp }; ---------------- JDevlieghere wrote:
Shouldn't these match the spec? ```suggestion enum class ChecksumAlgorithm { MD5, SHA1, SHA256, timestamp }; ``` https://github.com/llvm/llvm-project/pull/133007 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits