haste-0.1: src/Haste/LanguageDetection.hs
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)
]