Skip to content

Commit da71cd7

Browse files
committed
rebase fixes
1 parent c608a0f commit da71cd7

File tree

6 files changed

+23
-74
lines changed

6 files changed

+23
-74
lines changed

ghcide/ghcide.cabal

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,6 @@ library
166166
Development.IDE.LSP.HoverDefinition
167167
Development.IDE.LSP.LanguageServer
168168
Development.IDE.LSP.Outline
169-
Development.IDE.LSP.Protocol
170169
Development.IDE.LSP.Server
171170
Development.IDE.Spans.Common
172171
Development.IDE.Spans.Documentation

ghcide/src/Development/IDE/Core/Shake.hs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1036,7 +1036,7 @@ updateFileDiagnostics :: MonadIO m
10361036
-> ShakeExtras
10371037
-> [(ShowDiagnostic,Diagnostic)] -- ^ current results
10381038
-> m ()
1039-
updateFileDiagnostics fp k ShakeExtras{diagnostics, hiddenDiagnostics, publishedDiagnostics, state, debouncer, lspEnv} current = liftIO $ do
1039+
updateFileDiagnostics fp k ShakeExtras{logger, diagnostics, hiddenDiagnostics, publishedDiagnostics, state, debouncer, lspEnv} current = liftIO $ do
10401040
modTime <- (currentValue . fst =<<) <$> getValues state GetModificationTime fp
10411041
let (currentShown, currentHidden) = partition ((== ShowDiag) . fst) current
10421042
uri = filePathToUri' fp
@@ -1057,9 +1057,12 @@ updateFileDiagnostics fp k ShakeExtras{diagnostics, hiddenDiagnostics, published
10571057
registerEvent debouncer delay uri $ do
10581058
mask_ $ modifyVar_ publishedDiagnostics $ \published -> do
10591059
let lastPublish = HMap.lookupDefault [] uri published
1060-
when (lastPublish /= newDiags) $ mRunLspT lspEnv $
1061-
LSP.sendNotification LSP.STextDocumentPublishDiagnostics $
1062-
LSP.PublishDiagnosticsParams (fromNormalizedUri uri) ver (List newDiags)
1060+
when (lastPublish /= newDiags) $ case lspEnv of
1061+
Nothing -> -- Print an LSP event.
1062+
logInfo logger $ showDiagnosticsColored $ map (fp,ShowDiag,) newDiags
1063+
Just env -> LSP.runLspT env $
1064+
LSP.sendNotification LSP.STextDocumentPublishDiagnostics $
1065+
LSP.PublishDiagnosticsParams (fromNormalizedUri uri) ver (List newDiags)
10631066
pure $! HMap.insert uri newDiags published
10641067

10651068
newtype Priority = Priority Double

ghcide/src/Development/IDE/LSP/Protocol.hs

Lines changed: 0 additions & 23 deletions
This file was deleted.

ghcide/src/Development/IDE/Main.hs

Lines changed: 14 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import Control.Exception.Safe (
44
Exception (displayException),
55
catchAny,
66
)
7-
import Control.Lens ((^.))
87
import Control.Monad.Extra (concatMapM, unless, when)
98
import qualified Data.Aeson as J
109
import Data.Default (Default (def))
@@ -47,18 +46,13 @@ import Development.IDE.Core.Shake (
4746
)
4847
import Development.IDE.Core.Tracing (measureMemory)
4948
import Development.IDE.LSP.LanguageServer (runLanguageServer)
50-
import Development.IDE.LSP.Protocol
5149
import Development.IDE.Plugin (
52-
Plugin (pluginHandler, pluginRules),
50+
Plugin (pluginHandlers, pluginRules),
5351
)
5452
import Development.IDE.Plugin.HLS (asGhcIdePlugin)
5553
import Development.IDE.Session (SessionLoadingOptions, defaultLoadingOptions, loadSessionWithOptions, setInitialDynFlags)
56-
import Development.IDE.Types.Diagnostics (
57-
ShowDiagnostic (ShowDiag),
58-
showDiagnosticsColored,
59-
)
6054
import Development.IDE.Types.Location (toNormalizedFilePath')
61-
import Development.IDE.Types.Logger (Logger, logInfo)
55+
import Development.IDE.Types.Logger (Logger)
6256
import Development.IDE.Types.Options (
6357
IdeGhcSession,
6458
IdeOptions (optCheckParents, optCheckProject, optReportProgress),
@@ -71,14 +65,7 @@ import HIE.Bios.Cradle (findCradle)
7165
import Ide.Plugin.Config (CheckParents (NeverCheck), Config)
7266
import Ide.PluginUtils (allLspCmdIds', getProcessID, pluginDescToIdePlugins)
7367
import Ide.Types (IdePlugins)
74-
import qualified Language.Haskell.LSP.Core as LSP
75-
import Language.Haskell.LSP.Messages (FromServerMessage)
76-
import Language.Haskell.LSP.Types (
77-
DidChangeConfigurationNotification,
78-
InitializeRequest,
79-
LspId (IdInt),
80-
)
81-
import Language.Haskell.LSP.Types.Lens (initializationOptions, params)
68+
import qualified Language.LSP.Server as LSP
8269
import qualified System.Directory.Extra as IO
8370
import System.Exit (ExitCode (ExitFailure), exitWith)
8471
import System.FilePath (takeExtension, takeFileName)
@@ -99,8 +86,7 @@ data Arguments = Arguments
9986
, argsSessionLoadingOptions :: SessionLoadingOptions
10087
, argsIdeOptions :: Maybe Config -> Action IdeGhcSession -> IdeOptions
10188
, argsLspOptions :: LSP.Options
102-
, argsGetInitialConfig :: InitializeRequest -> Either T.Text Config
103-
, argsOnConfigChange :: DidChangeConfigurationNotification -> Either T.Text Config
89+
, argsOnConfigChange :: IdeState -> J.Value -> IO (Either T.Text Config)
10490
}
10591

10692
defArguments :: HieDb -> IndexQueue -> Arguments
@@ -117,12 +103,9 @@ defArguments hiedb hiechan =
117103
, argsSessionLoadingOptions = defaultLoadingOptions
118104
, argsIdeOptions = const defaultIdeOptions
119105
, argsLspOptions = def {LSP.completionTriggerCharacters = Just "."}
120-
, argsOnConfigChange = const $ Left "Updating Not supported"
121-
, argsGetInitialConfig = \x -> case x ^. params . initializationOptions of
122-
Nothing -> Right def
123-
Just v -> case J.fromJSON v of
124-
J.Error err -> Left $ T.pack err
125-
J.Success a -> Right a
106+
, argsOnConfigChange = \_ide v -> pure $ case J.fromJSON v of
107+
J.Error err -> Left $ T.pack err
108+
J.Success a -> Right a
126109
}
127110

128111
defaultMain :: Arguments -> IO ()
@@ -140,7 +123,7 @@ defaultMain Arguments{..} = do
140123
t <- offsetTime
141124
hPutStrLn stderr "Starting LSP server..."
142125
hPutStrLn stderr "If you are seeing this in a terminal, you probably should have run ghcide WITHOUT the --lsp option!"
143-
runLanguageServer options (pluginHandler plugins) argsGetInitialConfig argsOnConfigChange $ \getLspId event vfs caps wProg wIndefProg getConfig rootPath -> do
126+
runLanguageServer options argsOnConfigChange (pluginHandlers plugins) $ \env vfs rootPath -> do
144127
t <- t
145128
hPutStrLn stderr $ "Started LSP server in " ++ showDuration t
146129

@@ -153,19 +136,16 @@ defaultMain Arguments{..} = do
153136
`catchAny` (\e -> (hPutStrLn stderr $ "setInitialDynFlags: " ++ displayException e) >> pure Nothing)
154137

155138
sessionLoader <- loadSessionWithOptions argsSessionLoadingOptions $ fromMaybe dir rootPath
156-
config <- getConfig
139+
config <- LSP.runLspT env LSP.getConfig
157140
let options = (argsIdeOptions config sessionLoader)
158141
{ optReportProgress = clientSupportsProgress caps
159142
}
160143
rules = argsRules >> pluginRules plugins
144+
caps = LSP.resClientCapabilities env
161145
debouncer <- newAsyncDebouncer
162146
initialise
163-
caps
164147
rules
165-
getLspId
166-
event
167-
wProg
168-
wIndefProg
148+
(Just env)
169149
argsLogger
170150
debouncer
171151
options
@@ -195,13 +175,12 @@ defaultMain Arguments{..} = do
195175
putStrLn "\nStep 3/4: Initializing the IDE"
196176
vfs <- makeVFSHandle
197177
debouncer <- newAsyncDebouncer
198-
let dummyWithProg _ _ f = f (const (pure ()))
199178
sessionLoader <- loadSessionWithOptions argsSessionLoadingOptions dir
200179
let options = (argsIdeOptions Nothing sessionLoader)
201-
{ optCheckParents = NeverCheck
202-
, optCheckProject = False
180+
{ optCheckParents = pure NeverCheck
181+
, optCheckProject = pure False
203182
}
204-
ide <- initialise def mainRule (pure $ IdInt 0) (showEvent argsLogger) dummyWithProg (const (const id)) argsLogger debouncer options vfs argsHiedb argsHieChan
183+
ide <- initialise mainRule Nothing argsLogger debouncer options vfs argsHiedb argsHieChan
205184

206185
putStrLn "\nStep 4/4: Type checking the files"
207186
setFilesOfInterest ide $ HashMap.fromList $ map ((,OnDisk) . toNormalizedFilePath') files
@@ -246,10 +225,3 @@ expandFiles = concatMapM $ \x -> do
246225
when (null files) $
247226
fail $ "Couldn't find any .hs/.lhs files inside directory: " ++ x
248227
return files
249-
250-
-- | Print an LSP event.
251-
showEvent :: Logger -> FromServerMessage -> IO ()
252-
showEvent _ (EventFileDiagnostics _ []) = return ()
253-
showEvent argsLogger (EventFileDiagnostics (toNormalizedFilePath' -> file) diags) =
254-
logInfo argsLogger $ showDiagnosticsColored $ map (file,ShowDiag,) diags
255-
showEvent argsLogger e = logInfo argsLogger $ T.pack $ show e

plugins/hls-eval-plugin/test/Eval.hs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ import Test.Tasty.HUnit (
3737
(@?=),
3838
)
3939
import Data.List.Extra (nubOrdOn)
40-
import Development.IDE (List(List))
4140
import Ide.Plugin.Eval.Types (EvalParams(..))
4241
import Data.Aeson (fromJSON)
4342
import Data.Aeson.Types (Result(Success))

src/Ide/Main.hs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import qualified Data.Text as T
1818
import Development.IDE.Core.Rules
1919
import Development.IDE.Session (setInitialDynFlags, getHieDbLoc, runWithDb)
2020
import Development.IDE.Types.Logger as G
21-
import qualified Language.Haskell.LSP.Core as LSP
21+
import qualified Language.LSP.Server as LSP
2222
import Ide.Arguments
2323
import Ide.Logger
2424
import Ide.Version
@@ -31,7 +31,7 @@ import HieDb.Run
3131
import qualified Development.IDE.Main as Main
3232
import qualified Development.IDE.Types.Options as Ghcide
3333
import Development.Shake (ShakeOptions(shakeThreads))
34-
import Ide.Plugin.Config (getInitialConfig, getConfigFromNotification)
34+
import Ide.Plugin.Config (getConfigFromNotification)
3535

3636
defaultMain :: Arguments -> IdePlugins IdeState -> IO ()
3737
defaultMain args idePlugins = do
@@ -100,7 +100,6 @@ runLspMode lspArgs@LspArguments{..} idePlugins = do
100100
{ Main.argFiles = if argLSP then Nothing else Just []
101101
, Main.argsHlsPlugins = idePlugins
102102
, Main.argsLogger = hlsLogger
103-
, Main.argsGetInitialConfig = getInitialConfig
104103
, Main.argsOnConfigChange = getConfigFromNotification
105104
, Main.argsIdeOptions = \_config sessionLoader ->
106105
let defOptions = Ghcide.defaultIdeOptions sessionLoader

0 commit comments

Comments
 (0)