Visual Studio Code
Rust ์ฝ๋์์๋ ํ์ ์ด ์๋ต๋๋ฏ๋ก ์ฐ์ํ IDE๊ฐ C++๋ณด๋ค ํจ์ฌ ๋ ์ ์ฉํด์ง๋๋ค. Visual Studio Code๋ Chromium์ Rust์์ ์ ์๋ํฉ๋๋ค. ์ฌ์ฉํ๋ ค๋ฉด ๋ค์์ ์คํํฉ๋๋ค.
- VSCode์ ์ด์ ํํ์ Rust ์ง์์ด ์๋
rust-analyzer
ํ์ฅ ํ๋ก๊ทธ๋จ์ด ์๋์ง ํ์ธํ์ธ์. gn gen out/Debug --export-rust-project
(๋๋ ์ถ๋ ฅ ๋๋ ํฐ๋ฆฌ์ ์์)ln -s out/Debug/rust-project.json rust-project.json
๋๊ตฐ๊ฐ๊ฐ IDE์ ๋ํด ํ์์ ์ธ ๊ฒฝ์ฐ rust-analyzer์ ์ฝ๋ ์ฃผ์ ๋ฐ ํ์ ๊ธฐ๋ฅ ์ค ์ผ๋ถ๋ฅผ ์์ฐํด ๋ณด๋ฉด ์๊ฐ์ ๋ฐ๊พธ๋๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ๋ ๋ฐ๋ชจ์ ๋์์ด ๋ ์ ์์ต๋๋ค. ํ์ง๋ง ๊ฐ์ฅ ์ต์ํ Chromium ๊ด๋ จ Rust๋ฅผ ๋์ ์ฌ์ฉํด๋ ๋ฉ๋๋ค.
components/qr_code_generator/qr_code_generator_ffi_glue.rs
๋ฅผ ์ฝ๋๋ค.- ์ปค์๋ฅผ
qr_code_generator_ffi_glue.rs์ \
QrCode::new` ํธ์ถ(26๋ฒ ์ค ๋ถ๊ทผ) ์๋ก ์ด๋ํฉ๋๋ค. - ๋ฐ๋ชจ ๋ฌธ์ ํ์(์ผ๋ฐ์ ์ธ ๋ฐ์ธ๋ฉ: vscode = ctrl k i; vim/CoC = K)
- ๋ฐ๋ชจ ์ ์๋ก ์ด๋(์ผ๋ฐ์ ์ธ ๋ฐ์ธ๋ฉ: vscode = F12; vim/CoC = g d) ๊ทธ๋ฌ๋ฉด
//third_party/rust/.../qr_code-.../src/lib.rs
๋ก ์ด๋ํฉ๋๋ค. - ๊ฐ์ ๋ฐ๋ชจ๋ฅผ ์คํํ๊ณ
QrCode::with_bits
๋ฉ์๋(164๋ฒ ์ค ๊ทผ์ฒ, ๊ฐ์๋ vscode์ ํ์ผ ํ์๊ธฐ ์ฐฝ์ ์์, ์ผ๋ฐ์ ์ธ vim/CoC ๋ฐ์ธ๋ฉ = space o)๋ก ์ด๋ํฉ๋๋ค. - ๋ฐ๋ชจ ์ ํ ์ฃผ์(
QrCode::with_bits
๋ฉ์๋์ ๋ช ๊ฐ์ง ์ข์ ์๊ฐ ์์)
BUILD.gn
ํ์ผ์ ์์ ํ ํ gn gen ... --export-rust-project
๋ฅผ ๋ค์ ์คํํด์ผ ํ๋ค๋ ์ ์ ์ฃผ๋ชฉํ ํ์๊ฐ ์์ต๋๋ค. ์ด ์์
์ ์ด ์ธ์
์ ์ฐ์ต ์ ๋ฐ์ ๊ฑธ์ณ ๋ช ๋ฒ ๋ฐ๋ณตํ๊ฒ ๋ฉ๋๋ค.