From f7bc0a3996a7b4d5fab08c404edaba0eeff31043 Mon Sep 17 00:00:00 2001 From: Luka Blaskovic Date: Sun, 7 Jun 2020 14:12:28 +0000 Subject: [PATCH] rls: set RUST_SRC_PATH rls has racer baked in which needs to know where the rust source is to be able to do completion for std libs. By default rls will use: $(rustc --print sysroot)/lib/rustlib/src/rust/src which is nonexistent, this commit sets the correct source path in a same way like it's done in racer expression. --- pkgs/development/compilers/rust/rls/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/rust/rls/default.nix b/pkgs/development/compilers/rust/rls/default.nix index 4cf507fbf5c..05a9d5049a4 100644 --- a/pkgs/development/compilers/rust/rls/default.nix +++ b/pkgs/development/compilers/rust/rls/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, rustPlatform +{ stdenv, makeWrapper, fetchFromGitHub, rustPlatform , openssh, openssl, pkgconfig, cmake, zlib, curl, libiconv , CoreFoundation, Security }: @@ -23,7 +23,7 @@ rustPlatform.buildRustPackage { CARGO_BUILD_RUSTFLAGS = if stdenv.isDarwin then "-C rpath" else null; nativeBuildInputs = [ pkgconfig cmake ]; - buildInputs = [ openssh openssl curl zlib libiconv rustPlatform.rust.rustc.llvm ] + buildInputs = [ openssh openssl curl zlib libiconv makeWrapper rustPlatform.rust.rustc.llvm ] ++ (stdenv.lib.optionals stdenv.isDarwin [ CoreFoundation Security ]); doCheck = true; @@ -35,6 +35,11 @@ rustPlatform.buildRustPackage { $out/bin/rls --version ''; + RUST_SRC_PATH = rustPlatform.rustcSrc; + postInstall = '' + wrapProgram $out/bin/rls --set-default RUST_SRC_PATH ${rustPlatform.rustcSrc} + ''; + meta = with stdenv.lib; { description = "Rust Language Server - provides information about Rust programs to IDEs and other tools"; homepage = "https://github.com/rust-lang/rls/";