diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix index c3ab04c85011..71bf0eaeb5a5 100644 --- a/pkgs/applications/editors/jetbrains/default.nix +++ b/pkgs/applications/editors/jetbrains/default.nix @@ -97,20 +97,20 @@ let }; }); - buildDataSpell = { pname, version, src, license, description, wmClass, buildNumber, ... }: - (mkJetBrainsProduct { - inherit pname version src wmClass jdk buildNumber; - product = "DataSpell"; - meta = with lib; { - homepage = "https://www.jetbrains.com/dataspell/"; - inherit description license platforms; - longDescription = '' - DataSpell is a new IDE from JetBrains built for Data Scientists. - Mainly it integrates Jupyter notebooks in the IntelliJ platform. - ''; - maintainers = with maintainers; [ leona ]; - }; - }); + buildDataSpell = { pname, version, src, license, description, wmClass, buildNumber, ... }: + (mkJetBrainsProduct { + inherit pname version src wmClass jdk buildNumber; + product = "DataSpell"; + meta = with lib; { + homepage = "https://www.jetbrains.com/dataspell/"; + inherit description license platforms; + longDescription = '' + DataSpell is a new IDE from JetBrains built for Data Scientists. + Mainly it integrates Jupyter notebooks in the IntelliJ platform. + ''; + maintainers = with maintainers; [ leona ]; + }; + }); buildGateway = { pname, version, src, license, description, wmClass, buildNumber, product, ... }: (mkJetBrainsProduct { @@ -132,6 +132,10 @@ let (mkJetBrainsProduct { inherit pname version src wmClass jdk buildNumber; product = "Goland"; + extraWrapperArgs = [ + # fortify source breaks build since delve compiles with -O0 + ''--prefix CGO_CPPFLAGS " " "-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"'' + ]; meta = with lib; { homepage = "https://www.jetbrains.com/go/"; inherit description license platforms; @@ -148,9 +152,6 @@ let interp="$(cat $NIX_CC/nix-support/dynamic-linker)" patchelf --set-interpreter $interp $out/goland/plugins/go-plugin/lib/dlv/linux/dlv chmod +x $out/goland/plugins/go-plugin/lib/dlv/linux/dlv - # fortify source breaks build since delve compiles with -O0 - wrapProgram $out/bin/goland \ - --prefix CGO_CPPFLAGS " " "-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0" ''; }); diff --git a/pkgs/applications/editors/jetbrains/plugins/default.nix b/pkgs/applications/editors/jetbrains/plugins/default.nix index 4f519aa55a03..bf160e2aa365 100644 --- a/pkgs/applications/editors/jetbrains/plugins/default.nix +++ b/pkgs/applications/editors/jetbrains/plugins/default.nix @@ -68,6 +68,8 @@ rec { # Only use if you know what youre doing raw = { inherit files byId byName; }; + tests = callPackage ./tests.nix {}; + addPlugins = ide: unprocessedPlugins: let @@ -98,14 +100,6 @@ rec { let pluginCmdsLines = map (plugin: "ln -s ${plugin} \"$out\"/${meta.mainProgram}/plugins/${baseNameOf plugin}") plugins; pluginCmds = builtins.concatStringsSep "\n" pluginCmdsLines; - extraBuildPhase = rec { - clion = '' - sed "s|${ide}|$out|" -i $out/bin/.clion-wrapped - ''; - goland = '' - sed "s|${ide}|$out|" -i $out/bin/.goland-wrapped - ''; - }; in '' cp -r ${ide} $out @@ -115,8 +109,10 @@ rec { do ln -s "$plugin" -t $out/${meta.mainProgram}/plugins/ done - sed "s|${ide.outPath}|$out|" -i $out/bin/${meta.mainProgram} + sed "s|${ide.outPath}|$out|" \ + -i $(realpath $out/bin/${meta.mainProgram}) \ + -i $(realpath $out/bin/${meta.mainProgram}-remote-dev-server) autoPatchelf $out/${meta.mainProgram}/bin - '' + (extraBuildPhase."${ide.meta.mainProgram}" or ""); + ''; }; } diff --git a/pkgs/applications/editors/jetbrains/plugins/plugins.json b/pkgs/applications/editors/jetbrains/plugins/plugins.json index 3e4da5b02e4b..b0393cdf8457 100644 --- a/pkgs/applications/editors/jetbrains/plugins/plugins.json +++ b/pkgs/applications/editors/jetbrains/plugins/plugins.json @@ -244,6 +244,33 @@ }, "name": "csv-editor" }, + "12062": { + "compatible": [ + "clion", + "datagrip", + "goland", + "idea-community", + "idea-ultimate", + "mps", + "phpstorm", + "pycharm-community", + "pycharm-professional", + "rider", + "ruby-mine", + "webstorm" + ], + "builds": { + "223.8836.1185": "https://plugins.jetbrains.com/files/12062/256327/keymap-vscode-223.7571.113.zip", + "231.9011.35": "https://plugins.jetbrains.com/files/12062/307834/keymap-vscode-231.8109.91.zip", + "231.9225.12": "https://plugins.jetbrains.com/files/12062/307834/keymap-vscode-231.8109.91.zip", + "231.9225.15": "https://plugins.jetbrains.com/files/12062/307834/keymap-vscode-231.8109.91.zip", + "231.9225.16": "https://plugins.jetbrains.com/files/12062/307834/keymap-vscode-231.8109.91.zip", + "231.9225.18": "https://plugins.jetbrains.com/files/12062/307834/keymap-vscode-231.8109.91.zip", + "231.9225.21": "https://plugins.jetbrains.com/files/12062/307834/keymap-vscode-231.8109.91.zip", + "231.9225.23": "https://plugins.jetbrains.com/files/12062/307834/keymap-vscode-231.8109.91.zip" + }, + "name": "vscode-keymap" + }, "12559": { "compatible": [ "clion", @@ -383,6 +410,8 @@ "files": { "https://plugins.jetbrains.com/files/10037/358810/CSVEditor-3.2.1-231.zip": "sha256-JC/NOICLHf1gc4wTarDPw7lYfGHOkCOlG194yt18xOA=", "https://plugins.jetbrains.com/files/10037/358812/CSVEditor-3.2.1-223.zip": "sha256-l8xq7XXQheZYcP+kdnLXAO7FhfPJYwIh+ZffbttBI9s=", + "https://plugins.jetbrains.com/files/12062/256327/keymap-vscode-223.7571.113.zip": "sha256-MlWTPLA6517inAtiOdJDUeUMyHczXzeUIe4dfASLzsM=", + "https://plugins.jetbrains.com/files/12062/307834/keymap-vscode-231.8109.91.zip": "sha256-OqK3HmcksgNlrADv7Ld91VCW+uzTOVWtcXcRC60IKfw=", "https://plugins.jetbrains.com/files/12559/257029/keymap-eclipse-223.7571.125.zip": "sha256-0hMn8Qt+xJjB9HnYz7OMw8xmI0FxDFy+lYfXHURhTKY=", "https://plugins.jetbrains.com/files/12559/307825/keymap-eclipse-231.8109.91.zip": "sha256-8jUsRK4evNMzjuWQIjIMrvQ0sIXPoY1C/buu1nod5X8=", "https://plugins.jetbrains.com/files/13017/257030/keymap-visualStudio-223.7571.125.zip": "sha256-YiJALivO1a+I4bCtZEv68PZ21Vydk5UW6gAgErj28DQ=", diff --git a/pkgs/applications/editors/jetbrains/plugins/tests.nix b/pkgs/applications/editors/jetbrains/plugins/tests.nix new file mode 100644 index 000000000000..6047d21f43b4 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/plugins/tests.nix @@ -0,0 +1,26 @@ +{ jetbrains, writeText }: + +{ + # Check to see if the process for adding plugins is breaking anything, instead of the plugins themselves + default = + let + modify-ide = ide: jetbrains.plugins.addPlugins ide [ ]; + ides = with jetbrains; map modify-ide [ + clion + datagrip + dataspell + goland + idea-community + idea-ultimate + mps + phpstorm + pycharm-community + pycharm-professional + rider + ruby-mine + webstorm + ]; + paths = builtins.concatStringsSep " " ides; + in + writeText "jb-ides" paths; +}