use semantic and hs-minor-mode