Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Whitespace in SVD files is lost #858

Open
thejpster opened this issue Aug 18, 2024 · 4 comments
Open

Whitespace in SVD files is lost #858

thejpster opened this issue Aug 18, 2024 · 4 comments

Comments

@thejpster
Copy link
Contributor

Raspberry Pi provide SVD files with descriptions like:

        <description>DW_apb_i2c address block

            List of configuration constants for the Synopsys I2C hardware (you may see references to these in I2C register header; these are *fixed* values, set at hardware design time):

            IC_ULTRA_FAST_MODE ................ 0x0 
            IC_UFM_TBUF_CNT_DEFAULT ........... 0x8 
(etc)
        </description>

It comes out in the Rust code as:

#[doc = "DW_apb_i2c address block List of configuration constants for the Synopsys I2C hardware (you may see references to these in I2C register header; these are *fixed* values, set at hardware design time): IC_ULTRA_FAST_MODE ....."]

I suspect this is because whitespace in XML is collapsed - any run of whitespace is converted into a single space character.

I tried putting the description in a <![CDATA[ ]> block, but a) svdtools removed it and b) even if I force it back it, svd2rust ignores it.

How can I try and make sure the whitespace in the description is carried through into the docs? In particular, I want to avoid very very very long single line descriptions appearing in https://docs.rs/rp235x-pac/latest/rp235x_pac/index.html

@thejpster thejpster changed the title Whitespace in SVD files it lost Whitespace in SVD files is lost Aug 18, 2024
@burrbull
Copy link
Member

The causer is respace. But I do not know what should we do with it. Sometimes squashing of strings is really helpful.

@thejpster
Copy link
Contributor Author

Can it be a configuration option?

@burrbull
Copy link
Member

Can it be a configuration option?

Yes. It was my first thought.

@burrbull
Copy link
Member

I think respace was introduced to avoid this situation: https://github.com/rust-embedded/svd2rust/actions/runs/11520507042/job/32072026803?pr=879#step:7:47
I also think that this is STM32-specific issue (need to check this somehow). If it is true we I can remove respace entirely from svd2rust and move this as option to svdtools (to apply in stm32-rs).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants