0 | module Language.LSP.Message.URI
3 | import Data.String.Parser
4 | import public Data.URI
6 | import Language.LSP.Message.Derive
7 | import Language.LSP.Message.Utils
18 | toJSON = JString . show
22 | fromJSON (JString str) = eitherToMaybe (fst <$> parse (uriParser <* eos) str)
23 | fromJSON _ = neutral
26 | ToJSON v => ToJSON (SortedMap URI v) where
27 | toJSON m = JObject (map (mapFst show) $
toList $
toJSON <$> m)
30 | FromJSON v => FromJSON (SortedMap URI v) where
31 | fromJSON (JObject xs) = fromList <$> traverse (\(k, v) => (,) <$> fromJSON (JString k) <*> fromJSON v) xs
32 | fromJSON _ = neutral