UnrealDev.nvim 업데이트: SQLite로 전환해 초고속 성능
Source: Dev.to
연말을 맞아 UnrealDev.nvim의 대규모 업데이트를 공개했습니다!
이전에는 UnrealDev.nvim(및 핵심인 UEP.nvim)이 프로젝트 정보를 캐시하기 위해 JSON 파일을 사용했습니다. 규모가 큰 언리얼 엔진 프로젝트에서는 방대한 JSON 파일의 파일 I/O 오버헤드가 눈에 띄는 병목 현상이었습니다. 이번 업데이트에서는 캐시 백엔드를 SQLite로 전환하여 파일 탐색 및 프로젝트 분석 속도를 크게 향상시켰습니다.
주요 변경 사항 및 설치
- 새로운 의존성:
sqlite.lua
플러그인에 이제 다음 라이브러리가 필요합니다:
kkharji/sqlite.lua
Windows 사용자에게 중요한 안내
sqlite.lua가 정상적으로 동작하려면 sqlite3.dll이 필요합니다. winget과 같은 패키지 관리자를 통해 SQLite를 설치하면 .dll 없이 .exe만 제공될 수 있습니다.
해결 방법
- SQLite 다운로드 페이지에서 Windows 바이너리( DLL 포함)를 직접 다운로드합니다.
init.lua에 경로를 설정합니다:
-- Example: Set path to sqlite3.dll
vim.g.sqlite_clib_path = "C:\\Users\\username\\path\\to\\sqlite3.dll"
업데이트된 :checkhealth
헬스 체크가 이제 SQLite 상태를 확인합니다. 모든 설정이 올바르게 되어 있으면 다음과 유사한 출력이 표시됩니다:
UnrealDev: ✅
UnrealDev Dependencies ~
- ✅ OK Executable 'fd': Found (File finder)
- ✅ OK Executable 'rg': Found (Ripgrep text searcher)
- ✅ OK UNL.nvim: Installed (Core Library & Utilities)
- ✅ OK Plugin 'kkharji/sqlite.lua' found.
- ✅ OK Path configured: C:\Users\taku3\AppData\Local\Programs\sqlite\sqlite3.dll
- ✅ OK SQLite is working correctly! (In-memory DB test passed)
...
명령 통합
몇몇 구체적인 명령이 폐기되고 메인 명령으로 통합되었습니다.
- 폐기:
:UEP config_files,:UEP program_files,:UEP config_grep,:UEP program_grep - 통합:
:UEP files,:UEP grep
명령 인자는 이제 새로운 mode 파라미터를 지원합니다:
:UEP files [scope] [mode] [deps_flag]
:UEP grep [scope] [mode] [deps_flag]
mode 인자를 사용해 파일 유형을 지정할 수 있습니다(기본값은 source).
예시
" Runtime 모듈에서 Config(.ini) 파일 찾기
:UEP files runtime config
" Game 프로젝트 내 Tools(Programs) 소스 파일 찾기
:UEP files game programs
" Engine에서 Shader(.usf/.ush) 파일 찾기
:UEP files engine shader
이렇게 scope와 mode를 조합해 유연하게 필터링할 수 있습니다.
참고: :UEP module_files와 같은 명령은 모듈‑전용 동작의 인자 로직을 단순하게 유지하기 위해 별도로 남겨두었습니다.