From 3ee785a779e8581ba995105739288390ecf2c5d5 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Mon, 6 May 2019 23:52:09 +0200 Subject: [PATCH 1/4] WIP on bringing in hie-bios VFS and haskell-lsp utils --- haskell-ide-engine.cabal | 10 +-- .../Haskell/Ide/Engine/PluginUtils.hs | 19 +++--- hie-plugin-api/hie-plugin-api.cabal | 4 +- src/Haskell/Ide/Engine/Support/HieExtras.hs | 43 ++++++------- src/Haskell/Ide/Engine/Transport/LspStdio.hs | 62 +++++++++++-------- stack.yaml | 9 ++- 6 files changed, 81 insertions(+), 66 deletions(-) diff --git a/haskell-ide-engine.cabal b/haskell-ide-engine.cabal index 04a36b14b..4b854c76a 100644 --- a/haskell-ide-engine.cabal +++ b/haskell-ide-engine.cabal @@ -70,8 +70,8 @@ library , gitrev >= 1.1 , haddock-api , haddock-library - , haskell-lsp == 0.11.* - , haskell-lsp-types == 0.11.* + , haskell-lsp == 0.12.* + , haskell-lsp-types == 0.12.* , haskell-src-exts , hie-plugin-api , hlint >= 2.0.11 @@ -86,6 +86,7 @@ library , optparse-simple >= 0.0.3 , parsec , process + , rope-utf16-splay , safe , sorted-list >= 0.2.1.0 , stm @@ -95,7 +96,6 @@ library , unordered-containers , vector , yaml >= 0.8.31 - , yi-rope ghc-options: -Wall -Wredundant-constraints if flag(pedantic) ghc-options: -Werror @@ -278,8 +278,8 @@ test-suite func-test , filepath , lsp-test >= 0.5.2 , haskell-ide-engine - , haskell-lsp-types == 0.11.* - , haskell-lsp == 0.11.* + , haskell-lsp-types == 0.12.* + , haskell-lsp == 0.12.* , hie-test-utils , hie-plugin-api , hspec diff --git a/hie-plugin-api/Haskell/Ide/Engine/PluginUtils.hs b/hie-plugin-api/Haskell/Ide/Engine/PluginUtils.hs index 6648294ef..62ea591a4 100644 --- a/hie-plugin-api/Haskell/Ide/Engine/PluginUtils.hs +++ b/hie-plugin-api/Haskell/Ide/Engine/PluginUtils.hs @@ -32,6 +32,7 @@ module Haskell.Ide.Engine.PluginUtils , readVFS , getRangeFromVFS , rangeLinesFromVfs + , splitAtLine ) where import Control.Monad.IO.Class @@ -57,7 +58,7 @@ import Prelude hiding (log) import SrcLoc import System.Directory import System.FilePath -import qualified Yi.Rope as Yi +import qualified Data.Rope.UTF16 as Rope -- --------------------------------------------------------------------- @@ -275,7 +276,7 @@ readVFS :: (MonadIde m, MonadIO m) => Uri -> m (Maybe T.Text) readVFS uri = do mvf <- getVirtualFile uri case mvf of - Just (VirtualFile _ txt) -> return $ Just (Yi.toText txt) + Just (VirtualFile _ txt _) -> return $ Just (Rope.toText txt) Nothing -> return Nothing getRangeFromVFS :: (MonadIde m, MonadIO m) => Uri -> Range -> m (Maybe T.Text) @@ -285,9 +286,11 @@ getRangeFromVFS uri rg = do Just vfs -> return $ Just $ rangeLinesFromVfs vfs rg Nothing -> return Nothing -rangeLinesFromVfs :: VirtualFile -> Range -> T.Text -rangeLinesFromVfs (VirtualFile _ yitext) (Range (Position lf _cf) (Position lt _ct)) = r - where - (_ ,s1) = Yi.splitAtLine lf yitext - (s2, _) = Yi.splitAtLine (lt - lf) s1 - r = Yi.toText s2 +-- rangeLinesFromVfs :: VirtualFile -> Range -> T.Text +-- rangeLinesFromVfs (VirtualFile _ yitext _) (Range (Position lf _cf) (Position lt _ct)) = r +-- where +-- (_ ,s1) = splitAtLine lf yitext +-- (s2, _) = splitAtLine (lt - lf) s1 +-- r = Rope.toText s2 + +-- --------------------------------------------------------------------- diff --git a/hie-plugin-api/hie-plugin-api.cabal b/hie-plugin-api/hie-plugin-api.cabal index 99e670ef2..14607972d 100644 --- a/hie-plugin-api/hie-plugin-api.cabal +++ b/hie-plugin-api/hie-plugin-api.cabal @@ -45,16 +45,16 @@ library , ghc , ghc-mod-core >= 5.9.0.0 , ghc-project-types >= 5.9.0.0 - , haskell-lsp == 0.11.* + , haskell-lsp == 0.12.* , hslogger , monad-control , mtl + , rope-utf16-splay == 0.2.* , stm , syb , text , transformers , unordered-containers - , yi-rope if os(windows) build-depends: Win32 else diff --git a/src/Haskell/Ide/Engine/Support/HieExtras.hs b/src/Haskell/Ide/Engine/Support/HieExtras.hs index 68f689749..f6349f25d 100644 --- a/src/Haskell/Ide/Engine/Support/HieExtras.hs +++ b/src/Haskell/Ide/Engine/Support/HieExtras.hs @@ -16,7 +16,7 @@ module Haskell.Ide.Engine.Support.HieExtras , findTypeDef , showName , safeTyThingId - , PosPrefixInfo(..) + , VFS.PosPrefixInfo(..) , HarePoint(..) , customOptions , runGhcModCommand @@ -65,6 +65,7 @@ import qualified Haskell.Ide.Engine.Support.Fuzzy as Fuzzy import HscTypes import qualified Language.Haskell.LSP.Types as J import qualified Language.Haskell.LSP.Types.Lens as J +import qualified Language.Haskell.LSP.VFS as VFS import Language.Haskell.Refact.API (showGhc) import Language.Haskell.Refact.Utils.MonadFunctions import Name @@ -188,23 +189,23 @@ safeTyThingId _ = Nothing -- Associates a module's qualifier with its members type QualCompls = Map.Map T.Text [CompItem] --- | Describes the line at the current cursor position -data PosPrefixInfo = PosPrefixInfo - { fullLine :: T.Text - -- ^ The full contents of the line the cursor is at - - , prefixModule :: T.Text - -- ^ If any, the module name that was typed right before the cursor position. - -- For example, if the user has typed "Data.Maybe.from", then this property - -- will be "Data.Maybe" - - , prefixText :: T.Text - -- ^ The word right before the cursor position, after removing the module part. - -- For example if the user has typed "Data.Maybe.from", - -- then this property will be "from" - , cursorPos :: J.Position - -- ^ The cursor position - } +-- -- | Describes the line at the current cursor position +-- data PosPrefixInfo = PosPrefixInfo +-- { fullLine :: T.Text +-- -- ^ The full contents of the line the cursor is at + +-- , prefixModule :: T.Text +-- -- ^ If any, the module name that was typed right before the cursor position. +-- -- For example, if the user has typed "Data.Maybe.from", then this property +-- -- will be "Data.Maybe" + +-- , prefixText :: T.Text +-- -- ^ The word right before the cursor position, after removing the module part. +-- -- For example if the user has typed "Data.Maybe.from", +-- -- then this property will be "from" +-- , cursorPos :: J.Position +-- -- ^ The cursor position +-- } data CachedCompletions = CC { allModNamesAsNS :: [T.Text] @@ -338,7 +339,7 @@ instance ModuleCache CachedCompletions where newtype WithSnippets = WithSnippets Bool -- | Returns the cached completions for the given module and position. -getCompletions :: Uri -> PosPrefixInfo -> WithSnippets -> IdeM (IdeResult [J.CompletionItem]) +getCompletions :: Uri -> VFS.PosPrefixInfo -> WithSnippets -> IdeM (IdeResult [J.CompletionItem]) getCompletions uri prefixInfo (WithSnippets withSnippets) = pluginGetFile "getCompletions: " uri $ \file -> do let snippetLens = (^? J.textDocument @@ -356,7 +357,7 @@ getCompletions uri prefixInfo (WithSnippets withSnippets) = , J._insertText = Nothing } - PosPrefixInfo { fullLine, prefixModule, prefixText } = prefixInfo + VFS.PosPrefixInfo { VFS.fullLine, VFS.prefixModule, VFS.prefixText } = prefixInfo debugm $ "got prefix" ++ show (prefixModule, prefixText) let enteredQual = if T.null prefixModule then "" else prefixModule <> "." fullPrefix = enteredQual <> prefixText @@ -373,7 +374,7 @@ getCompletions uri prefixInfo (WithSnippets withSnippets) = ^ -} pos = - let newPos = cursorPos prefixInfo + let newPos = VFS.cursorPos prefixInfo Position l c = fromMaybe newPos (newPosToOld newPos) typeStuff = [isSpace, (`elem` (">-." :: String))] stripTypeStuff = T.dropWhileEnd (\x -> any (\f -> f x) typeStuff) diff --git a/src/Haskell/Ide/Engine/Transport/LspStdio.hs b/src/Haskell/Ide/Engine/Transport/LspStdio.hs index 93e22e7b3..c82c03676 100644 --- a/src/Haskell/Ide/Engine/Transport/LspStdio.hs +++ b/src/Haskell/Ide/Engine/Transport/LspStdio.hs @@ -27,7 +27,7 @@ import Control.Monad.STM import Data.Aeson ( (.=) ) import qualified Data.Aeson as J import qualified Data.ByteString.Lazy as BL -import Data.Char (isUpper, isAlphaNum) +-- import Data.Char (isUpper, isAlphaNum) import Data.Coerce (coerce) import Data.Default import Data.Foldable @@ -65,8 +65,8 @@ import qualified Language.Haskell.LSP.Types.Lens as J import qualified Language.Haskell.LSP.Utility as U import qualified Language.Haskell.LSP.VFS as VFS import System.Exit -import qualified System.Log.Logger as L -import qualified Yi.Rope as Yi +import qualified System.Log.Logger as L +import qualified Data.Rope.UTF16 as Rope -- --------------------------------------------------------------------- {-# ANN module ("hlint: ignore Eta reduce" :: String) #-} @@ -200,29 +200,37 @@ configVal field = field <$> getClientConfig getPrefixAtPos :: (MonadIO m, MonadReader REnv m) => Uri -> Position -> m (Maybe Hie.PosPrefixInfo) -getPrefixAtPos uri pos@(Position l c) = do +getPrefixAtPos uri pos = do mvf <- liftIO =<< asksLspFuncs Core.getVirtualFileFunc <*> pure uri case mvf of - Just (VFS.VirtualFile _ yitext) -> - return $ Just $ fromMaybe (Hie.PosPrefixInfo "" "" "" pos) $ do - let headMaybe [] = Nothing - headMaybe (x:_) = Just x - lastMaybe [] = Nothing - lastMaybe xs = Just $ last xs - curLine <- headMaybe $ Yi.lines $ snd $ Yi.splitAtLine l yitext - let beforePos = Yi.take c curLine - curWord <- case Yi.last beforePos of - Just ' ' -> Just "" -- don't count abc as the curword in 'abc ' - _ -> Yi.toText <$> lastMaybe (Yi.words beforePos) - let parts = T.split (=='.') - $ T.takeWhileEnd (\x -> isAlphaNum x || x `elem` ("._'"::String)) curWord - case reverse parts of - [] -> Nothing - (x:xs) -> do - let modParts = dropWhile (not . isUpper . T.head) - $ reverse $ filter (not .T.null) xs - modName = T.intercalate "." modParts - return $ Hie.PosPrefixInfo (Yi.toText curLine) modName x pos + -- Just (VFS.VirtualFile _ yitext) -> + -- return $ Just $ fromMaybe (Hie.PosPrefixInfo "" "" "" pos) $ do + -- let headMaybe [] = Nothing + -- headMaybe (x:_) = Just x + -- lastMaybe [] = Nothing + -- lastMaybe xs = Just $ last xs + -- -- curLine <- headMaybe $ Yi.lines $ snd $ Yi.splitAtLine l yitext + -- -- let beforePos = Yi.take c curLine + -- -- curWord <- case Yi.last beforePos of + -- -- Just ' ' -> Just "" -- don't count abc as the curword in 'abc ' + -- -- _ -> Yi.toText <$> lastMaybe (Yi.words beforePos) + + -- curLine <- headMaybe $ Yi.lines $ snd $ splitAtLine l yitext + -- let beforePos = Yi.take c curLine + -- curWord <- case Yi.last beforePos of + -- Just ' ' -> Just "" -- don't count abc as the curword in 'abc ' + -- _ -> Yi.toText <$> lastMaybe (Yi.words beforePos) + + -- let parts = T.split (=='.') + -- $ T.takeWhileEnd (\x -> isAlphaNum x || x `elem` ("._'"::String)) curWord + -- case reverse parts of + -- [] -> Nothing + -- (x:xs) -> do + -- let modParts = dropWhile (not . isUpper . T.head) + -- $ reverse $ filter (not .T.null) xs + -- modName = T.intercalate "." modParts + -- return $ Hie.PosPrefixInfo (Yi.toText curLine) modName x pos + Just vf -> VFS.getCompletionPrefix pos vf Nothing -> return Nothing -- --------------------------------------------------------------------- @@ -237,8 +245,8 @@ mapFileFromVfs tn vtdi = do vfsFunc <- asksLspFuncs Core.getVirtualFileFunc mvf <- liftIO $ vfsFunc uri case (mvf, uriToFilePath uri) of - (Just (VFS.VirtualFile _ yitext), Just fp) -> do - let text' = Yi.toString yitext + (Just (VFS.VirtualFile _ yitext _), Just fp) -> do + let text' = Rope.toString yitext -- text = "{-# LINE 1 \"" ++ fp ++ "\"#-}\n" <> text' let req = GReq tn (Just uri) Nothing Nothing (const $ return ()) $ IdeResultOk <$> do @@ -826,7 +834,7 @@ withDocumentContents reqId uri f = do (J.responseId reqId) J.InvalidRequest "Document was not open" - Just (VFS.VirtualFile _ txt) -> f (Yi.toText txt) + Just (VFS.VirtualFile _ txt _) -> f (Rope.toText txt) -- | Get the currently configured formatter provider. -- The currently configured formatter provider is defined in @Config@ by PluginId. diff --git a/stack.yaml b/stack.yaml index 678643e7c..1b05b7b20 100644 --- a/stack.yaml +++ b/stack.yaml @@ -10,6 +10,9 @@ extra-deps: - ./submodules/ghc-mod - ./submodules/ghc-mod/core - ./submodules/ghc-mod/ghc-project-types +- ../lsp-test +- ../haskell-lsp +- ../haskell-lsp/haskell-lsp-types - ansi-terminal-0.8.2 - butcher-1.3.2.1 @@ -19,11 +22,11 @@ extra-deps: - floskell-0.10.0 - ghc-exactprint-0.5.8.2 - haddock-api-2.22.0 -- haskell-lsp-0.11.0.0 -- haskell-lsp-types-0.11.0.0 +# - haskell-lsp-0.12.1.0 +# - haskell-lsp-types-0.12.1.0 - hlint-2.1.17 - hsimport-0.8.8 -- lsp-test-0.5.2.0 +# - lsp-test-0.5.2.1 - monad-dijkstra-0.1.1.2@rev:1 - monad-memo-0.4.1 - multistate-0.8.0.1 From 4e76c92e73851c5bb73952e3eb6794e60960b5cf Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Tue, 7 May 2019 23:06:48 +0200 Subject: [PATCH 2/4] Complete migration of some utilities to haskell-lsp Currently using submodules pending accepting PRs on haskell-lsp and lsp-test --- .gitmodules | 6 ++++ cabal.project | 3 ++ haskell-ide-engine.cabal | 2 +- .../Haskell/Ide/Engine/PluginUtils.hs | 8 ------ hie-plugin-api/hie-plugin-api.cabal | 2 +- src/Haskell/Ide/Engine/Support/HieExtras.hs | 18 ------------ src/Haskell/Ide/Engine/Transport/LspStdio.hs | 28 ------------------- stack-8.2.1.yaml | 9 ++++-- stack-8.2.2.yaml | 9 ++++-- stack-8.4.2.yaml | 9 ++++-- stack-8.4.3.yaml | 9 ++++-- stack-8.4.4.yaml | 9 ++++-- stack-8.6.1.yaml | 9 ++++-- stack-8.6.2.yaml | 9 ++++-- stack-8.6.3.yaml | 9 ++++-- stack-8.6.4.yaml | 9 ++++-- stack-8.6.5.yaml | 9 ++++-- stack.yaml | 7 +++-- submodules/haskell-lsp | 1 + submodules/lsp-test | 1 + 20 files changed, 77 insertions(+), 89 deletions(-) create mode 160000 submodules/haskell-lsp create mode 160000 submodules/lsp-test diff --git a/.gitmodules b/.gitmodules index 4e873c34d..b45a04c07 100644 --- a/.gitmodules +++ b/.gitmodules @@ -31,3 +31,9 @@ # url = https://github.com/bubba/ghc-mod.git url = https://github.com/alanz/ghc-mod.git +[submodule "submodules/haskell-lsp"] + path = submodules/haskell-lsp + url = https://github.com/alanz/haskell-lsp.git +[submodule "submodules/lsp-test"] + path = submodules/lsp-test + url = https://github.com/alanz/lsp-test.git diff --git a/cabal.project b/cabal.project index 809c1948d..a1c22cd71 100644 --- a/cabal.project +++ b/cabal.project @@ -8,5 +8,8 @@ packages: ./submodules/ghc-mod/ ./submodules/ghc-mod/core/ ./submodules/ghc-mod/ghc-project-types + ./submodules/haskell-lsp + ./submodules/haskell-lsp/haskell-lsp-types + ./submodules/lsp-test tests: true diff --git a/haskell-ide-engine.cabal b/haskell-ide-engine.cabal index 4b854c76a..c9bbc0cc8 100644 --- a/haskell-ide-engine.cabal +++ b/haskell-ide-engine.cabal @@ -86,7 +86,7 @@ library , optparse-simple >= 0.0.3 , parsec , process - , rope-utf16-splay + , rope-utf16-splay >= 0.3.1.0 , safe , sorted-list >= 0.2.1.0 , stm diff --git a/hie-plugin-api/Haskell/Ide/Engine/PluginUtils.hs b/hie-plugin-api/Haskell/Ide/Engine/PluginUtils.hs index 62ea591a4..8c30e2729 100644 --- a/hie-plugin-api/Haskell/Ide/Engine/PluginUtils.hs +++ b/hie-plugin-api/Haskell/Ide/Engine/PluginUtils.hs @@ -32,7 +32,6 @@ module Haskell.Ide.Engine.PluginUtils , readVFS , getRangeFromVFS , rangeLinesFromVfs - , splitAtLine ) where import Control.Monad.IO.Class @@ -286,11 +285,4 @@ getRangeFromVFS uri rg = do Just vfs -> return $ Just $ rangeLinesFromVfs vfs rg Nothing -> return Nothing --- rangeLinesFromVfs :: VirtualFile -> Range -> T.Text --- rangeLinesFromVfs (VirtualFile _ yitext _) (Range (Position lf _cf) (Position lt _ct)) = r --- where --- (_ ,s1) = splitAtLine lf yitext --- (s2, _) = splitAtLine (lt - lf) s1 --- r = Rope.toText s2 - -- --------------------------------------------------------------------- diff --git a/hie-plugin-api/hie-plugin-api.cabal b/hie-plugin-api/hie-plugin-api.cabal index 14607972d..b099764c8 100644 --- a/hie-plugin-api/hie-plugin-api.cabal +++ b/hie-plugin-api/hie-plugin-api.cabal @@ -49,7 +49,7 @@ library , hslogger , monad-control , mtl - , rope-utf16-splay == 0.2.* + , rope-utf16-splay >= 0.3.1.0 , stm , syb , text diff --git a/src/Haskell/Ide/Engine/Support/HieExtras.hs b/src/Haskell/Ide/Engine/Support/HieExtras.hs index f6349f25d..844642058 100644 --- a/src/Haskell/Ide/Engine/Support/HieExtras.hs +++ b/src/Haskell/Ide/Engine/Support/HieExtras.hs @@ -189,24 +189,6 @@ safeTyThingId _ = Nothing -- Associates a module's qualifier with its members type QualCompls = Map.Map T.Text [CompItem] --- -- | Describes the line at the current cursor position --- data PosPrefixInfo = PosPrefixInfo --- { fullLine :: T.Text --- -- ^ The full contents of the line the cursor is at - --- , prefixModule :: T.Text --- -- ^ If any, the module name that was typed right before the cursor position. --- -- For example, if the user has typed "Data.Maybe.from", then this property --- -- will be "Data.Maybe" - --- , prefixText :: T.Text --- -- ^ The word right before the cursor position, after removing the module part. --- -- For example if the user has typed "Data.Maybe.from", --- -- then this property will be "from" --- , cursorPos :: J.Position --- -- ^ The cursor position --- } - data CachedCompletions = CC { allModNamesAsNS :: [T.Text] , unqualCompls :: [CompItem] diff --git a/src/Haskell/Ide/Engine/Transport/LspStdio.hs b/src/Haskell/Ide/Engine/Transport/LspStdio.hs index c82c03676..8a60d0b84 100644 --- a/src/Haskell/Ide/Engine/Transport/LspStdio.hs +++ b/src/Haskell/Ide/Engine/Transport/LspStdio.hs @@ -27,7 +27,6 @@ import Control.Monad.STM import Data.Aeson ( (.=) ) import qualified Data.Aeson as J import qualified Data.ByteString.Lazy as BL --- import Data.Char (isUpper, isAlphaNum) import Data.Coerce (coerce) import Data.Default import Data.Foldable @@ -203,33 +202,6 @@ getPrefixAtPos :: (MonadIO m, MonadReader REnv m) getPrefixAtPos uri pos = do mvf <- liftIO =<< asksLspFuncs Core.getVirtualFileFunc <*> pure uri case mvf of - -- Just (VFS.VirtualFile _ yitext) -> - -- return $ Just $ fromMaybe (Hie.PosPrefixInfo "" "" "" pos) $ do - -- let headMaybe [] = Nothing - -- headMaybe (x:_) = Just x - -- lastMaybe [] = Nothing - -- lastMaybe xs = Just $ last xs - -- -- curLine <- headMaybe $ Yi.lines $ snd $ Yi.splitAtLine l yitext - -- -- let beforePos = Yi.take c curLine - -- -- curWord <- case Yi.last beforePos of - -- -- Just ' ' -> Just "" -- don't count abc as the curword in 'abc ' - -- -- _ -> Yi.toText <$> lastMaybe (Yi.words beforePos) - - -- curLine <- headMaybe $ Yi.lines $ snd $ splitAtLine l yitext - -- let beforePos = Yi.take c curLine - -- curWord <- case Yi.last beforePos of - -- Just ' ' -> Just "" -- don't count abc as the curword in 'abc ' - -- _ -> Yi.toText <$> lastMaybe (Yi.words beforePos) - - -- let parts = T.split (=='.') - -- $ T.takeWhileEnd (\x -> isAlphaNum x || x `elem` ("._'"::String)) curWord - -- case reverse parts of - -- [] -> Nothing - -- (x:xs) -> do - -- let modParts = dropWhile (not . isUpper . T.head) - -- $ reverse $ filter (not .T.null) xs - -- modName = T.intercalate "." modParts - -- return $ Hie.PosPrefixInfo (Yi.toText curLine) modName x pos Just vf -> VFS.getCompletionPrefix pos vf Nothing -> return Nothing diff --git a/stack-8.2.1.yaml b/stack-8.2.1.yaml index 57ffafac6..87590b6c5 100644 --- a/stack-8.2.1.yaml +++ b/stack-8.2.1.yaml @@ -10,6 +10,9 @@ extra-deps: - ./submodules/ghc-mod - ./submodules/ghc-mod/core - ./submodules/ghc-mod/ghc-project-types +- ./submodules/haskell-lsp +- ./submodules/haskell-lsp/haskell-lsp-types +- ./submodules/lsp-test # - brittany-0.11.0.0 - butcher-1.3.1.1 @@ -20,11 +23,11 @@ extra-deps: - ghc-exactprint-0.5.8.2 - haddock-api-2.18.1 - haddock-library-1.4.4 -- haskell-lsp-0.11.0.0 -- haskell-lsp-types-0.11.0.0 +# - haskell-lsp-0.12.1.0 +# - haskell-lsp-types-0.12.1.0 - hlint-2.0.11 - hsimport-0.8.8 -- lsp-test-0.5.2.0 +# - lsp-test-0.5.2.1 - monad-dijkstra-0.1.1.2 - mtl-2.2.2 - pretty-show-1.8.2 diff --git a/stack-8.2.2.yaml b/stack-8.2.2.yaml index a22638b16..7d7e83bd1 100644 --- a/stack-8.2.2.yaml +++ b/stack-8.2.2.yaml @@ -10,6 +10,9 @@ extra-deps: - ./submodules/ghc-mod - ./submodules/ghc-mod/core - ./submodules/ghc-mod/ghc-project-types +- ./submodules/haskell-lsp +- ./submodules/haskell-lsp/haskell-lsp-types +- ./submodules/lsp-test # - brittany-0.11.0.0 - butcher-1.3.1.1 @@ -21,14 +24,14 @@ extra-deps: - ghc-exactprint-0.5.8.2 - haddock-api-2.18.1 - haddock-library-1.4.4 -- haskell-lsp-0.11.0.0 -- haskell-lsp-types-0.11.0.0 +# - haskell-lsp-0.12.1.0 +# - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 - hlint-2.1.17 - hoogle-5.0.17.6 - hsimport-0.8.8 -- lsp-test-0.5.2.0 +# - lsp-test-0.5.2.1 - monad-dijkstra-0.1.1.2 - pretty-show-1.8.2 - sorted-list-0.2.1.0 diff --git a/stack-8.4.2.yaml b/stack-8.4.2.yaml index 22df4c149..9456257af 100644 --- a/stack-8.4.2.yaml +++ b/stack-8.4.2.yaml @@ -10,6 +10,9 @@ extra-deps: - ./submodules/ghc-mod - ./submodules/ghc-mod/core - ./submodules/ghc-mod/ghc-project-types +- ./submodules/haskell-lsp +- ./submodules/haskell-lsp/haskell-lsp-types +- ./submodules/lsp-test # - brittany-0.11.0.0 - base-compat-0.9.3 @@ -19,14 +22,14 @@ extra-deps: - ghc-exactprint-0.5.8.2 - haddock-api-2.20.0 - haddock-library-1.6.0 -- haskell-lsp-0.11.0.0 -- haskell-lsp-types-0.11.0.0 +# - haskell-lsp-0.12.1.0 +# - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 - hlint-2.1.17 - hoogle-5.0.17.6 - hsimport-0.8.8 -- lsp-test-0.5.2.0 +# - lsp-test-0.5.2.1 - monad-dijkstra-0.1.1.2 - pretty-show-1.8.2 - syz-0.2.0.0 diff --git a/stack-8.4.3.yaml b/stack-8.4.3.yaml index e442baf74..8eb308f9b 100644 --- a/stack-8.4.3.yaml +++ b/stack-8.4.3.yaml @@ -10,6 +10,9 @@ extra-deps: - ./submodules/ghc-mod - ./submodules/ghc-mod/core - ./submodules/ghc-mod/ghc-project-types +- ./submodules/haskell-lsp +- ./submodules/haskell-lsp/haskell-lsp-types +- ./submodules/lsp-test - base-compat-0.9.3 - cabal-plan-0.3.0.0 @@ -18,14 +21,14 @@ extra-deps: - ghc-exactprint-0.5.8.2 - haddock-api-2.20.0 - haddock-library-1.6.0 -- haskell-lsp-0.11.0.0 -- haskell-lsp-types-0.11.0.0 +# - haskell-lsp-0.12.1.0 +# - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 - hlint-2.1.17 - hoogle-5.0.17.6 - hsimport-0.8.8 -- lsp-test-0.5.2.0 +# - lsp-test-0.5.2.1 - monad-dijkstra-0.1.1.2 - pretty-show-1.8.2 - syz-0.2.0.0 diff --git a/stack-8.4.4.yaml b/stack-8.4.4.yaml index 764c39ce8..f76d726e0 100644 --- a/stack-8.4.4.yaml +++ b/stack-8.4.4.yaml @@ -10,6 +10,9 @@ extra-deps: - ./submodules/ghc-mod - ./submodules/ghc-mod/core - ./submodules/ghc-mod/ghc-project-types +- ./submodules/haskell-lsp +- ./submodules/haskell-lsp/haskell-lsp-types +- ./submodules/lsp-test # - brittany-0.11.0.0 - cabal-plan-0.4.0.0 @@ -18,14 +21,14 @@ extra-deps: - ghc-exactprint-0.5.8.2 - haddock-api-2.20.0 - haddock-library-1.6.0 -- haskell-lsp-0.11.0.0 -- haskell-lsp-types-0.11.0.0 +# - haskell-lsp-0.12.1.0 +# - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 - hlint-2.1.17 - hoogle-5.0.17.6 - hsimport-0.8.8 -- lsp-test-0.5.2.0 +# - lsp-test-0.5.2.1 - monad-dijkstra-0.1.1.2 - optparse-simple-0.1.0 - pretty-show-1.9.5 diff --git a/stack-8.6.1.yaml b/stack-8.6.1.yaml index 8266d2292..898b17192 100644 --- a/stack-8.6.1.yaml +++ b/stack-8.6.1.yaml @@ -10,6 +10,9 @@ extra-deps: - ./submodules/ghc-mod - ./submodules/ghc-mod/core - ./submodules/ghc-mod/ghc-project-types +- ./submodules/haskell-lsp +- ./submodules/haskell-lsp/haskell-lsp-types +- ./submodules/lsp-test - apply-refact-0.6.0.0 - butcher-1.3.2.1 @@ -20,14 +23,14 @@ extra-deps: - data-tree-print-0.1.0.2 - floskell-0.10.0 - haddock-api-2.21.0 -- haskell-lsp-0.11.0.0 -- haskell-lsp-types-0.11.0.0 +# - haskell-lsp-0.12.1.0 +# - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 - hlint-2.1.17 - hoogle-5.0.17.6 - hsimport-0.8.8 -- lsp-test-0.5.2.0 +# - lsp-test-0.5.2.1 - monad-dijkstra-0.1.1.2 - monad-memo-0.4.1 - monoid-subclasses-0.4.6.1 diff --git a/stack-8.6.2.yaml b/stack-8.6.2.yaml index 35af4d4c8..b00854c2e 100644 --- a/stack-8.6.2.yaml +++ b/stack-8.6.2.yaml @@ -10,20 +10,23 @@ extra-deps: - ./submodules/ghc-mod - ./submodules/ghc-mod/core - ./submodules/ghc-mod/ghc-project-types +- ./submodules/haskell-lsp +- ./submodules/haskell-lsp/haskell-lsp-types +- ./submodules/lsp-test - butcher-1.3.2.1 - cabal-plan-0.4.0.0 - constrained-dynamic-0.1.0.0 - floskell-0.10.0 - haddock-api-2.21.0 -- haskell-lsp-0.11.0.0 -- haskell-lsp-types-0.11.0.0 +# - haskell-lsp-0.12.1.0 +# - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 - hlint-2.1.17 - hoogle-5.0.17.6 - hsimport-0.8.8 -- lsp-test-0.5.2.0 +# - lsp-test-0.5.2.1 - monad-dijkstra-0.1.1.2 - monad-memo-0.4.1 - multistate-0.8.0.1 diff --git a/stack-8.6.3.yaml b/stack-8.6.3.yaml index a8f5723e1..5e09d5512 100644 --- a/stack-8.6.3.yaml +++ b/stack-8.6.3.yaml @@ -10,20 +10,23 @@ extra-deps: - ./submodules/ghc-mod - ./submodules/ghc-mod/core - ./submodules/ghc-mod/ghc-project-types +- ./submodules/haskell-lsp +- ./submodules/haskell-lsp/haskell-lsp-types +- ./submodules/lsp-test - butcher-1.3.2.1 - cabal-plan-0.4.0.0 - constrained-dynamic-0.1.0.0 - floskell-0.10.0 - haddock-api-2.21.0 -- haskell-lsp-0.11.0.0 -- haskell-lsp-types-0.11.0.0 +# - haskell-lsp-0.12.1.0 +# - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 - hlint-2.1.17 - hoogle-5.0.17.6 - hsimport-0.8.8 -- lsp-test-0.5.2.0 +# - lsp-test-0.5.2.1 - monad-dijkstra-0.1.1.2 - monad-memo-0.4.1 - multistate-0.8.0.1 diff --git a/stack-8.6.4.yaml b/stack-8.6.4.yaml index eb6d5c9af..18f296647 100644 --- a/stack-8.6.4.yaml +++ b/stack-8.6.4.yaml @@ -10,19 +10,22 @@ extra-deps: - ./submodules/ghc-mod - ./submodules/ghc-mod/core - ./submodules/ghc-mod/ghc-project-types +- ./submodules/haskell-lsp +- ./submodules/haskell-lsp/haskell-lsp-types +- ./submodules/lsp-test - butcher-1.3.2.1 - cabal-plan-0.4.0.0 - constrained-dynamic-0.1.0.0 - floskell-0.10.0 - haddock-api-2.22.0 -- haskell-lsp-0.11.0.0 -- haskell-lsp-types-0.11.0.0 +# - haskell-lsp-0.12.1.0 +# - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - hlint-2.1.17 - hoogle-5.0.17.6 - hsimport-0.8.8 -- lsp-test-0.5.2.0 +# - lsp-test-0.5.2.1 - monad-dijkstra-0.1.1.2@rev:1 - monad-memo-0.4.1 - multistate-0.8.0.1 diff --git a/stack-8.6.5.yaml b/stack-8.6.5.yaml index 678643e7c..1ffb709c9 100644 --- a/stack-8.6.5.yaml +++ b/stack-8.6.5.yaml @@ -10,6 +10,9 @@ extra-deps: - ./submodules/ghc-mod - ./submodules/ghc-mod/core - ./submodules/ghc-mod/ghc-project-types +- ./submodules/haskell-lsp +- ./submodules/haskell-lsp/haskell-lsp-types +- ./submodules/lsp-test - ansi-terminal-0.8.2 - butcher-1.3.2.1 @@ -19,11 +22,11 @@ extra-deps: - floskell-0.10.0 - ghc-exactprint-0.5.8.2 - haddock-api-2.22.0 -- haskell-lsp-0.11.0.0 -- haskell-lsp-types-0.11.0.0 +# - haskell-lsp-0.12.1.0 +# - haskell-lsp-types-0.12.1.0 - hlint-2.1.17 - hsimport-0.8.8 -- lsp-test-0.5.2.0 +# - lsp-test-0.5.2.1 - monad-dijkstra-0.1.1.2@rev:1 - monad-memo-0.4.1 - multistate-0.8.0.1 diff --git a/stack.yaml b/stack.yaml index 1b05b7b20..1e04aaa93 100644 --- a/stack.yaml +++ b/stack.yaml @@ -10,9 +10,9 @@ extra-deps: - ./submodules/ghc-mod - ./submodules/ghc-mod/core - ./submodules/ghc-mod/ghc-project-types -- ../lsp-test -- ../haskell-lsp -- ../haskell-lsp/haskell-lsp-types +- ./submodules/haskell-lsp +- ./submodules/haskell-lsp/haskell-lsp-types +- ./submodules/lsp-test - ansi-terminal-0.8.2 - butcher-1.3.2.1 @@ -30,6 +30,7 @@ extra-deps: - monad-dijkstra-0.1.1.2@rev:1 - monad-memo-0.4.1 - multistate-0.8.0.1 +- rope-utf16-splay-0.3.1.0 - syz-0.2.0.0 - temporary-1.2.1.1 - yaml-0.8.32 diff --git a/submodules/haskell-lsp b/submodules/haskell-lsp new file mode 160000 index 000000000..8cae6484a --- /dev/null +++ b/submodules/haskell-lsp @@ -0,0 +1 @@ +Subproject commit 8cae6484aeeebc01112b7059cddc57b35ae8c081 diff --git a/submodules/lsp-test b/submodules/lsp-test new file mode 160000 index 000000000..d54524be6 --- /dev/null +++ b/submodules/lsp-test @@ -0,0 +1 @@ +Subproject commit d54524be6dd2b0b2d20530afd7049f22b33129d5 From 5ffe27058c73e9ee2caa8aefe9a6a21598de833d Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Tue, 7 May 2019 23:19:21 +0200 Subject: [PATCH 3/4] Add rope-utf16-splay as a dep to the stack files --- stack-8.2.1.yaml | 1 + stack-8.2.2.yaml | 1 + stack-8.4.2.yaml | 1 + stack-8.4.3.yaml | 1 + stack-8.4.4.yaml | 1 + stack-8.6.1.yaml | 1 + stack-8.6.2.yaml | 1 + stack-8.6.3.yaml | 1 + stack-8.6.4.yaml | 1 + stack-8.6.5.yaml | 1 + 10 files changed, 10 insertions(+) diff --git a/stack-8.2.1.yaml b/stack-8.2.1.yaml index 87590b6c5..f9968a904 100644 --- a/stack-8.2.1.yaml +++ b/stack-8.2.1.yaml @@ -31,6 +31,7 @@ extra-deps: - monad-dijkstra-0.1.1.2 - mtl-2.2.2 - pretty-show-1.8.2 +- rope-utf16-splay-0.3.1.0 - sorted-list-0.2.1.0 - syz-0.2.0.0 - yaml-0.8.32 diff --git a/stack-8.2.2.yaml b/stack-8.2.2.yaml index 7d7e83bd1..828695448 100644 --- a/stack-8.2.2.yaml +++ b/stack-8.2.2.yaml @@ -34,6 +34,7 @@ extra-deps: # - lsp-test-0.5.2.1 - monad-dijkstra-0.1.1.2 - pretty-show-1.8.2 +- rope-utf16-splay-0.3.1.0 - sorted-list-0.2.1.0 - syz-0.2.0.0 diff --git a/stack-8.4.2.yaml b/stack-8.4.2.yaml index 9456257af..4d59ce727 100644 --- a/stack-8.4.2.yaml +++ b/stack-8.4.2.yaml @@ -32,6 +32,7 @@ extra-deps: # - lsp-test-0.5.2.1 - monad-dijkstra-0.1.1.2 - pretty-show-1.8.2 +- rope-utf16-splay-0.3.1.0 - syz-0.2.0.0 - temporary-1.2.1.1 - windns-0.1.0.0 diff --git a/stack-8.4.3.yaml b/stack-8.4.3.yaml index 8eb308f9b..cae3aecd9 100644 --- a/stack-8.4.3.yaml +++ b/stack-8.4.3.yaml @@ -31,6 +31,7 @@ extra-deps: # - lsp-test-0.5.2.1 - monad-dijkstra-0.1.1.2 - pretty-show-1.8.2 +- rope-utf16-splay-0.3.1.0 - syz-0.2.0.0 - temporary-1.2.1.1 diff --git a/stack-8.4.4.yaml b/stack-8.4.4.yaml index f76d726e0..c337c1eb8 100644 --- a/stack-8.4.4.yaml +++ b/stack-8.4.4.yaml @@ -32,6 +32,7 @@ extra-deps: - monad-dijkstra-0.1.1.2 - optparse-simple-0.1.0 - pretty-show-1.9.5 +- rope-utf16-splay-0.3.1.0 - syz-0.2.0.0 - temporary-1.2.1.1 diff --git a/stack-8.6.1.yaml b/stack-8.6.1.yaml index 898b17192..fefb1a395 100644 --- a/stack-8.6.1.yaml +++ b/stack-8.6.1.yaml @@ -37,6 +37,7 @@ extra-deps: - multistate-0.8.0.1 - primes-0.2.1.0 - resolv-0.1.1.2 +- rope-utf16-splay-0.3.1.0 - syz-0.2.0.0 - temporary-1.2.1.1 - yaml-0.8.32 diff --git a/stack-8.6.2.yaml b/stack-8.6.2.yaml index b00854c2e..bd72cd991 100644 --- a/stack-8.6.2.yaml +++ b/stack-8.6.2.yaml @@ -30,6 +30,7 @@ extra-deps: - monad-dijkstra-0.1.1.2 - monad-memo-0.4.1 - multistate-0.8.0.1 +- rope-utf16-splay-0.3.1.0 - syz-0.2.0.0 - temporary-1.2.1.1 - yaml-0.8.32 diff --git a/stack-8.6.3.yaml b/stack-8.6.3.yaml index 5e09d5512..6f1dae856 100644 --- a/stack-8.6.3.yaml +++ b/stack-8.6.3.yaml @@ -31,6 +31,7 @@ extra-deps: - monad-memo-0.4.1 - multistate-0.8.0.1 - optparse-simple-0.1.0 +- rope-utf16-splay-0.3.1.0 - syz-0.2.0.0 - temporary-1.2.1.1 - yaml-0.8.32 diff --git a/stack-8.6.4.yaml b/stack-8.6.4.yaml index 18f296647..1ecc13f65 100644 --- a/stack-8.6.4.yaml +++ b/stack-8.6.4.yaml @@ -29,6 +29,7 @@ extra-deps: - monad-dijkstra-0.1.1.2@rev:1 - monad-memo-0.4.1 - multistate-0.8.0.1 +- rope-utf16-splay-0.3.1.0 - syz-0.2.0.0 - temporary-1.2.1.1 - yaml-0.8.32 diff --git a/stack-8.6.5.yaml b/stack-8.6.5.yaml index 1ffb709c9..1e04aaa93 100644 --- a/stack-8.6.5.yaml +++ b/stack-8.6.5.yaml @@ -30,6 +30,7 @@ extra-deps: - monad-dijkstra-0.1.1.2@rev:1 - monad-memo-0.4.1 - multistate-0.8.0.1 +- rope-utf16-splay-0.3.1.0 - syz-0.2.0.0 - temporary-1.2.1.1 - yaml-0.8.32 From 3e2fcc786134d8537056e4b3d4dbb3fb9b6ab512 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Wed, 8 May 2019 10:34:35 +0200 Subject: [PATCH 4/4] Bump haskell-lsp for current master --- submodules/haskell-lsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/haskell-lsp b/submodules/haskell-lsp index 8cae6484a..fb45245a5 160000 --- a/submodules/haskell-lsp +++ b/submodules/haskell-lsp @@ -1 +1 @@ -Subproject commit 8cae6484aeeebc01112b7059cddc57b35ae8c081 +Subproject commit fb45245a5e43a164f303c8c1d492669bd0f09fc4