diff --git a/modules/plugins/languages/kotlin.nix b/modules/plugins/languages/kotlin.nix index 5637b4f4..dcb19a98 100644 --- a/modules/plugins/languages/kotlin.nix +++ b/modules/plugins/languages/kotlin.nix @@ -4,7 +4,7 @@ lib, ... }: let - inherit (lib.options) mkEnableOption mkOption literalExpression; + inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; inherit (lib.nvim.languages) diagnosticsToLua; @@ -15,6 +15,21 @@ cfg = config.vim.languages.kotlin; + # Creating a version of the LSP with access to the kotlin binary. + # This is necessary for the LSP to load the standard library + kotlinLspWithRuntime = pkgs.symlinkJoin { + name = "kotlin-language-server-with-runtime"; + paths = [ + pkgs.kotlin-language-server + pkgs.kotlin + ]; + buildInputs = [pkgs.makeWrapper]; + postBuild = '' + wrapProgram $out/bin/kotlin-language-server \ + --prefix PATH : ${pkgs.lib.makeBinPath [pkgs.kotlin]} + ''; + }; + defaultDiagnosticsProvider = ["ktlint"]; diagnosticsProviders = { ktlint = { @@ -44,18 +59,7 @@ in { package = mkOption { description = "kotlin_language_server package with Kotlin runtime"; type = package; - example = literalExpression '' - pkgs.symlinkJoin { - name = "kotlin-language-server-wrapped"; - paths = [pkgs.kotlin-language-server]; - nativeBuildInputs = [pkgs.makeWrapper]; - postBuild = ''' - wrapProgram $out/bin/kotlin-language-server \ - --prefix PATH : ''${pkgs.kotlin}/bin - '''; - }; - ''; - default = pkgs.kotlin-language-server; + default = kotlinLspWithRuntime; }; };