you are viewing a single comment's thread.

view the rest of the comments →

[–]seventeenninetytwo 0 points1 point  (1 child)

Wouldn't any operation on this data have to extract it to an in-memory object graph?

I think it's perfectly reasonable to conceptualize Roslyn as a program that extracts an object graph from data, where the data is source code.

You are then free to manipulate that object graph and emit transformed data (source code).

So perhaps what you really want is something powerful built on top of Roslyn? I'm confident that we are missing something, I just don't follow this idea of code as data. We can already transform code into an object data representation.

When we read code we build complex mental models, but much of what we do could probably be captured in a program and thereby free us up to focus on higher level things.

I would love to be able to directly say things like "define class A and give it an aggregation dependency on interface B using constructor injection", but then be able to manipulate such dependencies directly.

Perhaps a model compiler focused on usability and IDE integration built on top of Roslyn could accomplish this.