Skip to content

Light modifiable model for project/module, and async commit model #30

@VISTALL

Description

@VISTALL

We have two api for creating project:

  • NewModuleBuilder/NewModuleBuilderProcessor
  • ModuleImportProvider

While processing both of the require call commit methods for commit data, and all that must be in write thread.

Idea - create light/modifiable model for project/module. There no need dispose/commit them by default.

That looks like ExternalSystemAPI - but it's use original modifiable api, and commit per update ssesions for libraries/etc - and can provide ui thread multiple lag.

For example

ProjectBuilder project = ProjectBuilder.newDirBased(dir)

ModuleBuilder module = project.getRootModule();
module.withName(.....)
module.withEnabledExtension(JavaModuleExtension.class, ex -> {
})


ProjectCommitService.....commitAsync(project)

Artifact model can be changed without any issues -since they not provide index, and never change project model

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions