module Haste.LanguageDetection ( fromFilePath , preferredProviders ) where import qualified System.FilePath.Posix as FilePath import Haste.Types import Haste.PasteProviders.All (pasteProviders) fromFilePath :: FilePath -> Maybe Language fromFilePath file = lookup (takeExtension file) extensionMap preferredProviders :: Language -> [SomePasteProvider] preferredProviders l = filter (elem l . preferredLanguages) pasteProviders -- Extension sans leading '.' takeExtension fp = case FilePath.takeExtension fp of '.' : ext -> ext ext -> ext extensionMap = [ ("hs", Haskell) , ("c", C) , ("h", C) ]