diff --git a/base/src/com/google/idea/blaze/base/sync/libraries/ExternalLibraryManager.java b/base/src/com/google/idea/blaze/base/sync/libraries/ExternalLibraryManager.java index 0d1dcb217de..86b2c92a8c4 100644 --- a/base/src/com/google/idea/blaze/base/sync/libraries/ExternalLibraryManager.java +++ b/base/src/com/google/idea/blaze/base/sync/libraries/ExternalLibraryManager.java @@ -31,7 +31,9 @@ import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager; import com.google.idea.blaze.base.vcs.VcsSyncListener; import com.google.idea.common.util.Transactions; +import com.google.idea.sdkcompat.general.AsyncVfsEventsPostProcessorCompat; import com.intellij.openapi.Disposable; +import com.intellij.openapi.components.ComponentManagerEx; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.AdditionalLibraryRootsProvider; @@ -66,8 +68,7 @@ public static ExternalLibraryManager getInstance(Project project) { this.project = project; this.duringBlazeSync = false; this.libraries = ImmutableMap.of(); - AsyncVfsEventsPostProcessor.getInstance() - .addListener( + AsyncVfsEventsPostProcessorCompat.addListener( events -> { if (duringBlazeSync || libraries.isEmpty()) { return; @@ -81,7 +82,8 @@ public static ExternalLibraryManager getInstance(Project project) { libraries.values().forEach(library -> library.removeInvalidFiles(deletedFiles)); } }, - this); + this, + project); } @Nullable diff --git a/sdkcompat/v223/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java b/sdkcompat/v223/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java new file mode 100644 index 00000000000..35f9db6c9eb --- /dev/null +++ b/sdkcompat/v223/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java @@ -0,0 +1,33 @@ +/* + * Copyright 2024 The Bazel Authors. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.idea.sdkcompat.general; + +import com.intellij.openapi.Disposable; +import com.intellij.openapi.project.Project; +import com.intellij.vfs.AsyncVfsEventsListener; +import com.intellij.vfs.AsyncVfsEventsPostProcessor; + +// #api242 +public class AsyncVfsEventsPostProcessorCompat { + private AsyncVfsEventsPostProcessorCompat(){ + + } + + public static void addListener(AsyncVfsEventsListener listener, Disposable disposable, Project project) { + AsyncVfsEventsPostProcessor.getInstance().addListener(listener, disposable); + } +} diff --git a/sdkcompat/v231/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java b/sdkcompat/v231/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java new file mode 100644 index 00000000000..35f9db6c9eb --- /dev/null +++ b/sdkcompat/v231/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java @@ -0,0 +1,33 @@ +/* + * Copyright 2024 The Bazel Authors. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.idea.sdkcompat.general; + +import com.intellij.openapi.Disposable; +import com.intellij.openapi.project.Project; +import com.intellij.vfs.AsyncVfsEventsListener; +import com.intellij.vfs.AsyncVfsEventsPostProcessor; + +// #api242 +public class AsyncVfsEventsPostProcessorCompat { + private AsyncVfsEventsPostProcessorCompat(){ + + } + + public static void addListener(AsyncVfsEventsListener listener, Disposable disposable, Project project) { + AsyncVfsEventsPostProcessor.getInstance().addListener(listener, disposable); + } +} diff --git a/sdkcompat/v232/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java b/sdkcompat/v232/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java new file mode 100644 index 00000000000..35f9db6c9eb --- /dev/null +++ b/sdkcompat/v232/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java @@ -0,0 +1,33 @@ +/* + * Copyright 2024 The Bazel Authors. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.idea.sdkcompat.general; + +import com.intellij.openapi.Disposable; +import com.intellij.openapi.project.Project; +import com.intellij.vfs.AsyncVfsEventsListener; +import com.intellij.vfs.AsyncVfsEventsPostProcessor; + +// #api242 +public class AsyncVfsEventsPostProcessorCompat { + private AsyncVfsEventsPostProcessorCompat(){ + + } + + public static void addListener(AsyncVfsEventsListener listener, Disposable disposable, Project project) { + AsyncVfsEventsPostProcessor.getInstance().addListener(listener, disposable); + } +} diff --git a/sdkcompat/v233/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java b/sdkcompat/v233/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java new file mode 100644 index 00000000000..35f9db6c9eb --- /dev/null +++ b/sdkcompat/v233/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java @@ -0,0 +1,33 @@ +/* + * Copyright 2024 The Bazel Authors. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.idea.sdkcompat.general; + +import com.intellij.openapi.Disposable; +import com.intellij.openapi.project.Project; +import com.intellij.vfs.AsyncVfsEventsListener; +import com.intellij.vfs.AsyncVfsEventsPostProcessor; + +// #api242 +public class AsyncVfsEventsPostProcessorCompat { + private AsyncVfsEventsPostProcessorCompat(){ + + } + + public static void addListener(AsyncVfsEventsListener listener, Disposable disposable, Project project) { + AsyncVfsEventsPostProcessor.getInstance().addListener(listener, disposable); + } +} diff --git a/sdkcompat/v241/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java b/sdkcompat/v241/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java new file mode 100644 index 00000000000..35f9db6c9eb --- /dev/null +++ b/sdkcompat/v241/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java @@ -0,0 +1,33 @@ +/* + * Copyright 2024 The Bazel Authors. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.idea.sdkcompat.general; + +import com.intellij.openapi.Disposable; +import com.intellij.openapi.project.Project; +import com.intellij.vfs.AsyncVfsEventsListener; +import com.intellij.vfs.AsyncVfsEventsPostProcessor; + +// #api242 +public class AsyncVfsEventsPostProcessorCompat { + private AsyncVfsEventsPostProcessorCompat(){ + + } + + public static void addListener(AsyncVfsEventsListener listener, Disposable disposable, Project project) { + AsyncVfsEventsPostProcessor.getInstance().addListener(listener, disposable); + } +} diff --git a/sdkcompat/v242/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java b/sdkcompat/v242/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java new file mode 100644 index 00000000000..35f9db6c9eb --- /dev/null +++ b/sdkcompat/v242/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java @@ -0,0 +1,33 @@ +/* + * Copyright 2024 The Bazel Authors. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.idea.sdkcompat.general; + +import com.intellij.openapi.Disposable; +import com.intellij.openapi.project.Project; +import com.intellij.vfs.AsyncVfsEventsListener; +import com.intellij.vfs.AsyncVfsEventsPostProcessor; + +// #api242 +public class AsyncVfsEventsPostProcessorCompat { + private AsyncVfsEventsPostProcessorCompat(){ + + } + + public static void addListener(AsyncVfsEventsListener listener, Disposable disposable, Project project) { + AsyncVfsEventsPostProcessor.getInstance().addListener(listener, disposable); + } +} diff --git a/sdkcompat/v243/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java b/sdkcompat/v243/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java new file mode 100644 index 00000000000..f2c5b9914c7 --- /dev/null +++ b/sdkcompat/v243/com/google/idea/sdkcompat/general/AsyncVfsEventsPostProcessorCompat.java @@ -0,0 +1,34 @@ +/* + * Copyright 2024 The Bazel Authors. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.idea.sdkcompat.general; + +import com.intellij.openapi.Disposable; +import com.intellij.openapi.components.ComponentManagerEx; +import com.intellij.openapi.project.Project; +import com.intellij.vfs.AsyncVfsEventsListener; +import com.intellij.vfs.AsyncVfsEventsPostProcessor; + +// #api242 +public class AsyncVfsEventsPostProcessorCompat { + private AsyncVfsEventsPostProcessorCompat(){ + + } + + public static void addListener(AsyncVfsEventsListener listener, Disposable disposable, Project project) { + AsyncVfsEventsPostProcessor.getInstance().addListener(listener, ((ComponentManagerEx)project).getCoroutineScope()); + } +}