Skip to content

Commit c7d2782

Browse files
authored
Merge pull request LFrobeen#8 from LFrobeen/develop
v2.0.0
2 parents 03b829b + c088938 commit c7d2782

33 files changed

+677
-409
lines changed

.idea/runConfigurations/Assemble.xml

Lines changed: 6 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
11
# Changelog
22

3+
## 2.0.0
4+
5+
### Syntax and Language Support
6+
* Add support for base type syntax (#4).
7+
* Add support `float` and `unsigned` data types.
8+
* Fix parsing for aggregations; add `mean` aggregator.
9+
* Improve support for parameters of `.input` and `.oudput` directives.
10+
11+
### Editor
12+
* Fix syntax highlighting of `#include` directives.
13+
* Fix bug in reference resolution logic (#3).
14+
* Fix missing jump-to-relation line markers for fact statements.
15+
* Improve jump-to-base / jump-to-sub-components line markers for components.
16+
* Add quick-fix for replacing unused variables with wildcards in statements.
17+
18+
### Performance and Stability
19+
* Replace usages of deprecated APIs (#6).
20+
* Fix performance issues for line marker generation.
21+
* Use latest IntelliJ Plugin SDK.
22+
323
## 1.1.0
424
* Fix annotations for relation arity mistakes.
525
* Extend documentation parsing to all declaration types (e.g. preprocessor definitions, types, etc.).

build.gradle.kts

Lines changed: 67 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,22 @@
1-
import org.gradle.api.internal.HasConvention
2-
import org.jetbrains.grammarkit.tasks.GenerateLexer
3-
import org.jetbrains.grammarkit.tasks.GenerateParser
4-
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
1+
import org.jetbrains.grammarkit.tasks.GenerateLexerTask
2+
import org.jetbrains.grammarkit.tasks.GenerateParserTask
53
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
64

7-
val ideaVersion = "2018.3.3" //prop("ideaVersion")
5+
val ideaVersion = "2021.3.1" //prop("ideaVersion")
86

9-
10-
repositories {
11-
mavenCentral()
12-
maven("https://dl.bintray.com/jetbrains/markdown")
13-
maven("https://plugins.gradle.org/m2/")
14-
}
7+
group = "com.lfrobeen"
8+
version = "2.0.0"
159

1610
plugins {
1711
idea
18-
kotlin("jvm") version "1.3.30"
19-
id("org.jetbrains.intellij") version "0.4.7"
20-
id("org.jetbrains.grammarkit") version "2018.3"
12+
kotlin("jvm") version "1.6.20"
13+
id("org.jetbrains.intellij") version "1.5.2"
14+
id("org.jetbrains.grammarkit") version "2021.2.2"
2115
id("de.undercouch.download") version "3.4.3"
2216
id("net.saliman.properties") version "1.4.6"
2317
id("com.palantir.git-version") version "0.11.0"
2418
}
2519

26-
idea {
27-
module {
28-
generatedSourceDirs.add(file("src/main/gen"))
29-
}
30-
}
3120

3221
apply {
3322
plugin("idea")
@@ -36,82 +25,85 @@ apply {
3625
plugin("org.jetbrains.intellij")
3726
}
3827

39-
group = "com.lfrobeen"
40-
version = "1.1.0"
28+
repositories {
29+
mavenCentral()
30+
maven("https://dl.bintray.com/jetbrains/markdown")
31+
maven("https://plugins.gradle.org/m2/")
32+
}
33+
34+
idea {
35+
module {
36+
generatedSourceDirs.add(file("src/main/gen"))
37+
}
38+
}
4139

4240
intellij {
43-
pluginName = "intellij-datalog"
41+
pluginName.set("intellij-datalog")
42+
version.set(ideaVersion)
43+
updateSinceUntilBuild.set(false)
44+
instrumentCode.set(false)
4445

45-
version = ideaVersion
46-
updateSinceUntilBuild = false
47-
instrumentCode = false
46+
// https://plugins.jetbrains.com/docs/intellij/annotator.html#required-project-configuration-changes
47+
// plugins.set(listOf("com.intellij.java"))
4848
}
4949

50-
51-
val generateLexer = task<GenerateLexer>("generateLexer") {
52-
source = "src/main/grammars/datalog.flex"
53-
targetDir = "src/main/gen/com/lfrobeen/datalog/lang/lexer"
54-
targetClass = "DatalogLexer"
55-
purgeOldFiles = true
50+
configure<JavaPluginExtension> {
51+
sourceCompatibility = JavaVersion.VERSION_11
52+
targetCompatibility = JavaVersion.VERSION_11
5653
}
5754

58-
val generateParser = task<GenerateParser>("generateParser") {
59-
source = "src/main/grammars/datalog.bnf"
60-
targetRoot = "src/main/gen"
61-
pathToParser = "/datalog/lang/parser/DatalogParser.java"
62-
pathToPsiRoot = "/datalog/lang/psi"
63-
purgeOldFiles = true
55+
sourceSets {
56+
main {
57+
java.srcDirs("src/main/gen")
58+
resources.srcDirs("src/main/resources")
59+
}
60+
test {
61+
resources.srcDirs("src/test/resources")
62+
}
6463
}
6564

66-
tasks.withType<KotlinCompile> {
67-
kotlinOptions {
68-
jvmTarget = "1.8"
69-
languageVersion = "1.3"
70-
apiVersion = "1.3"
71-
freeCompilerArgs = listOf("-Xjvm-default=enable")
65+
kotlin {
66+
sourceSets {
67+
main {
68+
kotlin.srcDirs("src/main/kotlin")
69+
}
70+
test {
71+
kotlin.srcDirs("src/test/kotlin")
72+
}
7273
}
74+
}
7375

74-
dependsOn(
75-
generateLexer,
76-
generateParser
77-
)
76+
val generateDatalogLexer = task<GenerateLexerTask>("generateDatalogLexer") {
77+
source.set("src/main/grammars/datalog.flex")
78+
targetDir.set("src/main/gen/com/lfrobeen/datalog/lang/lexer")
79+
targetClass.set("DatalogLexer")
80+
purgeOldFiles.set(true)
7881
}
7982

80-
configure<JavaPluginConvention> {
81-
sourceCompatibility = JavaVersion.VERSION_1_8
82-
targetCompatibility = JavaVersion.VERSION_1_8
83+
val generateDatalogParser = task<GenerateParserTask>("generateDatalogParser") {
84+
source.set("src/main/grammars/datalog.bnf")
85+
targetRoot.set("src/main/gen")
86+
pathToParser.set("/datalog/lang/parser/DatalogParser.java")
87+
pathToPsiRoot.set("/datalog/lang/psi")
88+
purgeOldFiles.set(true)
8389
}
8490

8591

8692
tasks.withType<KotlinCompile> {
8793
kotlinOptions {
88-
jvmTarget = "1.8"
89-
languageVersion = "1.3"
90-
apiVersion = "1.3"
91-
freeCompilerArgs = listOf("-Xjvm-default=enable")
94+
jvmTarget = "11"
95+
languageVersion = "1.6"
96+
apiVersion = "1.5"
97+
freeCompilerArgs = listOf("-Xjvm-default=all")
9298
}
93-
}
9499

95-
configure<JavaPluginConvention> {
96-
sourceCompatibility = JavaVersion.VERSION_1_8
97-
targetCompatibility = JavaVersion.VERSION_1_8
100+
dependsOn(
101+
generateDatalogLexer,
102+
generateDatalogParser
103+
)
98104
}
99105

100-
sourceSets {
101-
main {
102-
java.srcDirs("src/main/gen")
103-
kotlin.srcDirs("src/main/kotlin")
104-
resources.srcDirs("src/main/resources")
105-
}
106-
test {
107-
kotlin.srcDirs("src/test/kotlin")
108-
resources.srcDirs("src/test/resources")
109-
}
110-
}
111106

112-
val SourceSet.kotlin: SourceDirectorySet
113-
get() =
114-
(this as HasConvention)
115-
.convention
116-
.getPlugin(KotlinSourceSet::class.java)
117-
.kotlin
107+
tasks.withType<Copy> {
108+
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
109+
}

gradle/wrapper/gradle-wrapper.jar

4.24 KB
Binary file not shown.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

gradlew

100644100755
Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
#!/usr/bin/env sh
22

3+
#
4+
# Copyright 2015 the original author or authors.
5+
#
6+
# Licensed under the Apache License, Version 2.0 (the "License");
7+
# you may not use this file except in compliance with the License.
8+
# You may obtain a copy of the License at
9+
#
10+
# https://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing, software
13+
# distributed under the License is distributed on an "AS IS" BASIS,
14+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
# See the License for the specific language governing permissions and
16+
# limitations under the License.
17+
#
18+
319
##############################################################################
420
##
521
## Gradle start up script for UN*X
@@ -28,7 +44,7 @@ APP_NAME="Gradle"
2844
APP_BASE_NAME=`basename "$0"`
2945

3046
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
31-
DEFAULT_JVM_OPTS='"-Xmx64m"'
47+
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
3248

3349
# Use the maximum available, or set MAX_FD != -1 to use that value.
3450
MAX_FD="maximum"
@@ -56,7 +72,7 @@ case "`uname`" in
5672
Darwin* )
5773
darwin=true
5874
;;
59-
MINGW* )
75+
MSYS* | MINGW* )
6076
msys=true
6177
;;
6278
NONSTOP* )
@@ -66,6 +82,7 @@ esac
6682

6783
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
6884

85+
6986
# Determine the Java command to use to start the JVM.
7087
if [ -n "$JAVA_HOME" ] ; then
7188
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
@@ -109,10 +126,11 @@ if $darwin; then
109126
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
110127
fi
111128

112-
# For Cygwin, switch paths to Windows format before running java
113-
if $cygwin ; then
129+
# For Cygwin or MSYS, switch paths to Windows format before running java
130+
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
114131
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
115132
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
133+
116134
JAVACMD=`cygpath --unix "$JAVACMD"`
117135

118136
# We build the pattern for arguments to be converted via cygpath
@@ -138,19 +156,19 @@ if $cygwin ; then
138156
else
139157
eval `echo args$i`="\"$arg\""
140158
fi
141-
i=$((i+1))
159+
i=`expr $i + 1`
142160
done
143161
case $i in
144-
(0) set -- ;;
145-
(1) set -- "$args0" ;;
146-
(2) set -- "$args0" "$args1" ;;
147-
(3) set -- "$args0" "$args1" "$args2" ;;
148-
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
149-
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
150-
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
151-
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
152-
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
153-
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
162+
0) set -- ;;
163+
1) set -- "$args0" ;;
164+
2) set -- "$args0" "$args1" ;;
165+
3) set -- "$args0" "$args1" "$args2" ;;
166+
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
167+
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
168+
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
169+
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
170+
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
171+
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
154172
esac
155173
fi
156174

@@ -159,14 +177,9 @@ save () {
159177
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
160178
echo " "
161179
}
162-
APP_ARGS=$(save "$@")
180+
APP_ARGS=`save "$@"`
163181

164182
# Collect all arguments for the java command, following the shell quoting and substitution rules
165183
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
166184

167-
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
168-
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
169-
cd "$(dirname "$0")"
170-
fi
171-
172185
exec "$JAVACMD" "$@"

0 commit comments

Comments
 (0)