Skip to content

Commit fa85b39

Browse files
authored
feat: basic support for the @query annotation INTELLIJ-114/INTELLIJ-117 (#79)
1 parent 32eeb76 commit fa85b39

File tree

19 files changed

+1167
-107
lines changed

19 files changed

+1167
-107
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,6 @@ packages/jetbrains-plugin/src/main/resources/build.properties
4242

4343
FAKE_BROWSER_OUTPUT
4444
/.kotlin
45+
46+
/.idea/dataSources
47+
*.iml

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ dependencies {
2626
jacocoAggregation(project(":packages:mongodb-dialects:java-driver"))
2727
jacocoAggregation(project(":packages:mongodb-dialects:mongosh"))
2828
jacocoAggregation(project(":packages:mongodb-dialects:spring-criteria"))
29+
jacocoAggregation(project(":packages:mongodb-dialects:spring-@query"))
2930
jacocoAggregation(project(":packages:mongodb-linting-engine"))
3031
jacocoAggregation(project(":packages:mongodb-mql-model"))
3132
}

buildSrc/src/main/kotlin/com.mongodb.intellij.plugin-component.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import org.gradle.accessors.dm.LibrariesForLibs
33
import org.jetbrains.changelog.Changelog
44
import org.jetbrains.changelog.date
55
import org.jetbrains.intellij.tasks.RunIdeForUiTestTask
6-
import org.gradle.api.Project
76

87
plugins {
98
id("com.mongodb.intellij.isolated-module")

packages/jetbrains-plugin/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ dependencies {
1313
implementation(project(":packages:mongodb-dialects"))
1414
implementation(project(":packages:mongodb-dialects:java-driver"))
1515
implementation(project(":packages:mongodb-dialects:spring-criteria"))
16+
implementation(project(":packages:mongodb-dialects:spring-@query"))
1617
implementation(project(":packages:mongodb-dialects:mongosh"))
1718
implementation(project(":packages:mongodb-linting-engine"))
1819
implementation(project(":packages:mongodb-mql-model"))

packages/jetbrains-plugin/src/main/kotlin/com/mongodb/jbplugin/editor/services/implementations/MdbEditorService.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import com.mongodb.jbplugin.dialects.ConnectionContextRequirement
1818
import com.mongodb.jbplugin.dialects.Dialect
1919
import com.mongodb.jbplugin.dialects.javadriver.glossary.JavaDriverDialect
2020
import com.mongodb.jbplugin.dialects.springcriteria.SpringCriteriaDialect
21+
import com.mongodb.jbplugin.dialects.springquery.SpringAtQueryDialect
2122
import com.mongodb.jbplugin.editor.MdbJavaEditorToolbar
2223
import com.mongodb.jbplugin.editor.MongoDbVirtualFileDataSourceProvider.Keys
2324
import com.mongodb.jbplugin.editor.models.getToolbarModel
@@ -26,6 +27,7 @@ import com.mongodb.jbplugin.observability.useLogMessage
2627

2728
private val allDialects = listOf(
2829
JavaDriverDialect,
30+
SpringAtQueryDialect,
2931
SpringCriteriaDialect
3032
)
3133

packages/jetbrains-plugin/src/test/resources/project-fixtures/basic-java-project-with-mongodb/.idea/gradle.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/jetbrains-plugin/src/test/resources/project-fixtures/basic-java-project-with-mongodb/.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
#Fri May 10 14:28:13 CEST 2024
21
distributionBase=GRADLE_USER_HOME
32
distributionPath=wrapper/dists
4-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
4+
networkTimeout=10000
5+
validateDistributionUrl=true
56
zipStoreBase=GRADLE_USER_HOME
67
zipStorePath=wrapper/dists

packages/jetbrains-plugin/src/test/resources/project-fixtures/basic-java-project-with-mongodb/gradlew

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
# Darwin, MinGW, and NonStop.
5656
#
5757
# (3) This script is generated from the Groovy template
58-
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
58+
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
5959
# within the Gradle project.
6060
#
6161
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -80,13 +80,11 @@ do
8080
esac
8181
done
8282

83-
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
84-
85-
APP_NAME="Gradle"
83+
# This is normally unused
84+
# shellcheck disable=SC2034
8685
APP_BASE_NAME=${0##*/}
87-
88-
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
89-
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
86+
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
87+
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
9088

9189
# Use the maximum available, or set MAX_FD != -1 to use that value.
9290
MAX_FD=maximum
@@ -133,22 +131,29 @@ location of your Java installation."
133131
fi
134132
else
135133
JAVACMD=java
136-
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
134+
if ! command -v java >/dev/null 2>&1
135+
then
136+
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
137137
138138
Please set the JAVA_HOME variable in your environment to match the
139139
location of your Java installation."
140+
fi
140141
fi
141142

142143
# Increase the maximum file descriptors if we can.
143144
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
144145
case $MAX_FD in #(
145146
max*)
147+
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
148+
# shellcheck disable=SC2039,SC3045
146149
MAX_FD=$( ulimit -H -n ) ||
147150
warn "Could not query maximum file descriptor limit"
148151
esac
149152
case $MAX_FD in #(
150153
'' | soft) :;; #(
151154
*)
155+
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
156+
# shellcheck disable=SC2039,SC3045
152157
ulimit -n "$MAX_FD" ||
153158
warn "Could not set maximum file descriptor limit to $MAX_FD"
154159
esac
@@ -193,18 +198,28 @@ if "$cygwin" || "$msys" ; then
193198
done
194199
fi
195200

196-
# Collect all arguments for the java command;
197-
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
198-
# shell script including quotes and variable substitutions, so put them in
199-
# double quotes to make sure that they get re-expanded; and
200-
# * put everything else in single quotes, so that it's not re-expanded.
201+
202+
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
203+
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
204+
205+
# Collect all arguments for the java command:
206+
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
207+
# and any embedded shellness will be escaped.
208+
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
209+
# treated as '${Hostname}' itself on the command line.
201210

202211
set -- \
203212
"-Dorg.gradle.appname=$APP_BASE_NAME" \
204213
-classpath "$CLASSPATH" \
205214
org.gradle.wrapper.GradleWrapperMain \
206215
"$@"
207216

217+
# Stop when "xargs" is not available.
218+
if ! command -v xargs >/dev/null 2>&1
219+
then
220+
die "xargs is not available"
221+
fi
222+
208223
# Use "xargs" to parse quoted args.
209224
#
210225
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.

0 commit comments

Comments
 (0)