While it's a fair bit of work, we can massively improve the workflow of a Rimworld Mod Project by allowing the XML side of the Mod to exist as it's own, separate, project. If we can implement a custom project type where we treat the About/About.xml file as a "Project File" and then automatically include Defs/ as files belonging to that project rather than requiring them to be manually defined in a project file, we can create a more seamless experience for the XML side. The current model, where XML files have to be included in a C# project, just doesn't make sense for Rimworld Mods.
A possible idea, once implemented would be the ability to add other Rimworld Mods as "Dependencies" to our XML Project. If we could enable that, it could allow us to utalize other Mods XML files (And Vanilla XML Files) for Autocomplete/Navigation without considering them part of our own Project.
There's a few different integration points to take a look at:
IDEA/Kotlin Side
RiderProjectTypesProvider
RiderProjectType
ReSharper
ProjectHost
Use WebSiteProjectHost as a reference
For the most part we should only have to implement Reload and work on DefineDescriptors
ProjectReferenceDescriptors
ProjectMark
ProjectMark is the "entry point" to a Project Model
It's an entry in the Solutions file to keep track of projects in a solution
VirtualProjectMark may allow us to create a ProjectMark without having it written in a Solutions file
While it's a fair bit of work, we can massively improve the workflow of a Rimworld Mod Project by allowing the XML side of the Mod to exist as it's own, separate, project. If we can implement a custom project type where we treat the
About/About.xml
file as a "Project File" and then automatically includeDefs/
as files belonging to that project rather than requiring them to be manually defined in a project file, we can create a more seamless experience for the XML side. The current model, where XML files have to be included in a C# project, just doesn't make sense for Rimworld Mods.A possible idea, once implemented would be the ability to add other Rimworld Mods as "Dependencies" to our XML Project. If we could enable that, it could allow us to utalize other Mods XML files (And Vanilla XML Files) for Autocomplete/Navigation without considering them part of our own Project.
There's a few different integration points to take a look at:
ProjectHost
WebSiteProjectHost
as a referenceReload
and work onDefineDescriptors
ProjectReferenceDescriptors
ProjectMark
ProjectMark
is the "entry point" to a Project ModelVirtualProjectMark
may allow us to create aProjectMark
without having it written in a Solutions file