DSLX formatter does not line wrap proc instantiation parametrics
- Dominant language
- C++
- Stars
- 1.9k
- Forks
- 283
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 135
Description
**Describe the bug**
If you have a long list of parametric bindings for a spawned proc, it will not line wrap at all. E.g.
```
import xls.examples.ram as ram_model;
const DATA_WIDTH = u32:32;
const RAM_ADDR_WIDTH = u32:7;
const RAM_DEPTH = u32:128;
const WORD_PARTITION_SIZE = DATA_WIDTH;
const INITIALIZED = false;
const ASSERT_VALID_READ = false;
type RamModelReadReq = ram_model::ReadReq;
type RamModelReadResp = ram_model::ReadResp;
type RamModelWriteReq = ram_model::WriteReq;
type RamModelWriteResp = ram_model::WriteResp;
proc Foo {
config() {
let (ram_model_rd_req_s, ram_model_rd_req_r) = chan("ram_model_rd_req");
let (ram_model_rd_resp_s, ram_model_rd_resp_r) =
chan("ram_model_rd_resp");
let (ram_model_wr_req_s, ram_model_wr_req_r) = chan("ram_model_wr_req");
let (ram_model_wr_resp_s, ram_model_wr_resp_r) =
chan("ram_model_wr_resp");
spawn ram_model::RamModel<
DATA_WIDTH, RAM_DEPTH, WORD_PARTITION_SIZE, ram_model::SimultaneousReadWriteBehavior::ASSERT_NO_CONFLICT, false, false>(
ram_model_rd_req_r, ram_model_rd_resp_s, ram_model_wr_req_r, ram_model_wr_resp_s);
}
init { () }
next(state: ()) { }
}
```
**To Reproduce**
The above code is already formatted.
**Expected behavior**
The parametrics between `<` and `>` should be line wrapped as appropriate to fit in the line length constraint.
Contributor guide
Assessment
This issue has not been assessed yet.