대충 뭔지 알져?
Sublime Text 에서 검색할때나
fzf 에서 쓰이는건데
부분일치, 약어일치로 검색단계 줄여가면서 빠르게 원하는 파일 찾는거임
솔직히 fzf 를 C로 포팅한다는 느낌으로 만듬
왜냐하면 회사가 좀 올드해서 최신언어를 못깔고 옛날 유닉스 시스템에
온리 C 만 쓰고 있고
온갖 보안이 많아서 설치도 힘들고 그래가지고..
C로 포팅할려고 마음먹은 뒤에
알고리즘 연구해서 필요한 부분만 따오고
파일리스트 메모리에 올리고
Curses로 대충 와꾸 꾸미고
입력될때마다 스코어 계산하고 정렬해서 후보 뽑고
패턴일치부분만 색깔입히는거 하고
의외로 손이 많이 가더라고
일주일 정도 걸림
알고리즘 정확도를 조금더 올리고 싶고
파일리스트 로드시 첨에 IO 병목이 있는데 요걸 어케 해결할지
회사 프로그램 내 업무 부분에 소스파일 8600개 정도 되는데
그거 로드하는데 잠깐 멈칫 0.2초?
회사는 OLD 유닉스라서 dirent 구조체에 d_type이 없어가지고 stat을 한번더 쓰는 오버헤드가 있는데
차이가 크더라고
퍼지검색은 어떤 걸 delimiter로 취급할지 같은 것도 미리 결정됨?
파일디렉토리 구분문자 첫글자에 보너스점수 카멜케이스에 보너스 특수문자에 보너스 연속매칭에 보너스 이런식으로 추가점수준뒤에 매칭조합중 최대값을 지니는 조합 찾는 방식임 dynamic programming 임 - dc App
내가 고른 알고리즘이 그런방식이고 그외 방식이 엄청많고 이걸 택스트에 적용하는건 또 엄청 후리스틱을 섞는거 같드라 - dc App
무슨 일 하는 회사길래... - dc App
틀딱회사 ...ㅠ - dc App
뷰지 파인더... ㅗㅜㅑ
fzf 최적화 장난 없더라. 이걸 일주일만에 포팅했다니 능력자넹.
fzf 포팅은 아니고 좀 참고해서 재구현 했다는 소리같은데?
긍가
개쩌네