{-| Module : MetaHS.EDSL.Utils Description : The MetaHS EDSL Utils part Copyright : Copyright (C) 2017-2019 H.H.R.F. Vos, S. Kamps License : -- This file is distributed under the terms of the Apache License 2.0. For more information, see the file "LICENSE", which is included in the distribution. Stability : experimental MetaHS EDSL Utils part -} module MetaHS.EDSL.Utils ( split , isLocal , locationToQuery ) where import System.FilePath.Posix (joinPath, splitPath) import MetaHS.DataModel.Utils (split, isLocal) import qualified MetaHS.DataModel.MetaModel as MetaModel -- | Converts a Location Element to a query String suitable for URLs. -- An empty String is returned if the Element is not a Location Element. locationToQuery :: MetaModel.Element -- ^ The Location Element. -> String -- ^ The resulting URL query String or an empty String. locationToQuery loc@MetaModel.Location{} = concat ["?path=" , joinPath . drop 1 . splitPath $ MetaModel.locationPath loc ,"&startLine=" , show $ MetaModel.locationStartLine loc ,"&startColumn=", show $ MetaModel.locationStartColumn loc ,"&endLine=" , show $ MetaModel.locationEndLine loc ,"&endColumn=" , show $ MetaModel.locationEndColumn loc ] locationToQuery _ = ""