Skip to content

Commit b340ae8

Browse files
committed
Add EndpointsProvider.uiDataSnapshot compatibility for IntelliJ 2024.3+.
1 parent 2a4f51e commit b340ae8

File tree

7 files changed

+60
-4
lines changed

7 files changed

+60
-4
lines changed

src/intellij-compat/build.gradle.kts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,14 @@ sourceSets.main {
2525

2626
// Microservices
2727

28-
if (ijVersion.buildVersion >= 251 || ijVersion.platformType == "IU") {
29-
java.srcDir("src/microservices/IU-231")
28+
if (ijVersion.platformType == "IU") {
29+
if (ijVersion.buildVersion >= 243) {
30+
java.srcDir("src/microservices/IU-243")
31+
} else {
32+
java.srcDir("src/microservices/IU-231")
33+
}
34+
} else if (ijVersion.buildVersion >= 251) {
35+
java.srcDir("src/microservices/IU-243")
3036
} else {
3137
java.srcDir("src/microservices/IC-203")
3238
}

src/intellij-compat/src/microservices/IC-203/com/intellij/compat/microservices/endpoints/EndpointsProvider.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (C) 2021, 2023, 2025 Reece H. Dunn. SPDX-License-Identifier: Apache-2.0
22
package com.intellij.compat.microservices.endpoints
33

4+
import com.intellij.compat.actionSystem.DataSink
45
import com.intellij.navigation.ItemPresentation
56
import com.intellij.openapi.project.Project
67
import com.intellij.openapi.util.ModificationTracker
@@ -11,6 +12,8 @@ interface EndpointsProvider<Group : Any, Endpoint : Any> {
1112

1213
val presentation: FrameworkPresentation
1314

15+
fun uiDataSnapshot(sink: DataSink, group: Group, endpoint: Endpoint)
16+
1417
fun getEndpointData(group: Group, endpoint: Endpoint, dataId: String): Any? = null
1518

1619
fun getDocumentationElement(group: Group, endpoint: Endpoint): PsiElement? = null

src/intellij-compat/src/microservices/IU-231/com/intellij/compat/microservices/endpoints/TypeAliases.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (C) 2021, 2025 Reece H. Dunn. SPDX-License-Identifier: Apache-2.0
22
package com.intellij.compat.microservices.endpoints
33

4+
import com.intellij.compat.actionSystem.DataSink
45
import com.intellij.microservices.endpoints.EndpointsFilter
56
import com.intellij.microservices.endpoints.EndpointsProvider
67
import com.intellij.microservices.endpoints.FrameworkPresentation
@@ -17,4 +18,6 @@ typealias FrameworkPresentation = FrameworkPresentation
1718
val HTTP_SERVER_TYPE: EndpointType
1819
get() = HTTP_SERVER_TYPE
1920

20-
typealias EndpointsProvider<Group, Endpoint> = EndpointsProvider<Group, Endpoint>
21+
interface EndpointsProvider<Group : Any, Endpoint : Any> : EndpointsProvider<Group, Endpoint> {
22+
fun uiDataSnapshot(sink: DataSink, group: Group, endpoint: Endpoint)
23+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Copyright (C) 2021, 2025 Reece H. Dunn. SPDX-License-Identifier: Apache-2.0
2+
package com.intellij.compat.microservices.endpoints
3+
4+
import com.intellij.microservices.endpoints.EndpointsFilter
5+
import com.intellij.microservices.endpoints.EndpointsProvider
6+
import com.intellij.microservices.endpoints.FrameworkPresentation
7+
import com.intellij.microservices.endpoints.HTTP_SERVER_TYPE
8+
9+
typealias EndpointsFilter = EndpointsFilter
10+
11+
typealias EndpointsProviderStatus = EndpointsProvider.Status
12+
13+
typealias EndpointType = com.intellij.microservices.endpoints.EndpointType
14+
15+
typealias FrameworkPresentation = FrameworkPresentation
16+
17+
val HTTP_SERVER_TYPE: EndpointType
18+
get() = HTTP_SERVER_TYPE
19+
20+
typealias EndpointsProvider<Group, Endpoint> = EndpointsProvider<Group, Endpoint>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// Copyright (C) 2023, 2025 Reece H. Dunn. SPDX-License-Identifier: Apache-2.0
2+
package com.intellij.compat.microservices.endpoints.presentation
3+
4+
import com.intellij.microservices.endpoints.presentation.EndpointMethodPresentation
5+
import com.intellij.microservices.endpoints.presentation.HttpMethodPresentation
6+
7+
@Suppress("UnstableApiUsage")
8+
typealias EndpointMethodPresentation = EndpointMethodPresentation
9+
10+
@Suppress("UnstableApiUsage")
11+
typealias HttpMethodPresentation = HttpMethodPresentation

src/plugin-exquery/main/uk/co/reecedunn/intellij/plugin/exquery/restxq/endpoints/RestXqEndpointsProvider.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// Copyright (C) 2020-2022, 2025 Reece H. Dunn. SPDX-License-Identifier: Apache-2.0
22
package uk.co.reecedunn.intellij.plugin.exquery.restxq.endpoints
33

4+
import com.intellij.compat.actionSystem.DataSink
45
import com.intellij.compat.microservices.endpoints.*
56
import com.intellij.navigation.ItemPresentation
6-
import com.intellij.openapi.actionSystem.CommonDataKeys
77
import com.intellij.openapi.project.Project
88
import com.intellij.openapi.roots.ProjectRootManager
99
import com.intellij.openapi.util.Key
@@ -38,6 +38,12 @@ class RestXqEndpointsProvider :
3838
EXQueryIcons.RESTXQ.EndpointsFramework
3939
)
4040

41+
override fun uiDataSnapshot(sink: DataSink, group: RestXqEndpointsGroup, endpoint: RestXqEndpoint) {
42+
endpoint.uiDataSnapshot(sink)
43+
}
44+
45+
@Deprecated("Override [uiDataSnapshot] instead")
46+
@Suppress("DEPRECATION")
4147
override fun getEndpointData(group: RestXqEndpointsGroup, endpoint: RestXqEndpoint, dataId: String): Any? {
4248
return endpoint.getData(dataId) ?: super.getEndpointData(group, endpoint, dataId)
4349
}

src/plugin-marklogic/main/uk/co/reecedunn/intellij/plugin/marklogic/rewriter/endpoints/RewriterEndpointsProvider.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package uk.co.reecedunn.intellij.plugin.marklogic.rewriter.endpoints
33

44
import com.intellij.compat.microservices.endpoints.*
55
import com.intellij.navigation.ItemPresentation
6+
import com.intellij.openapi.actionSystem.DataSink
67
import com.intellij.openapi.project.Project
78
import com.intellij.openapi.util.ModificationTracker
89
import com.intellij.psi.PsiElement
@@ -21,6 +22,12 @@ class RewriterEndpointsProvider : EndpointsProvider<RewriterEndpointsGroup, Rewr
2122
MarkLogicIcons.Rewriter.EndpointsFramework
2223
)
2324

25+
override fun uiDataSnapshot(sink: DataSink, group: RewriterEndpointsGroup, endpoint: RewriterEndpoint) {
26+
endpoint.uiDataSnapshot(sink)
27+
}
28+
29+
@Deprecated("Override [uiDataSnapshot] instead")
30+
@Suppress("DEPRECATION")
2431
override fun getEndpointData(group: RewriterEndpointsGroup, endpoint: RewriterEndpoint, dataId: String): Any? {
2532
return endpoint.getData(dataId) ?: super.getEndpointData(group, endpoint, dataId)
2633
}

0 commit comments

Comments
 (0)