From 16e58b8875a4077e9e1572d228a27f573aa41331 Mon Sep 17 00:00:00 2001 From: Elodie Lander Date: Sat, 15 Jul 2023 06:07:30 -0500 Subject: [PATCH] Use more System.FilePath functions --- ghcide/src/Development/IDE/Core/Actions.hs | 4 ++-- ghcide/src/Development/IDE/Core/Shake.hs | 5 ++++- ghcide/src/Development/IDE/Types/HscEnvEq.hs | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ghcide/src/Development/IDE/Core/Actions.hs b/ghcide/src/Development/IDE/Core/Actions.hs index c071c08647a..f628a3110bf 100644 --- a/ghcide/src/Development/IDE/Core/Actions.hs +++ b/ghcide/src/Development/IDE/Core/Actions.hs @@ -40,7 +40,7 @@ import Language.LSP.Protocol.Types (DocumentHighlight (..), SymbolInformation (..)) import Language.LSP.Server (resRootPath) import System.Directory (createDirectoryIfMissing, doesFileExist) -import System.FilePath ((), takeDirectory) +import System.FilePath ((), (<.>), takeDirectory) -- | Generates URIs for files in dependencies, but not in the @@ -80,7 +80,7 @@ lookupMod HieDbWriter{indexQueue} hieFile moduleName uid _boot = MaybeT $ do writeOutDir :: FilePath writeOutDir = projectRoot ".hls" "dependencies" show uid writeOutFile :: FilePath - writeOutFile = moduleNameSlashes moduleName ++ ".hs" + writeOutFile = moduleNameSlashes moduleName <.> "hs" writeOutPath :: FilePath writeOutPath = writeOutDir writeOutFile moduleUri :: Uri diff --git a/ghcide/src/Development/IDE/Core/Shake.hs b/ghcide/src/Development/IDE/Core/Shake.hs index 9a90df4eb34..9852181ed2d 100644 --- a/ghcide/src/Development/IDE/Core/Shake.hs +++ b/ghcide/src/Development/IDE/Core/Shake.hs @@ -1132,9 +1132,12 @@ data SourceFileOrigin = FromProject | FromDependency getSourceFileOrigin :: NormalizedFilePath -> SourceFileOrigin getSourceFileOrigin f = - case isInfixOf ".hls/dependencies" (show f) of + case [".hls", "dependencies"] `isInfixOf` (splitDirectories file) of True -> FromDependency False -> FromProject + where + file :: FilePath + file = fromNormalizedFilePath f defineEarlyCutoff' :: forall k v. IdeRule k v diff --git a/ghcide/src/Development/IDE/Types/HscEnvEq.hs b/ghcide/src/Development/IDE/Types/HscEnvEq.hs index c4d5ac7560d..9befb13fe0a 100644 --- a/ghcide/src/Development/IDE/Types/HscEnvEq.hs +++ b/ghcide/src/Development/IDE/Types/HscEnvEq.hs @@ -151,7 +151,7 @@ newHscEnvEqWithImportPaths envImportPaths recorder se hscEnv deps = do indexModuleHieFile hieDir m = do let hiePath :: NormalizedFilePath hiePath = toNormalizedFilePath' $ - hieDir moduleNameSlashes (moduleName m) ++ ".hie" + hieDir moduleNameSlashes (moduleName m) <.> "hie" hieCheck <- checkHieFile recorder se "newHscEnvEqWithImportPaths" hiePath case hieCheck of HieFileMissing -> return ()