Comments (4)
I have now switched it so the bitsets get aligned.
from ols.
Here's another repo
Foo :: struct {
A: string,
BBB: string,
CCCCC: Bar,
DD: Baz,
EEEE: int,
}
Bar :: struct {
A: string,
BBB: string,
}
Baz :: bit_set[BazFlag]
BazFlag :: enum {
A,
B,
C,
}
main :: proc() {
// aligned
foo := Foo {
A = "foo",
BBB = "bar",
EEEE = 42,
}
// unaligned
bar := Foo {
A = "foo",
BBB = "bar",
CCCCC = Bar{},
}
baz := Foo {
A = "foo",
BBB = "bar",
DD = {},
}
}
The alignment of consecutive assignments within the aggregate initializer changes to unaligned when there's a nested brace of some sort. Is this intentional or unwarranted?
from ols.
The aggregate initializer currently disables alignment, because I'm worried of having to align stuff like this:
baz := Foo {
A = "foo",
BBB = "bar",
DD = {
my_value = 123123,
},
}
It's both quite hard to align this correctly. There could even more than just one nest of braces. But in your example there is no named assignments in the aggregate initializer, so it could be possible to have it align anyway for that case.
Making that exception probably helps for most cases where braces are used like:
rtv_desc := d3d12.DESCRIPTOR_HEAP_DESC {
Type = .RTV,
NumDescriptors = BACK_BUFFER_COUNT,
Flags = {.SHADER_VISIBLE},
}
from ols.
Yeah, I think it should be consistent. Either align assignments or not but don't change the behavior.
I've done plenty of compiler work in my days and I could give this a shot.
from ols.
Related Issues (20)
- Bug with nested declaration symbol shadowing
- Cannot use "go to definition" on implicit enum member selector HOT 2
- Odinfmt: Breaks code on long "If-statements with initialization"
- Rename feature HOT 2
- Parse statements with `or_continue` and `or_break` HOT 3
- Didn't compile HOT 1
- Items involving generic functions fail to return results depending on package scope. HOT 4
- Unable to find x library. HOT 1
- Constant timeouts HOT 9
- [odinfmt] Struct formatting is broken when there are many `where` cases HOT 1
- OLS timesout on format HOT 1
- New directive #hash isn't properly parsed by OLS HOT 1
- Stroustrup brace style inserting extra space in front of else HOT 1
- formatter only allows two values in for loop HOT 1
- OLS Build Failed HOT 1
- `foreign import` library path corrupted after code format HOT 3
- Build failure on Windows HOT 2
- Unhandled specialization `&Pointer_Type` HOT 2
- Crash on shadowing proc name in it's body HOT 6
- Comp literal disables completion when not using them as key value assignments
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ols.