Search backend: use ChunkMatch type for structural search
Created by: camdencheek
This updates structural search to emit the ChunkMatch
type instead of the MultilineMatch
type. This removes the last uses of MultilineMatch
, allowing me to get rid of that field from the protocol definition.
The only really complex part of this change was grouping ranges into chunks. This is the complexity that I was trying to avoid with MultilineMatch
, but it's honestly not too bad. The logic can be cleanly separated into its own function and well-tested. The efficiency and representation wins we get from this are much higher than the complexity loss IMO.
Test plan
Added unit tests where appropriate, updated existing tests and am running backend integration tests.