From a08003bda46494209057935ed40b1642e2485945 Mon Sep 17 00:00:00 2001 From: John McCardle Date: Thu, 30 Oct 2025 11:16:44 -0400 Subject: [PATCH] feat: add documentation macro system header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds C++ preprocessor macros for consistent API documentation. Addresses issue #92. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/McRFPy_Doc.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/McRFPy_Doc.h diff --git a/src/McRFPy_Doc.h b/src/McRFPy_Doc.h new file mode 100644 index 0000000..22ecdea --- /dev/null +++ b/src/McRFPy_Doc.h @@ -0,0 +1,31 @@ +#ifndef MCRFPY_DOC_H +#define MCRFPY_DOC_H + +// Section builders for documentation +#define MCRF_SIG(params, ret) params " -> " ret "\n\n" +#define MCRF_DESC(text) text "\n\n" +#define MCRF_ARGS_START "Args:\n" +#define MCRF_ARG(name, desc) " " name ": " desc "\n" +#define MCRF_RETURNS(text) "\nReturns:\n " text "\n" +#define MCRF_RAISES(exc, desc) "\nRaises:\n " exc ": " desc "\n" +#define MCRF_NOTE(text) "\nNote:\n " text "\n" + +// Link to external documentation +// Format: MCRF_LINK("docs/file.md", "Link Text") +// Parsers detect this pattern and format per output type +#define MCRF_LINK(ref, text) "\nSee also: " text " (" ref ")\n" + +// Main documentation macros +#define MCRF_METHOD_DOC(name, sig, desc, ...) \ + name sig desc __VA_ARGS__ + +#define MCRF_FUNCTION(name, ...) \ + MCRF_METHOD_DOC(#name, __VA_ARGS__) + +#define MCRF_METHOD(cls, name, ...) \ + MCRF_METHOD_DOC(#name, __VA_ARGS__) + +#define MCRF_PROPERTY(name, desc) \ + desc + +#endif // MCRFPY_DOC_H