Vscode-rust: "ํ…Œ์ŠคํŠธ ์‹คํ–‰"์—์„œ ํ™”๋ฌผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ

์— ๋งŒ๋“  2019๋…„ 07์›” 04์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: rust-lang/vscode-rust

๋‚˜๋Š” ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค :
URL: 1.37.0 (124483d 2019-07-01)
rls-vscode: 0.6.1
VS ์ฝ”๋“œ: 1.36.0-insider
OS: Linux 4.18.0-22-generic #23~18.04.1-Ubuntu (Ubuntu 18.04 LTS)(vscode ์›๊ฒฉ ์‚ฌ์šฉ, ๋กœ์ปฌ OS: 18.6.0 Darwin (macOS Mojave 10.14.5))
rust-client.rlsPath ๋ฐ rust-client.rustupPath ์ „์ฒด ์ ˆ๋Œ€ ๊ฒฝ๋กœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Run Test ๊ธฐ๋Šฅ ์‚ฌ์šฉ ์‹œ ๋‹จ๋ง๊ธฐ์—์„œ ํ™”๋ฌผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ rls/rls-vscode์—์„œ ์‚ฌ์šฉํ•˜๋Š” $PATH์™€ ๊ด€๋ จ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

> Executing task: cargo test -- --nocapture <test_name> <

/bin/bash: cargo: command not found
The terminal process terminated with exit code: 127

์žฌ์‚ฌ์šฉ๋œ VSCode ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ฅ˜ ์—†์ด ๋™์ผํ•œ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์œผ๋กœ vscode setting.json์„ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

    "terminal.integrated.inheritEnv": false,  // delete it or set to `true`

๊ทธ๊ฒƒ์€ ๋‚˜์— ์„ธํŠธ ์‚ญ์ œ true ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค task.js

๋ชจ๋“  4 ๋Œ“๊ธ€

VSCode ๋‚ด๋ถ€์ž์˜ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ ์—…๋ฐ์ดํŠธ์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋„ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์•ˆ๊ณ ์žˆ์–ด.

vscode 1.43.0 78a4c91400152c0f27ba4d363eb56d2835f9903a
vscode ๋…น(rls) 0.7.0
rls 1.41.0 (8f1c275 2019-12-10)
ํ™”๋ฌผ 1.41.0 (626f0f40e 2019-12-03)
OS: Darwin Kernel Version 19.3.0

> Executing task: cargo test -- --nocapture test_2 <
zsh:1: command not found: cargo

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

$PATH ๊ฐ€ ์ž˜๋ชป๋œ ๊ฒƒ์€ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

vi ~/.vscode/extensions/rust-lang.rust-0.7.0/out/src/tasks.js

source $HOME/.cargo/env; ์— cmdLine

function createShellExecution(execution) {
    const { binary, command, args, cwd, env } = execution;
    // const cmdLine = `${command || binary} ${args.join(' ')}`;
    const cmdLine = `source $HOME/.cargo/env; ${command || binary} ${args.join(' ')}`;
    return new vscode_1.ShellExecution(cmdLine, { cwd, env });
}

ํ•˜์ง€๋งŒ ๋‚ด ์ƒ๊ฐ๋ณด๋‹ค ๋” ๋‚˜์€ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. vscode.ShellExecution() ์—์„œ env ์˜ต์…˜์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์œผ๋กœ vscode setting.json์„ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

    "terminal.integrated.inheritEnv": false,  // delete it or set to `true`

๊ทธ๊ฒƒ์€ ๋‚˜์— ์„ธํŠธ ์‚ญ์ œ true ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค task.js

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

iBeizsley picture iBeizsley  ยท  3์ฝ”๋ฉ˜ํŠธ

mcclure picture mcclure  ยท  4์ฝ”๋ฉ˜ํŠธ

kjeremy picture kjeremy  ยท  5์ฝ”๋ฉ˜ํŠธ

japert picture japert  ยท  4์ฝ”๋ฉ˜ํŠธ

not-fl3 picture not-fl3  ยท  3์ฝ”๋ฉ˜ํŠธ