@@ -4,6 +4,7 @@ module Idris.Directives(directiveAction) where
4import Idris.AbsSyntax
4import Idris.AbsSyntax
5import Idris.ASTUtils
5import Idris.ASTUtils
6import Idris.Imports
6import Idris.Imports
7+import Idris.Output (sendHighlighting)
8import Idris.Core.Evaluate
9import Idris.Core.Evaluate
9import Idris.Core.TT
10import Idris.Core.TT
@@ -43,15 +44,24 @@ directiveAction (DDynamicLibs libs) = do added <- addDyLib libs
43 Left lib -> addIBC (IBCDyLib (lib_name lib))
44 Left lib -> addIBC (IBCDyLib (lib_name lib))
44 Right msg -> fail $ msg
45 Right msg -> fail $ msg
46−directiveAction (DNameHint ty ns) = do ty' <- disambiguate ty
47+directiveAction (DNameHint ty tyFC ns) = do ty' <- disambiguate ty
47− mapM_ (addNameHint ty') ns
48+ mapM_ (addNameHint ty' . fst) ns
48− mapM_ (\n -> addIBC (IBCNameHint (ty', n))) ns
49+ mapM_ (\n -> addIBC (IBCNameHint (ty', fst n))) ns
49−
50+ sendHighlighting $
51+ [(tyFC, AnnName ty' Nothing Nothing Nothing)] ++
52+ map (\(n, fc) -> (fc, AnnBoundName n False)) ns
50−directiveAction (DErrorHandlers fn arg ns) = do fn' <- disambiguate fn
54+directiveAction (DErrorHandlers fn nfc arg afc ns) =
55+ do fn' <- disambiguate fn
51− ns' <- mapM disambiguate ns
56+ ns' <- mapM (\(n, fc) -> do n' <- disambiguate n
52− addFunctionErrorHandlers fn' arg ns'
58+ addFunctionErrorHandlers fn' arg (map fst ns')
53− mapM_ (addIBC .
59+ mapM_ (addIBC .
54− IBCFunctionErrorHandler fn' arg) ns'
60+ IBCFunctionErrorHandler fn' arg . fst) ns'
62+ [(nfc, AnnName fn' Nothing Nothing Nothing),
63+ (afc, AnnBoundName arg False)] ++
64+ map (\(n, fc) -> (fc, AnnName n Nothing Nothing Nothing)) ns'
56directiveAction (DLanguage ext) = addLangExt ext
66directiveAction (DLanguage ext) = addLangExt ext