Repository navigation
Conversation
|
Thanks. Generally going in the right direction in my opinion. Initial comments after quick glance through -
|
- each cluster becomes a generic project so that it can be opened - .github receives one too
- the same file is used for both: marker and config storage - initial marker is an empty properties file (which is valid) - mode switch from marker to private moves properties on access - file name is brandable note: NB's auxiliary config storage has a 5s IO flush delay
- global file filters are enabled by default - optional per-project filter added - both configurable via project properties
inverse of the open project action, this action can convert any non-project to a generic project
5fb379f to
f545faf
Compare
|
changes:
i think that would be the first 4 points of #9737 (comment). Forgot about 5, next sync maybe. remember that only the commits marked with |
|
Thanks for taking on board the comments. This is looking exciting! Will take a deeper dive into the code and test some things as soon as I can.
I'm still trying to understand your concern here (following on from conversation elsewhere). My initial view looking at the updated code, in particular the action, is that is might actually handle one more thing - clearing the non-project cache when required. That feels like an implementation detail that a consumer of this method shouldn't need to consider. If it's actually needed?! |
| Project existing = findProject(projectDirectory); | ||
| if (existing != null) { | ||
| return existing; | ||
| } | ||
| for (DirectoryProjectProvider provider : Lookup.getDefault().lookupAll(DirectoryProjectProvider.class)) { | ||
| Project project = provider.createProject(projectDirectory); | ||
| if (project != null) { | ||
| return project; | ||
| } | ||
| } | ||
| return null; |
There was a problem hiding this comment.
assuming we keep this this way: we could probably move this whole section into a default method in impl which is a constant of type ProjectManagerImplementaiton (yes its an interface despite its name)
since there can be never enough abstraction layers between the client and the impl. This would be layer 3 I believe.
Refactors the directory-based project group action to use the new generic project type as base, combined with the pre-existing
SubprojectsGroup. (see #9738 for generated design doc)new API in lookup:
DirectoryProjectProviderSPI added withGpDirectoryProjectProvideras reference implcreateProject(FileObject dir)method and is located inide/projectuiapiProjectManagerhas now a new API methodfindOrCreateDirProject()-> Relationship is now reversed. Functionality moved into the
Lookupinstead of hardcoded logic within a specialized Group impl. (could be potentially swapped out if needed)Migration path was added to restore groups (old user config) of kind
directoryas generic project basedSubprojectsGroup.UI difference:
directory groups will now have their generic project displayed as node. We could probably find a way to hide it if needed.
this builds on top of #9736 and contains the commits so that it can be tested together. Commits marked with
[2]belong to this PR.Assisted-by: qwen3.8-27b + granite4.2:8b