[projectModel] Partition "Global Libraries" per eel environment and select via Project (IJPL-175311)

Application‑level libraries ("Global Libraries" in UI) must be isolated by the environment, so each EEL environment sees only its own library set. This prevents cross‑environment leakage and aligns library scoping with SDK scoping.

Notes
- Environment choice is derived from the passed `Project` (carrier of the already‑resolved `EelMachine`), so selection is synchronous and safe for this API surface.
- API names stay as they are; documentation clarifies that the `Project` parameter selects the environment for the application‑level table and does not turn it into a project‑level table.
- In the Project Structure UI, the existing environment‑scoped modifiable model remains owned by the UI; outside the UI, callers get a standalone modifiable model for the chosen environment.

GitOrigin-RevId: e88445929d19012d029e79d44f09f694aba8df6f
This commit is contained in:
Alexander Koshevoy
2025-10-06 22:52:56 +00:00
committed by intellij-monorepo-bot
parent db657745ad
commit 666c4f449f
20 changed files with 122 additions and 23 deletions
@@ -47,7 +47,7 @@ public class LibraryElementType extends ComplexPackagingElementType<LibraryPacka
private static List<Library> getAllLibraries(ArtifactEditorContext context) {
List<Library> libraries = new ArrayList<>();
ContainerUtil.addAll(libraries, LibraryTablesRegistrar.getInstance().getLibraryTable().getLibraries());
ContainerUtil.addAll(libraries, LibraryTablesRegistrar.getInstance().getGlobalLibraryTable(context.getProject()).getLibraries());
ContainerUtil.addAll(libraries, LibraryTablesRegistrar.getInstance().getLibraryTable(context.getProject()).getLibraries());
return libraries;
}