What problem does it solve?
์ฝ๋ ๋ถ์๊ณผ ํ์ ๊ณผ์ ์์ ๋ถํ์ํ ๊ฒ์ ๋ฒ์๋ก ํ ํฐ์ ๋ญ๋นํ๊ฑฐ๋, ๋ถ์ ํํ ๋งค์นญ์ผ๋ก ์คํ์ ๊ฒช๋ ๋ฌธ์ ๋ฅผ ์ค์ฌ ์ ํํ โ์ด๋์/์ด๋ป๊ฒ/๋๊ฐ ์ฐ๋์งโ๋ฅผ ๋ ๋นจ๋ฆฌ ์ฐพ์์ฃผ๊ณ ์ ๋ฆฌํ๊ฒ ํฉ๋๋ค.
Core Features & Use Cases
- AST ๊ธฐ๋ฐ ๊ตฌ๋ฌธ ๊ฒ์ ์ฐ์ (ast-grep/sg): ์ ๊ท์๋ณด๋ค ์งง๊ณ ์ ํํ ๊ตฌ์กฐ์ ๋งค์นญ์ผ๋ก ๋ฉ์๋/ํธ์ถ/ํจํด ์ฌ์ฉ์ฒ๋ฅผ ์ฐพ์ต๋๋ค.
- ๋๊ตฌ ์ ํ ๊ฒฐ์ ํธ๋ฆฌ: Java๋ LSP ์ฐ์ , ๊ตฌ์กฐ์ ๋งค์นญ์ sg, ๋จ์ ํ
์คํธ๋ Grep(ripgrep), ํ์ผ๋ช
/ํ์ฅ์ ํํฐ๋ fd ๋ฑ ์ํฉ์ ๋ง๊ฒ ์ต์ ์กฐํฉ์ ์๋ดํฉ๋๋ค.
- ํ ํฐ ์ ์ฝ ์ํฌํ๋ก์ฐ: ๋จผ์ ์นด์ดํธ/ํ์ผ ๋ชฉ๋ก์ผ๋ก ๊ท๋ชจ๋ฅผ ํ์
ํ๊ณ , ํฐ ํ์ผ์ documentSymbol๋ก ์ปจํ
์คํธ ํญ๋ฐ์ ํผํ๋ฉฐ, ํ์ ์ /tmp์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํด ์ฝ๊ธฐ ๋ฒ์๋ฅผ ํต์ ํฉ๋๋ค.
- ๋ฆฌํฉํ ๋ง๊น์ง ํ์ฅ (sg --rewrite): ๋๋ ์์ ์ Edit ๋๊ตฌ๋ก ๋ฐ๋ณตํ๊ธฐ๋ณด๋ค AST ๊ธฐ๋ฐ ์ผ๊ด ๋ณํ์ผ๋ก ์์
๋์ ์ค์
๋๋ค.
- LSP ์ฐ์ ๋งคํ(ํนํ Java): goToDefinition/findReferences/goToImplementation/incomingCalls ๋ฑ ์๋์ ๋ง๋ LSP ๊ธฐ๋ฅ์ ์ฐ๊ฒฐํด ์๋ชป๋ grep ๊ธฐ๋ฐ ํ์์ ๋ฐฉ์งํฉ๋๋ค.
Quick Start
Efficient Code Search skill์ ์ฌ์ฉํด์ ์ ์ฅ์์์ ํน์ ๊ธฐ๋ฅ์ ๊ตฌํ์ฒด๋ฅผ โ์ ํํ ์ ์/๊ตฌํ/์ฌ์ฉ์ฒโ๊น์ง ํฌํจํด ํ ํฐ์ ์ต์ํํ๋ฉฐ ์ฐพ์์ค.