random access files and search result indexes should have different extensions so that, while opening, only relevant files would show up in the oepn dialog
right now, viewer code is copy pasted across dialogs resulting in having to fix bugs in multiple places. Also the start and aned line tracking in very error prone. This needs to be refactored to be generalized
right now, indexes are stored in the executable folder which needs to be changed. While performing a search, the application should provide directory selection next to file name. It should also remember your last location
Since file indexes are evenly spaced and the spacing is known, there is no point keeping the line numbers for every index. Using a vector will improve file size, in-memory size and access speed
need to keep track of creation/release of readers and writers for file and index and fail when trying to read and write same file. Also need to expose release() methods to lua so that user can release then mid script