Use the ITextDocumentFactoryService instead of assuming the ITextDocument is a key in ITextBuffer.Properties
Extract lambda event handlers to methods
Combine SetSectionComboToCaretPosition and RefreshComboItems
Mark fields readonly
Don't open the preview window automatically if the user didn't request it
Avoid updating an invisible window
Perform all computation for updates using background parsers