From 94086a05ad0660c1ec1ae74ab39b7ee5b186c5b8 Mon Sep 17 00:00:00 2001 From: Bodigrim Date: Mon, 24 Jan 2022 21:43:48 +0000 Subject: [PATCH] Use T.decodeUtf8 + BS.readFile instead of T.readFile --- ghcide/src/Development/IDE/Core/Rules.hs | 3 +-- plugins/hls-hlint-plugin/src/Ide/Plugin/Hlint.hs | 5 +++-- plugins/hls-retrie-plugin/hls-retrie-plugin.cabal | 1 + plugins/hls-retrie-plugin/src/Ide/Plugin/Retrie.hs | 5 +++-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ghcide/src/Development/IDE/Core/Rules.hs b/ghcide/src/Development/IDE/Core/Rules.hs index 47ee55c32d..e30a0a26e2 100644 --- a/ghcide/src/Development/IDE/Core/Rules.hs +++ b/ghcide/src/Development/IDE/Core/Rules.hs @@ -91,7 +91,6 @@ import Data.Maybe import qualified Data.Rope.UTF16 as Rope import qualified Data.Set as Set import qualified Data.Text as T -import qualified Data.Text.IO as T import qualified Data.Text.Encoding as T import Data.Time (UTCTime (..)) import Data.Tuple.Extra @@ -528,7 +527,7 @@ persistentHieFileRule = addPersistentRule GetHieAst $ \file -> runMaybeT $ do (currentSource,ver) <- liftIO $ do mvf <- getVirtualFile vfs $ filePathToUri' file case mvf of - Nothing -> (,Nothing) <$> T.readFile (fromNormalizedFilePath file) + Nothing -> (,Nothing) . T.decodeUtf8 <$> BS.readFile (fromNormalizedFilePath file) Just vf -> pure (Rope.toText $ _text vf, Just $ _lsp_version vf) let refmap = Compat.generateReferencesMap . Compat.getAsts . Compat.hie_asts $ res del = deltaFromDiff (T.decodeUtf8 $ Compat.hie_hs_src res) currentSource diff --git a/plugins/hls-hlint-plugin/src/Ide/Plugin/Hlint.hs b/plugins/hls-hlint-plugin/src/Ide/Plugin/Hlint.hs index 76c44b6654..7a73ccfb5b 100644 --- a/plugins/hls-hlint-plugin/src/Ide/Plugin/Hlint.hs +++ b/plugins/hls-hlint-plugin/src/Ide/Plugin/Hlint.hs @@ -38,12 +38,13 @@ import Control.Monad.Trans.Except import Data.Aeson.Types (FromJSON (..), ToJSON (..), Value (..)) +import qualified Data.ByteString as BS import Data.Default import qualified Data.HashMap.Strict as Map import Data.Hashable import Data.Maybe import qualified Data.Text as T -import qualified Data.Text.IO as T +import qualified Data.Text.Encoding as T import Data.Typeable import Development.IDE hiding (Error) @@ -509,7 +510,7 @@ applyHint ide nfp mhint = liftIO $ logm $ "applyHint:apply=" ++ show commands let fp = fromNormalizedFilePath nfp (_, mbOldContent) <- liftIO $ runAction' $ getFileContents nfp - oldContent <- maybe (liftIO $ T.readFile fp) return mbOldContent + oldContent <- maybe (liftIO $ fmap T.decodeUtf8 $ BS.readFile fp) return mbOldContent modsum <- liftIO $ runAction' $ use_ GetModSummary nfp let dflags = ms_hspp_opts $ msrModSummary modsum -- Setting a environment variable with the libdir used by ghc-exactprint. diff --git a/plugins/hls-retrie-plugin/hls-retrie-plugin.cabal b/plugins/hls-retrie-plugin/hls-retrie-plugin.cabal index 1f29a77a19..58a53514f0 100644 --- a/plugins/hls-retrie-plugin/hls-retrie-plugin.cabal +++ b/plugins/hls-retrie-plugin/hls-retrie-plugin.cabal @@ -18,6 +18,7 @@ library build-depends: , aeson , base >=4.12 && <5 + , bytestring , containers , deepseq , directory diff --git a/plugins/hls-retrie-plugin/src/Ide/Plugin/Retrie.hs b/plugins/hls-retrie-plugin/src/Ide/Plugin/Retrie.hs index f48c40959a..afe9802c16 100644 --- a/plugins/hls-retrie-plugin/src/Ide/Plugin/Retrie.hs +++ b/plugins/hls-retrie-plugin/src/Ide/Plugin/Retrie.hs @@ -32,6 +32,7 @@ import Data.Aeson (FromJSON (..), Value (Null), genericParseJSON) import qualified Data.Aeson as Aeson +import qualified Data.ByteString as BS import Data.Bifunctor (Bifunctor (first), second) import Data.Coerce @@ -44,7 +45,7 @@ import Data.IORef.Extra (atomicModifyIORef'_, import Data.List.Extra (find, nubOrdOn) import Data.String (IsString (fromString)) import qualified Data.Text as T -import qualified Data.Text.IO as T +import qualified Data.Text.Encoding as T import Data.Typeable (Typeable) import Development.IDE hiding (pluginHandlers) import Development.IDE.Core.PositionMapping @@ -385,7 +386,7 @@ callRetrie state session rewrites origin restrictToOriginatingFile = do runAction "Retrie.GetFileContents" state $ getFileContents nt case mbContentsVFS of Just contents -> return contents - Nothing -> T.readFile (fromNormalizedFilePath nt) + Nothing -> T.decodeUtf8 <$> BS.readFile (fromNormalizedFilePath nt) if any (T.isPrefixOf "#if" . T.toLower) (T.lines contents) then do fixitiesRef <- newIORef mempty