Hi Eric, thank you. Actually I was already using unsyntax for putting the default values in optional arguments list and didn't recognize that I can use anything from the scribble API at that point. Now the formatting of default values is simple and yields expected results. In my case:
(() ((argb #,(racketvalfont (format "#x~x" (arithmetic-shift alpha-max 24)))))) This is really cool. However, for the contract part, I think the only solution would be adding a parameter that would change the behavior of proc-doc-transformer and proc-doc/names transformer or more generally add support to *defproc's do-one' arg-contracts handling code. This basically goes down to racketblock0 rendering of numbers. I am afraid that this needs some with more experience with scribble internals to implement. I think that adding parameter to configure the rendering of numbers inside define-code-like forms will be rather easy. But how to parameterize in provide block and not mess with any of those proc-doc*transformer code is currently beyond my understanding. I would appreciate any hints though. Cheers, Dominik On 19. 09. 20 3:40, Eric Griffis wrote: > Hi Dominik, > > If you put the hex number in a string, many of the formatting functions > in the Scribble manual, section 4.2.1.4 will work: > > (proc-doc/names > name > (->* () (integer?) void?) > (() > ((argument #,(racketvalfont "#x1f")))) > @{ some description })) > > Eric > > > On Fri, Sep 18, 2020 at 2:23 PM Dominik Pantůček > <dominik.pantu...@trustica.cz <mailto:dominik.pantu...@trustica.cz>> wrote: > > Hello Racketeers, > > I am struggling to make scribble typeset default values in > proc-doc/names in hexadecimal. An example would be: > > (proc-doc/names > name > (->* () (integer?) void?) > (() > ((argument #x1f))) > @{ some description }) ; yes, at-exp reader > > The same applies to values in nested contracts of ->* - like (integer-in > 0 #x1f). > > Of course #,(~a "~x" #x1f) will produce the string with appropriate > contents - but enclosed in parentheses which does not help much. Also it > is not just a matter of typesetting because the provide form really > contracts the procedure being provided and the actual values should > actually be present. > > I would love to see some documentation-stage parameter where I could > just (parameterize ((numbers-as-hexadecimal #t)) (integer-in ...) ...) > and it would keep the values as they are for contract purposes and > render them hexadecimal. Of course, this is quite specific - more > generic solution is probably more appropriate, this is just to explain > the problem I am trying to solve. > > > Cheers, > Dominik > > -- > You received this message because you are subscribed to the Google > Groups "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, > send an email to racket-users+unsubscr...@googlegroups.com > <mailto:racket-users%2bunsubscr...@googlegroups.com>. > To view this discussion on the web visit > > https://groups.google.com/d/msgid/racket-users/aca5b2ab-36b6-98c6-0747-9d5447ae9766%40trustica.cz. > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/23557632-fe68-567e-3a2e-c9abf6df5779%40trustica.cz.