diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c8006ff5..43a8788a 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -27,9 +27,9 @@ jobs:
strategy:
fail-fast: false
matrix:
- jdk: [ 11 ]
+ jdk: [ 17 ]
include:
- - jdk: 11
+ - jdk: 17
primary: true
steps:
diff --git a/build.gradle.kts b/build.gradle.kts
index a4ef4cc2..390b3433 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -2,12 +2,13 @@ import org.jetbrains.changelog.Changelog
import org.jetbrains.changelog.markdownToHTML
import org.jetbrains.grammarkit.tasks.GenerateLexerTask
import org.jetbrains.grammarkit.tasks.GenerateParserTask
+import java.util.EnumSet
plugins {
// Java support
id("java")
// gradle-intellij-plugin - read more: https://github.com/JetBrains/gradle-intellij-plugin
- id("org.jetbrains.intellij") version "1.13.3"
+ id("org.jetbrains.intellij") version "1.15.0"
// gradle-changelog-plugin - read more: https://github.com/JetBrains/gradle-changelog-plugin
id("org.jetbrains.changelog") version "2.1.0"
// grammarkit - read more: https://github.com/JetBrains/gradle-grammar-kit-plugin
@@ -198,7 +199,7 @@ tasks {
}
runPluginVerifier {
- failureLevel.set(org.jetbrains.intellij.tasks.RunPluginVerifierTask.FailureLevel.ALL)
+ failureLevel.set(EnumSet.complementOf(EnumSet.of(org.jetbrains.intellij.tasks.RunPluginVerifierTask.FailureLevel.EXPERIMENTAL_API_USAGES)))
}
publishPlugin {
diff --git a/gradle.properties b/gradle.properties
index 62362767..d5f6bf6b 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -4,8 +4,8 @@
pluginGroup = org.nixos.idea
pluginName = NixIDEA
pluginVersion = 0.4.0.11
-pluginSinceBuild = 222
+pluginSinceBuild = 232
pluginUntilBuild = 232.*
-platformType = IC
-platformVersion = 2022.2.5
+platformType = IU
+platformVersion = 2023.2.1
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index ae04661e..98debb84 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/src/main/java/org/nixos/idea/lsp/NixLspServerSupportProvider.java b/src/main/java/org/nixos/idea/lsp/NixLspServerSupportProvider.java
new file mode 100644
index 00000000..4648566c
--- /dev/null
+++ b/src/main/java/org/nixos/idea/lsp/NixLspServerSupportProvider.java
@@ -0,0 +1,36 @@
+package org.nixos.idea.lsp;
+
+import com.intellij.execution.ExecutionException;
+import com.intellij.execution.configurations.GeneralCommandLine;
+import com.intellij.openapi.project.Project;
+import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.platform.lsp.api.LspServerSupportProvider;
+import com.intellij.platform.lsp.api.ProjectWideLspServerDescriptor;
+import org.jetbrains.annotations.NotNull;
+import org.nixos.idea.file.NixFileType;
+
+@SuppressWarnings("UnstableApiUsage")
+public class NixLspServerSupportProvider implements LspServerSupportProvider {
+ @Override
+ public void fileOpened(@NotNull Project project, @NotNull VirtualFile virtualFile, @NotNull LspServerStarter lspServerStarter) {
+ if (virtualFile.getFileType() == NixFileType.INSTANCE) {
+ lspServerStarter.ensureServerStarted(new NixLspServerDescriptor(project));
+ }
+ }
+
+ private static final class NixLspServerDescriptor extends ProjectWideLspServerDescriptor {
+ public NixLspServerDescriptor(@NotNull Project project) {
+ super(project, "nix --extra-experimental-features nix-command --extra-experimental-features flakes run nixpkgs#nixd");
+ }
+
+ @Override
+ public @NotNull GeneralCommandLine createCommandLine() throws ExecutionException {
+ return new GeneralCommandLine();
+ }
+
+ @Override
+ public boolean isSupportedFile(@NotNull VirtualFile virtualFile) {
+ return virtualFile.getFileType() == NixFileType.INSTANCE;
+ }
+ }
+}
diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml
index 1fd59e5b..e7b4fb1a 100644
--- a/src/main/resources/META-INF/plugin.xml
+++ b/src/main/resources/META-INF/plugin.xml
@@ -5,6 +5,7 @@
NixOS
com.intellij.modules.lang
+ com.intellij.modules.platform
@@ -46,6 +47,9 @@
+
+