Pick up where #452 left off and separate the highlighter into a simpler component that only deals with highlighting ranges.