From ee7845a67d81e548a72ffe53e17afd69d7e3b7a4 Mon Sep 17 00:00:00 2001 From: Tomasz Tylec Date: Tue, 21 Dec 2021 10:37:38 +0100 Subject: [PATCH 1/2] use foldl' instead of foldl1 since there is monoid anyway --- plugins/hls-rename-plugin/src/Ide/Plugin/Rename.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/hls-rename-plugin/src/Ide/Plugin/Rename.hs b/plugins/hls-rename-plugin/src/Ide/Plugin/Rename.hs index b1d068a964..fd85bccc5c 100644 --- a/plugins/hls-rename-plugin/src/Ide/Plugin/Rename.hs +++ b/plugins/hls-rename-plugin/src/Ide/Plugin/Rename.hs @@ -48,7 +48,7 @@ renameProvider state pluginId (RenameParams (TextDocumentIdentifier uri) pos _pr getFileEdits = ap (getSrcEdits state . renameModRefs newNameText) (locToUri . head) fileEdits <- mapM getFileEdits filesRefs - pure $ foldl1 (<>) fileEdits + pure $ foldl' (<>) mempty fileEdits ------------------------------------------------------------------------------- -- Source renaming From 42bef3da6793d16fb106c2c5343f4810b49a5c71 Mon Sep 17 00:00:00 2001 From: Tomasz Tylec Date: Tue, 21 Dec 2021 10:39:05 +0100 Subject: [PATCH 2/2] avoid unsafe minimumBy --- plugins/hls-module-name-plugin/src/Ide/Plugin/ModuleName.hs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/hls-module-name-plugin/src/Ide/Plugin/ModuleName.hs b/plugins/hls-module-name-plugin/src/Ide/Plugin/ModuleName.hs index 15c4e9ed00..619bb2062b 100644 --- a/plugins/hls-module-name-plugin/src/Ide/Plugin/ModuleName.hs +++ b/plugins/hls-module-name-plugin/src/Ide/Plugin/ModuleName.hs @@ -22,6 +22,7 @@ import Data.Aeson (Value (Null), toJSON) import Data.Char (isLower) import qualified Data.HashMap.Strict as HashMap import Data.List (intercalate, isPrefixOf, minimumBy) +import qualified Data.List.NonEmpty as NE import Data.Maybe (maybeToList) import Data.Ord (comparing) import Data.String (IsString) @@ -99,7 +100,7 @@ action state uri = let emptyModule = maybe True (T.null . T.strip . virtualFileText) contents correctNames <- liftIO $ traceAs "correctNames" <$> pathModuleNames state nfp fp - let bestName = minimumBy (comparing T.length) correctNames + bestName <- minimumBy (comparing T.length) <$> (MaybeT . pure $ NE.nonEmpty correctNames) statedNameMaybe <- liftIO $ traceAs "statedName" <$> codeModuleName state nfp case statedNameMaybe of