Skip to content

Instantly share code, notes, and snippets.

@Aster89
Created July 21, 2026 10:45
Show Gist options
  • Select an option

  • Save Aster89/a740cc11f47bf4e56f547827bd0c69fe to your computer and use it in GitHub Desktop.

Select an option

Save Aster89/a740cc11f47bf4e56f547827bd0c69fe to your computer and use it in GitHub Desktop.
part of the stderr log of ycmd
2026-07-21 12:37:47,968 - DEBUG - TX: Sending message: b'Content-Length: 627\r\n\r\n{"id":3,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \\u2018caseTok\\u2019","range":{"end":{"character":54,"line":197},"start":{"character":47,"line":197}},"severity":2,"source":"typecheck","tags":[1]}]},"range":{"end":{"character":48,"line":197},"start":{"character":47,"line":197}},"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs"}}}'
127.0.0.1 - - [21/Jul/2026 12:37:48] "POST /receive_messages HTTP/1.1" 200 4
2026-07-21 12:37:49,678 - DEBUG - RX: Received message: b'{"id":3,"jsonrpc":"2.0","result":[{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}]}'
2026-07-21 12:37:49,678 - DEBUG - TX: Sending message: b'Content-Length: 405\r\n\r\n{"id":4,"jsonrpc":"2.0","method":"codeAction/resolve","params":{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}}'
2026-07-21 12:37:49,679 - DEBUG - RX: Received message: b'{"id":4,"jsonrpc":"2.0","result":{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}}'
127.0.0.1 - - [21/Jul/2026 12:37:49] "POST /run_completer_command HTTP/1.1" 200 623
2026-07-21 12:37:49,680 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:37:49,680 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:49,680 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:37:49,680 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:49,680 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:37:49,680 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:49,689 - DEBUG - Event name: FileReadyToParse
2026-07-21 12:37:49,689 - INFO - Adding buffer identifiers for file: /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs
2026-07-21 12:37:49,690 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action Change
2026-07-21 12:37:49,690 - DEBUG - TX: Sending notification: b'Content-Length: 15872\r\n\r\n{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"text":"{-# LANGUAGE CPP #-}\\n{-# LANGUAGE DataKinds #-}\\n{-# LANGUAGE DuplicateRecordFields #-}\\n{-# LANGUAGE LambdaCase #-}\\n{-# LANGUAGE MultiWayIf #-}\\n{-# LANGUAGE OverloadedStrings #-}\\n{-# LANGUAGE PatternSynonyms #-}\\n{-# LANGUAGE ViewPatterns #-}\\n{-# LANGUAGE RecordWildCards #-}\\n{-# LANGUAGE ImpredicativeTypes #-}\\n{-# LANGUAGE TypeFamilies #-}\\n{-# LANGUAGE OrPatterns #-}\\n{-# OPTIONS_GHC -Wno-unused-matches #-}\\n\\nmodule Ide.Plugin.CaseSplit\\n ( descriptor\\n , Log\\n ) where\\n\\nimport qualified Data.Text as T\\nimport Development.IDE.Core.PluginUtils (runActionE, useE, activeDiagnosticsInRange)\\nimport Ide.Plugin.Error\\n ( PluginError(PluginInternalError),\\n getNormalizedFilePathE,\\n handleMaybeM )\\nimport Ide.Types\\n ( defaultPluginDescriptor,\\n mkPluginHandler,\\n pluginGetClientCapabilities,\\n DynFlagsModifications(dynFlagsModifyGlobal),\\n PluginDescriptor(pluginModifyDynflags, pluginHandlers,\\n pluginPriority),\\n PluginId,\\n PluginMethodHandler )\\nimport qualified Language.LSP.Protocol.Message as LSP\\nimport Language.LSP.Protocol.Message (Method(Method_TextDocumentCodeAction))\\nimport qualified Development.IDE.Core.Shake as Shake\\nimport Language.LSP.Protocol.Types\\n ( Range,\\n CodeActionParams(_range, CodeActionParams, _textDocument),\\n CodeActionKind(CodeActionKind_QuickFix),\\n type (|?)(InR, InL),\\n CodeAction(_data_, CodeAction, _title, _kind, _diagnostics,\\n _isPreferred, _disabled, _edit, _command),\\n isSubrangeOf )\\nimport Development.IDE.Types.Diagnostics (_SomeStructuredMessage)\\nimport Development.IDE.GHC.Compat (GhcMessage (GhcDsMessage), HsMatchContext (CaseAlt), ConLike (RealDataCon), NamedThing (getName), HoleKind (HoleVar))\\nimport Development.IDE.GHC.Compat.Error (DsMessage(DsNonExhaustivePatterns), msgEnvelopeErrorL)\\nimport Data.Maybe (mapMaybe)\\nimport Control.Lens (Fold, prism\', (^?), (<&>), (^.))\\nimport GHC.HsToCore.Pmc.Solver.Types (PmAltConApp(..), PmAltCon(..), TmState (ts_facts), Nabla (nabla_tm_st), VarInfo (vi_pos))\\nimport GHC.Types.Unique.SDFM ( lookupUSDFM )\\nimport GHC.Types.Name.Reader (nameRdrName)\\nimport GHC (DynFlags(maxUncoveredPatterns), ParsedModule (pm_parsed_source), HasLoc (getHasLoc), realSrcSpan, EpToken (EpTok), EpaLocation\' (EpaSpan), AnnList (AnnList), AnnListBrackets (ListBraces, ListNone), LMatch)\\nimport Development.IDE.GHC.Compat (getLoc)\\nimport Control.Monad.IO.Class ( MonadIO(liftIO) )\\nimport Control.Monad.Trans.Maybe ( MaybeT(runMaybeT) )\\nimport Development.IDE.GHC.Compat.ExactPrint\\n ( exactPrint, d0, d1, noAnnSrcSpanDP1, setEntryDP )\\nimport Data.Data (Data())\\nimport Data.Generics.Schemes (everywhere)\\nimport Debug.Trace ( trace, traceWith )\\nimport Type.Reflection (eqTypeRep,\\n type (:~~:) (HRefl),\\n typeRep, typeOf)\\nimport GHC.Hs (GhcPs, deltaPos, unnamedHoleRdrName)\\nimport GHC.Types.SrcLoc (SrcSpan, GenLocated (L))\\nimport Language.Haskell.Syntax.Expr (HsExpr (HsCase, HsHole), Match (..), GRHSs (GRHSs), GRHS (GRHS))\\nimport Control.Monad.Trans (lift)\\nimport Ide.PluginUtils (diffText, WithDeletions (IncludeDeletions))\\nimport Development.IDE.Core.FileStore (getVersionedTextDoc)\\nimport qualified Language.LSP.Protocol.Lens as L\\nimport Language.Haskell.Syntax (MatchGroup (MG, mg_alts), LHsExpr, NoExtField (NoExtField), Pat (..), HsConDetails (PrefixCon), HsLocalBindsLR (EmptyLocalBinds))\\nimport GHC (EpAnn(EpAnn))\\nimport GHC.Parser.Annotation (noSrcSpanA, EpUniToken (EpUniTok), IsUnicodeSyntax (NormalSyntax), emptyComments, TrailingAnn (AddSemiAnn), addTrailingAnnToA, AnnList (al_brackets, al_anchor))\\nimport Data.List.NonEmpty.Extra (singleton)\\nimport Development.IDE.GHC.Compat.Core (GrhsAnn(..), HasSrcSpan, srcSpanStartLine, HsMatchContext (LamAlt), HsLamVariant (LamCase), LocatedAn, lann_trailing, AnnListItem, srcSpanStartCol, EpAnnHsCase (EpAnnHsCase))\\nimport Data.List.Extra (chunksOf)\\nimport Data.List (groupBy)\\nimport Data.Function (on, (&))\\nimport Control.Arrow ((&&&))\\nimport Development.IDE (Pretty (pretty), Recorder, WithPriority, IdeState (shakeExtras), FileDiagnostic (fdStructuredMessage), runAction, GetParsedModule (GetParsedModule), srcSpanToRange)\\nimport Ide.Logger ((<+>))\\n\\ninRange :: SrcSpan -> Range -> Bool\\ninRange s range = maybe False (`isSubrangeOf` range) (srcSpanToRange s)\\n\\ninSpan :: Range -> SrcSpan -> Bool\\ninSpan range s = maybe False (range `isSubrangeOf`) (srcSpanToRange s)\\n\\ndata Log\\n = LogShake Shake.Log\\n | LogWAEResponseError (LSP.TResponseError LSP.Method_WorkspaceApplyEdit)\\n | forall a. (Pretty a) => LogResolve a\\n\\ninstance Pretty Log where\\n pretty = \\\\case\\n LogShake logMsg -> pretty logMsg\\n LogWAEResponseError rspErr -> \\"RequestWorkspaceApplyEdit Failed with \\" <+> pretty rspErr\\n LogResolve msg -> pretty msg\\n\\ndescriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState\\ndescriptor _ plId = (defaultPluginDescriptor plId \\"Provides a code action to split case\\")\\n { pluginHandlers = mkPluginHandler LSP.SMethod_TextDocumentCodeAction suggestCaseSplitProvider\\n , pluginPriority = 1\\n , pluginModifyDynflags = mempty { dynFlagsModifyGlobal = \\\\dynFlags -> dynFlags { maxUncoveredPatterns = 30 } }\\n }\\n\\nsuggestCaseSplitProvider :: PluginMethodHandler IdeState \'Method_TextDocumentCodeAction\\nsuggestCaseSplitProvider\\n state\\n _\\n CodeActionParams{ _textDocument\\n , _range = range -- XXX: In the interactive usage, this is\\n -- the first _character of the token (?) the\\n -- cursor is on. In the test (at least with\\n -- the code as it is right now) it covers\\n -- the whole `case foo of` (until the char\\n -- past the f).\\n }\\n = do\\n nfp <- getNormalizedFilePathE $ _textDocument ^. L.uri\\n\\n verTxtDocId <- liftIO $ runAction \\"dfdaias\\" state $ getVersionedTextDoc _textDocument\\n\\n pm <- runActionE \\"not important, as long as unique\\" state\\n $ useE GetParsedModule nfp\\n\\n fdiags :: [FileDiagnostic] <- activeDiagnosticsInRange (shakeExtras state) nfp range\\n <&> \\\\case Nothing -> error \\"Oops, no diagnostics!\\"\\n Just fileDiags -> fileDiags\\n\\n case mapMaybe (\\\\d -> fdStructuredMessage d ^? _SomeStructuredMessage\\n . msgEnvelopeErrorL\\n . _DsMessage) fdiags of\\n (mapMaybe dsMsgToPmAlts -> [pmAltsConApp])\\n -- TODO: I need to filter for the diagnostic I want.\\n -- It might important to check the case of two nested `case`\\n -- expressions, both with non-exhaustive patterns.\\n -> do\\n\\n (old, new) <- handleMaybeM (PluginInternalError \\"Unable to makeEditText\\")\\n $ liftIO $ runMaybeT\\n $ makeEditText pm pmAltsConApp range\\n\\n caps <- lift pluginGetClientCapabilities\\n\\n pure $ InL [InR\\n $ CodeAction { _title = \\"Add placeholders for all missing patterns\\"\\n , _kind = Just CodeActionKind_QuickFix\\n , _diagnostics = Nothing -- TODO: I should probably encode here that it addresses the DsNonExhaustivePatterns diag\\n , _isPreferred = Nothing -- TODO: Just True?\\n , _disabled = Nothing\\n , _edit = Just $ diffText caps (verTxtDocId, old) new IncludeDeletions\\n , _command = Nothing\\n , _data_ = Nothing }]\\n (mapMaybe dsMsgToPmAlts -> []) -> error \\"wth?\\"\\n (mapMaybe dsMsgToPmAlts -> [_,_]) -> error \\"Two nested\\"\\n _ -> error \\"Oops, unexpected number of messages!\\"\\n\\n where\\n\\n dsMsgToPmAlts :: DsMessage -> Maybe [PmAltConApp]\\n dsMsgToPmAlts =\\n \\\\case DsNonExhaustivePatterns !(CaseAlt; LamAlt LamCase) _ _ ![ids] !nablas ->\\n trace (\\"length nablas = \\" ++ show (length nablas)) $\\n Just $ nablas >>=\\n (\\\\nabla -> let facts = ts_facts $ nabla_tm_st nabla\\n in case vi_pos <$> lookupUSDFM facts ids of\\n Just [x] -> [x]\\n Just [] -> error \\"Oops 0\\"\\n Just _ -> error \\"Oops 1\\"\\n _ -> error \\"Oops 2\\")\\n DsNonExhaustivePatterns (CaseAlt; LamAlt LamCase) _ _ _ _ -> error \\"Oops 3\\"\\n DsNonExhaustivePatterns _ _ _ ![_] _ -> error \\"Oops 4\\"\\n DsNonExhaustivePatterns _ _ _ _ _ -> error \\"Oops 5\\"\\n _ -> error \\"Oops Nothing\\"\\n\\n_DsMessage :: Fold GhcMessage DsMessage\\n_DsMessage = prism\' GhcDsMessage $ \\\\case\\n GhcDsMessage dsmsg -> Just dsmsg\\n _ -> Nothing\\n\\nmakeEditText :: Monad m => ParsedModule -> MissingPatterns -> Range -> MaybeT m (T.Text, T.Text)\\nmakeEditText pm missingPs range = do\\n\\n let ps = pm_parsed_source pm\\n !old = T.pack $ exactPrint ps\\n !ps\' = everywhere f ps\\n !new = T.pack $ exactPrint ps\'\\n\\n pure (old, new)\\n\\n where\\n f :: forall d. Data d => d -> d\\n f node = case typeOf node `eqTypeRep` typeRep @(HsExpr GhcPs) of\\n Nothing -> node\\n Just HRefl -> case node of\\n HsCase x@(EpAnnHsCase (EpTok caseTok) (EpTok ofTok)) e existingPs\\n | getHasLoc e `inRange` (traceWith ((\\"range = \\" ++) . show) range)\\n -- HsCase x e existingPs\\n -- | (traceWith ((\\"range = \\" ++) . show) range) `inSpan` getHasLoc e\\n -> HsCase x e $ addMissingPatterns (makeMatch <$> missingPs) existingPs\\n _ -> node\\n\\nisOnelined :: LocatedAn ann e -> LocatedAn ann e -> Bool\\nisOnelined = (==) `on` getStartLine\\n\\nisBraced :: EpAnn (AnnList a) -> Bool\\nisBraced (EpAnn _ (AnnList _ (ListBraces (EpTok (EpaSpan _)) _) _ _ _) _) = True\\nisBraced (EpAnn _ (AnnList _ ListNone _ _ _) _) = False\\nisBraced _ = error \\"Ooops\\"\\n\\ngetStartCol :: HasSrcSpan a => a -> Int\\ngetStartCol = srcSpanStartCol . realSrcSpan . getLoc\\n\\ngetStartLine :: HasSrcSpan a => a -> Int\\ngetStartLine = srcSpanStartLine . realSrcSpan . getLoc\\n\\nsetDP :: Int -> Int -> LocatedAn t a -> LocatedAn t a\\nsetDP = (flip setEntryDP .) . deltaPos\\n\\n-- Add semicolon, unless one is already present.\\naddSemiCol :: LocatedAn AnnListItem a -> LocatedAn AnnListItem a\\naddSemiCol (L l@(EpAnn _ ls _) e)\\n | none isSemiCol (lann_trailing ls)\\n = L (addTrailingAnnToA (AddSemiAnn (EpTok d0)) emptyComments l) e\\naddSemiCol l = l\\n\\naddMissingPatterns :: [LMatch GhcPs (LHsExpr GhcPs)] -> MatchGroup GhcPs (LHsExpr GhcPs) -> MatchGroup GhcPs (LHsExpr GhcPs)\\naddMissingPatterns missing mg@(MG { mg_alts = L l [] })\\n = mg { mg_alts = L l (fmt missing) }\\n where\\n fmt = if isBraced l\\n then zipWith3 (.)\\n (replicate (length missing - 1) addSemiCol ++ [id])\\n (repeat $ setDP 1 defaultIndent)\\n else zipWith ($)\\n (setDP 1 defaultIndent:repeat (setDP 1 0))\\n\\naddMissingPatterns missing mg@(MG { mg_alts = L altsLoc@(EpAnn _\\n (al_anchor &&& al_brackets -> (Just (getStartCol . getHasLoc -> foo), -- TODO: find a good name for foo\\n bracks))\\n _)\\n existings })\\n = mg { mg_alts = L altsLoc alts }\\n where\\n alts = let ptrnGrps = groupBy isOnelined existings\\n nGrps = length ptrnGrps\\n nLastGr = ptrnGrps -- length of the last group of \\u22651 patterns written on one line\\n & reverse\\n & take 1\\n & concat\\n & length\\n (indent, addSemiCols) = if isBraced altsLoc\\n then (foo - case bracks of\\n ListBraces (EpTok (getStartCol . getHasLoc -> col)) _ -> col\\n _ -> error \\"this is impossible\\"\\n ,zipWith ($) (replicate (nGrps - 1) id\\n ++ replicate (length missingGrps) (mapLast addSemiCol)\\n ++ [id]))\\n else (0, id)\\n missingGrps = chunksOf nLastGr missing\\n <&> \\\\case [] -> error \\"Impossible\\"\\n (m:ms) -> zipWith ($) (replicate (length ms) addSemiCol ++ [id])\\n (setDP 1 indent m:map (setDP 0 1) ms)\\n\\n in concat $ addSemiCols $ ptrnGrps ++ missingGrps\\n\\naddMissingPatterns _ _ = error \\"This should not be possible\\"\\n\\nmapLast :: (a -> a) -> [a] -> [a]\\nmapLast f [a] = [f a]\\nmapLast f (a:as) = a:mapLast f as\\nmapLast _ [] = error \\"nope\\"\\n\\nisSemiCol :: TrailingAnn -> Bool\\nisSemiCol (AddSemiAnn _) = True\\nisSemiCol _ = False\\n\\nmakeMatch :: PmAltConApp -> LMatch GhcPs (LHsExpr GhcPs)\\nmakeMatch PACA{ paca_con = PmAltConLike (RealDataCon ctor), .. }\\n = L noSrcSpanA\\n $ Match { m_ext = NoExtField\\n , m_ctxt = CaseAlt\\n , m_pats = L noSrcSpanA\\n $ [L noSrcSpanA ConPat { pat_con_ext = (Nothing, Nothing)\\n , pat_con = L noSrcSpanA $ nameRdrName $ getName ctor\\n , pat_args = PrefixCon $ map (const $ L noAnnSrcSpanDP1 $ WildPat NoExtField) paca_ids\\n }]\\n , m_grhss = GRHSs emptyComments\\n -- TODO: remember to respect unicode arrow of preceeding cases or the -XUnicodeSyntax (https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/unicode_syntax.html#extension-UnicodeSyntax)\\n -- TODO: check whether ga_sep default choice is really not printing anything.\\n (singleton $ L noSrcSpanA $ GRHS (EpAnn noSrcSpanA\\n (GrhsAnn{ ga_vbar = Nothing\\n , ga_sep = Right (EpUniTok d1 NormalSyntax) })\\n emptyComments) []\\n $ L noSrcSpanA $ HsHole $ HoleVar $ L noAnnSrcSpanDP1\\n $ unnamedHoleRdrName)\\n (EmptyLocalBinds NoExtField)\\n }\\nmakeMatch _ = error \\"boom\\"\\n\\ntype MissingPatterns = [PmAltConApp]\\n\\ndefaultIndent :: Int\\ndefaultIndent = 2\\n\\nnone :: Foldable t => (a -> Bool) -> t a -> Bool\\nnone = all . (not <$>)\\n"}],"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":2}}}'
127.0.0.1 - - [21/Jul/2026 12:37:49] "POST /event_notification HTTP/1.1" 200 2637
2026-07-21 12:37:49,850 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":2}}'
127.0.0.1 - - [21/Jul/2026 12:37:49] "POST /receive_messages HTTP/1.1" 200 128
2026-07-21 12:37:49,897 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-top-binds"]},"message":"Defined but not used: \xe2\x80\x98inSpan\xe2\x80\x99","range":{"end":{"character":6,"line":88},"start":{"character":0,"line":88}},"severity":2,"source":"typecheck","tags":[1]}],"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":2}}'
127.0.0.1 - - [21/Jul/2026 12:37:49] "POST /receive_messages HTTP/1.1" 200 999
2026-07-21 12:37:50,719 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,719 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:37:50,720 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,720 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,720 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,721 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:37:50,721 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,722 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,722 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:37:50,723 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,723 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,723 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,724 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,725 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,725 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,725 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,739 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:50,739 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:50,739 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:37:50,739 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:50,740 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:50,740 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:50,740 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:50,740 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:50,740 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:37:50,740 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:37:50,740 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,741 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:37:50,741 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:37:50,741 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:37:50,741 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:37:50,741 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:37:50,741 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,741 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:37:50,741 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:37:50,741 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:37:50,741 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:50,741 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:37:50,741 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:37:50,741 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,741 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:37:50,741 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:37:50,742 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:37:50,742 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:37:50,742 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:37:50,742 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,742 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:37:50,742 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:37:50,742 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:37:50,742 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:50,742 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:50,742 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:50,742 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:50,743 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:50,740 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:37:50,744 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,744 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:37:50,744 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:37:50,744 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:37:50,744 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:37:50,744 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:37:50,744 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:50,744 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:37:50,744 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:37:50,745 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:37:50,745 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:50,745 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:50,932 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:37:50,933 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:37:50,934 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:37:50,945 - DEBUG - Event name: FileReadyToParse
2026-07-21 12:37:50,945 - INFO - Adding buffer identifiers for file: /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs
2026-07-21 12:37:50,950 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action Change
2026-07-21 12:37:50,951 - DEBUG - TX: Sending notification: b'Content-Length: 15831\r\n\r\n{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"text":"{-# LANGUAGE CPP #-}\\n{-# LANGUAGE DataKinds #-}\\n{-# LANGUAGE DuplicateRecordFields #-}\\n{-# LANGUAGE LambdaCase #-}\\n{-# LANGUAGE MultiWayIf #-}\\n{-# LANGUAGE OverloadedStrings #-}\\n{-# LANGUAGE PatternSynonyms #-}\\n{-# LANGUAGE ViewPatterns #-}\\n{-# LANGUAGE RecordWildCards #-}\\n{-# LANGUAGE ImpredicativeTypes #-}\\n{-# LANGUAGE TypeFamilies #-}\\n{-# LANGUAGE OrPatterns #-}\\n\\nmodule Ide.Plugin.CaseSplit\\n ( descriptor\\n , Log\\n ) where\\n\\nimport qualified Data.Text as T\\nimport Development.IDE.Core.PluginUtils (runActionE, useE, activeDiagnosticsInRange)\\nimport Ide.Plugin.Error\\n ( PluginError(PluginInternalError),\\n getNormalizedFilePathE,\\n handleMaybeM )\\nimport Ide.Types\\n ( defaultPluginDescriptor,\\n mkPluginHandler,\\n pluginGetClientCapabilities,\\n DynFlagsModifications(dynFlagsModifyGlobal),\\n PluginDescriptor(pluginModifyDynflags, pluginHandlers,\\n pluginPriority),\\n PluginId,\\n PluginMethodHandler )\\nimport qualified Language.LSP.Protocol.Message as LSP\\nimport Language.LSP.Protocol.Message (Method(Method_TextDocumentCodeAction))\\nimport qualified Development.IDE.Core.Shake as Shake\\nimport Language.LSP.Protocol.Types\\n ( Range,\\n CodeActionParams(_range, CodeActionParams, _textDocument),\\n CodeActionKind(CodeActionKind_QuickFix),\\n type (|?)(InR, InL),\\n CodeAction(_data_, CodeAction, _title, _kind, _diagnostics,\\n _isPreferred, _disabled, _edit, _command),\\n isSubrangeOf )\\nimport Development.IDE.Types.Diagnostics (_SomeStructuredMessage)\\nimport Development.IDE.GHC.Compat (GhcMessage (GhcDsMessage), HsMatchContext (CaseAlt), ConLike (RealDataCon), NamedThing (getName), HoleKind (HoleVar))\\nimport Development.IDE.GHC.Compat.Error (DsMessage(DsNonExhaustivePatterns), msgEnvelopeErrorL)\\nimport Data.Maybe (mapMaybe)\\nimport Control.Lens (Fold, prism\', (^?), (<&>), (^.))\\nimport GHC.HsToCore.Pmc.Solver.Types (PmAltConApp(..), PmAltCon(..), TmState (ts_facts), Nabla (nabla_tm_st), VarInfo (vi_pos))\\nimport GHC.Types.Unique.SDFM ( lookupUSDFM )\\nimport GHC.Types.Name.Reader (nameRdrName)\\nimport GHC (DynFlags(maxUncoveredPatterns), ParsedModule (pm_parsed_source), HasLoc (getHasLoc), realSrcSpan, EpToken (EpTok), EpaLocation\' (EpaSpan), AnnList (AnnList), AnnListBrackets (ListBraces, ListNone), LMatch)\\nimport Development.IDE.GHC.Compat (getLoc)\\nimport Control.Monad.IO.Class ( MonadIO(liftIO) )\\nimport Control.Monad.Trans.Maybe ( MaybeT(runMaybeT) )\\nimport Development.IDE.GHC.Compat.ExactPrint\\n ( exactPrint, d0, d1, noAnnSrcSpanDP1, setEntryDP )\\nimport Data.Data (Data())\\nimport Data.Generics.Schemes (everywhere)\\nimport Debug.Trace ( trace, traceWith )\\nimport Type.Reflection (eqTypeRep,\\n type (:~~:) (HRefl),\\n typeRep, typeOf)\\nimport GHC.Hs (GhcPs, deltaPos, unnamedHoleRdrName)\\nimport GHC.Types.SrcLoc (SrcSpan, GenLocated (L))\\nimport Language.Haskell.Syntax.Expr (HsExpr (HsCase, HsHole), Match (..), GRHSs (GRHSs), GRHS (GRHS))\\nimport Control.Monad.Trans (lift)\\nimport Ide.PluginUtils (diffText, WithDeletions (IncludeDeletions))\\nimport Development.IDE.Core.FileStore (getVersionedTextDoc)\\nimport qualified Language.LSP.Protocol.Lens as L\\nimport Language.Haskell.Syntax (MatchGroup (MG, mg_alts), LHsExpr, NoExtField (NoExtField), Pat (..), HsConDetails (PrefixCon), HsLocalBindsLR (EmptyLocalBinds))\\nimport GHC (EpAnn(EpAnn))\\nimport GHC.Parser.Annotation (noSrcSpanA, EpUniToken (EpUniTok), IsUnicodeSyntax (NormalSyntax), emptyComments, TrailingAnn (AddSemiAnn), addTrailingAnnToA, AnnList (al_brackets, al_anchor))\\nimport Data.List.NonEmpty.Extra (singleton)\\nimport Development.IDE.GHC.Compat.Core (GrhsAnn(..), HasSrcSpan, srcSpanStartLine, HsMatchContext (LamAlt), HsLamVariant (LamCase), LocatedAn, lann_trailing, AnnListItem, srcSpanStartCol, EpAnnHsCase (EpAnnHsCase))\\nimport Data.List.Extra (chunksOf)\\nimport Data.List (groupBy)\\nimport Data.Function (on, (&))\\nimport Control.Arrow ((&&&))\\nimport Development.IDE (Pretty (pretty), Recorder, WithPriority, IdeState (shakeExtras), FileDiagnostic (fdStructuredMessage), runAction, GetParsedModule (GetParsedModule), srcSpanToRange)\\nimport Ide.Logger ((<+>))\\n\\ninRange :: SrcSpan -> Range -> Bool\\ninRange s range = maybe False (`isSubrangeOf` range) (srcSpanToRange s)\\n\\ninSpan :: Range -> SrcSpan -> Bool\\ninSpan range s = maybe False (range `isSubrangeOf`) (srcSpanToRange s)\\n\\ndata Log\\n = LogShake Shake.Log\\n | LogWAEResponseError (LSP.TResponseError LSP.Method_WorkspaceApplyEdit)\\n | forall a. (Pretty a) => LogResolve a\\n\\ninstance Pretty Log where\\n pretty = \\\\case\\n LogShake logMsg -> pretty logMsg\\n LogWAEResponseError rspErr -> \\"RequestWorkspaceApplyEdit Failed with \\" <+> pretty rspErr\\n LogResolve msg -> pretty msg\\n\\ndescriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState\\ndescriptor _ plId = (defaultPluginDescriptor plId \\"Provides a code action to split case\\")\\n { pluginHandlers = mkPluginHandler LSP.SMethod_TextDocumentCodeAction suggestCaseSplitProvider\\n , pluginPriority = 1\\n , pluginModifyDynflags = mempty { dynFlagsModifyGlobal = \\\\dynFlags -> dynFlags { maxUncoveredPatterns = 30 } }\\n }\\n\\nsuggestCaseSplitProvider :: PluginMethodHandler IdeState \'Method_TextDocumentCodeAction\\nsuggestCaseSplitProvider\\n state\\n _\\n CodeActionParams{ _textDocument\\n , _range = range -- XXX: In the interactive usage, this is\\n -- the first _character of the token (?) the\\n -- cursor is on. In the test (at least with\\n -- the code as it is right now) it covers\\n -- the whole `case foo of` (until the char\\n -- past the f).\\n }\\n = do\\n nfp <- getNormalizedFilePathE $ _textDocument ^. L.uri\\n\\n verTxtDocId <- liftIO $ runAction \\"dfdaias\\" state $ getVersionedTextDoc _textDocument\\n\\n pm <- runActionE \\"not important, as long as unique\\" state\\n $ useE GetParsedModule nfp\\n\\n fdiags :: [FileDiagnostic] <- activeDiagnosticsInRange (shakeExtras state) nfp range\\n <&> \\\\case Nothing -> error \\"Oops, no diagnostics!\\"\\n Just fileDiags -> fileDiags\\n\\n case mapMaybe (\\\\d -> fdStructuredMessage d ^? _SomeStructuredMessage\\n . msgEnvelopeErrorL\\n . _DsMessage) fdiags of\\n (mapMaybe dsMsgToPmAlts -> [pmAltsConApp])\\n -- TODO: I need to filter for the diagnostic I want.\\n -- It might important to check the case of two nested `case`\\n -- expressions, both with non-exhaustive patterns.\\n -> do\\n\\n (old, new) <- handleMaybeM (PluginInternalError \\"Unable to makeEditText\\")\\n $ liftIO $ runMaybeT\\n $ makeEditText pm pmAltsConApp range\\n\\n caps <- lift pluginGetClientCapabilities\\n\\n pure $ InL [InR\\n $ CodeAction { _title = \\"Add placeholders for all missing patterns\\"\\n , _kind = Just CodeActionKind_QuickFix\\n , _diagnostics = Nothing -- TODO: I should probably encode here that it addresses the DsNonExhaustivePatterns diag\\n , _isPreferred = Nothing -- TODO: Just True?\\n , _disabled = Nothing\\n , _edit = Just $ diffText caps (verTxtDocId, old) new IncludeDeletions\\n , _command = Nothing\\n , _data_ = Nothing }]\\n (mapMaybe dsMsgToPmAlts -> []) -> error \\"wth?\\"\\n (mapMaybe dsMsgToPmAlts -> [_,_]) -> error \\"Two nested\\"\\n _ -> error \\"Oops, unexpected number of messages!\\"\\n\\n where\\n\\n dsMsgToPmAlts :: DsMessage -> Maybe [PmAltConApp]\\n dsMsgToPmAlts =\\n \\\\case DsNonExhaustivePatterns !(CaseAlt; LamAlt LamCase) _ _ ![ids] !nablas ->\\n trace (\\"length nablas = \\" ++ show (length nablas)) $\\n Just $ nablas >>=\\n (\\\\nabla -> let facts = ts_facts $ nabla_tm_st nabla\\n in case vi_pos <$> lookupUSDFM facts ids of\\n Just [x] -> [x]\\n Just [] -> error \\"Oops 0\\"\\n Just _ -> error \\"Oops 1\\"\\n _ -> error \\"Oops 2\\")\\n DsNonExhaustivePatterns (CaseAlt; LamAlt LamCase) _ _ _ _ -> error \\"Oops 3\\"\\n DsNonExhaustivePatterns _ _ _ ![_] _ -> error \\"Oops 4\\"\\n DsNonExhaustivePatterns _ _ _ _ _ -> error \\"Oops 5\\"\\n _ -> error \\"Oops Nothing\\"\\n\\n_DsMessage :: Fold GhcMessage DsMessage\\n_DsMessage = prism\' GhcDsMessage $ \\\\case\\n GhcDsMessage dsmsg -> Just dsmsg\\n _ -> Nothing\\n\\nmakeEditText :: Monad m => ParsedModule -> MissingPatterns -> Range -> MaybeT m (T.Text, T.Text)\\nmakeEditText pm missingPs range = do\\n\\n let ps = pm_parsed_source pm\\n !old = T.pack $ exactPrint ps\\n !ps\' = everywhere f ps\\n !new = T.pack $ exactPrint ps\'\\n\\n pure (old, new)\\n\\n where\\n f :: forall d. Data d => d -> d\\n f node = case typeOf node `eqTypeRep` typeRep @(HsExpr GhcPs) of\\n Nothing -> node\\n Just HRefl -> case node of\\n HsCase x@(EpAnnHsCase (EpTok caseTok) (EpTok ofTok)) e existingPs\\n | getHasLoc e `inRange` (traceWith ((\\"range = \\" ++) . show) range)\\n -- HsCase x e existingPs\\n -- | (traceWith ((\\"range = \\" ++) . show) range) `inSpan` getHasLoc e\\n -> HsCase x e $ addMissingPatterns (makeMatch <$> missingPs) existingPs\\n _ -> node\\n\\nisOnelined :: LocatedAn ann e -> LocatedAn ann e -> Bool\\nisOnelined = (==) `on` getStartLine\\n\\nisBraced :: EpAnn (AnnList a) -> Bool\\nisBraced (EpAnn _ (AnnList _ (ListBraces (EpTok (EpaSpan _)) _) _ _ _) _) = True\\nisBraced (EpAnn _ (AnnList _ ListNone _ _ _) _) = False\\nisBraced _ = error \\"Ooops\\"\\n\\ngetStartCol :: HasSrcSpan a => a -> Int\\ngetStartCol = srcSpanStartCol . realSrcSpan . getLoc\\n\\ngetStartLine :: HasSrcSpan a => a -> Int\\ngetStartLine = srcSpanStartLine . realSrcSpan . getLoc\\n\\nsetDP :: Int -> Int -> LocatedAn t a -> LocatedAn t a\\nsetDP = (flip setEntryDP .) . deltaPos\\n\\n-- Add semicolon, unless one is already present.\\naddSemiCol :: LocatedAn AnnListItem a -> LocatedAn AnnListItem a\\naddSemiCol (L l@(EpAnn _ ls _) e)\\n | none isSemiCol (lann_trailing ls)\\n = L (addTrailingAnnToA (AddSemiAnn (EpTok d0)) emptyComments l) e\\naddSemiCol l = l\\n\\naddMissingPatterns :: [LMatch GhcPs (LHsExpr GhcPs)] -> MatchGroup GhcPs (LHsExpr GhcPs) -> MatchGroup GhcPs (LHsExpr GhcPs)\\naddMissingPatterns missing mg@(MG { mg_alts = L l [] })\\n = mg { mg_alts = L l (fmt missing) }\\n where\\n fmt = if isBraced l\\n then zipWith3 (.)\\n (replicate (length missing - 1) addSemiCol ++ [id])\\n (repeat $ setDP 1 defaultIndent)\\n else zipWith ($)\\n (setDP 1 defaultIndent:repeat (setDP 1 0))\\n\\naddMissingPatterns missing mg@(MG { mg_alts = L altsLoc@(EpAnn _\\n (al_anchor &&& al_brackets -> (Just (getStartCol . getHasLoc -> foo), -- TODO: find a good name for foo\\n bracks))\\n _)\\n existings })\\n = mg { mg_alts = L altsLoc alts }\\n where\\n alts = let ptrnGrps = groupBy isOnelined existings\\n nGrps = length ptrnGrps\\n nLastGr = ptrnGrps -- length of the last group of \\u22651 patterns written on one line\\n & reverse\\n & take 1\\n & concat\\n & length\\n (indent, addSemiCols) = if isBraced altsLoc\\n then (foo - case bracks of\\n ListBraces (EpTok (getStartCol . getHasLoc -> col)) _ -> col\\n _ -> error \\"this is impossible\\"\\n ,zipWith ($) (replicate (nGrps - 1) id\\n ++ replicate (length missingGrps) (mapLast addSemiCol)\\n ++ [id]))\\n else (0, id)\\n missingGrps = chunksOf nLastGr missing\\n <&> \\\\case [] -> error \\"Impossible\\"\\n (m:ms) -> zipWith ($) (replicate (length ms) addSemiCol ++ [id])\\n (setDP 1 indent m:map (setDP 0 1) ms)\\n\\n in concat $ addSemiCols $ ptrnGrps ++ missingGrps\\n\\naddMissingPatterns _ _ = error \\"This should not be possible\\"\\n\\nmapLast :: (a -> a) -> [a] -> [a]\\nmapLast f [a] = [f a]\\nmapLast f (a:as) = a:mapLast f as\\nmapLast _ [] = error \\"nope\\"\\n\\nisSemiCol :: TrailingAnn -> Bool\\nisSemiCol (AddSemiAnn _) = True\\nisSemiCol _ = False\\n\\nmakeMatch :: PmAltConApp -> LMatch GhcPs (LHsExpr GhcPs)\\nmakeMatch PACA{ paca_con = PmAltConLike (RealDataCon ctor), .. }\\n = L noSrcSpanA\\n $ Match { m_ext = NoExtField\\n , m_ctxt = CaseAlt\\n , m_pats = L noSrcSpanA\\n $ [L noSrcSpanA ConPat { pat_con_ext = (Nothing, Nothing)\\n , pat_con = L noSrcSpanA $ nameRdrName $ getName ctor\\n , pat_args = PrefixCon $ map (const $ L noAnnSrcSpanDP1 $ WildPat NoExtField) paca_ids\\n }]\\n , m_grhss = GRHSs emptyComments\\n -- TODO: remember to respect unicode arrow of preceeding cases or the -XUnicodeSyntax (https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/unicode_syntax.html#extension-UnicodeSyntax)\\n -- TODO: check whether ga_sep default choice is really not printing anything.\\n (singleton $ L noSrcSpanA $ GRHS (EpAnn noSrcSpanA\\n (GrhsAnn{ ga_vbar = Nothing\\n , ga_sep = Right (EpUniTok d1 NormalSyntax) })\\n emptyComments) []\\n $ L noSrcSpanA $ HsHole $ HoleVar $ L noAnnSrcSpanDP1\\n $ unnamedHoleRdrName)\\n (EmptyLocalBinds NoExtField)\\n }\\nmakeMatch _ = error \\"boom\\"\\n\\ntype MissingPatterns = [PmAltConApp]\\n\\ndefaultIndent :: Int\\ndefaultIndent = 2\\n\\nnone :: Foldable t => (a -> Bool) -> t a -> Bool\\nnone = all . (not <$>)\\n"}],"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":3}}}'
127.0.0.1 - - [21/Jul/2026 12:37:50] "POST /event_notification HTTP/1.1" 200 873
2026-07-21 12:37:51,045 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-top-binds"]},"message":"Defined but not used: \xe2\x80\x98inSpan\xe2\x80\x99","range":{"end":{"character":6,"line":87},"start":{"character":0,"line":87}},"severity":2,"source":"typecheck","tags":[1]},{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \xe2\x80\x98caseTok\xe2\x80\x99","range":{"end":{"character":54,"line":197},"start":{"character":47,"line":197}},"severity":2,"source":"typecheck","tags":[1]},{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \xe2\x80\x98ofTok\xe2\x80\x99","range":{"end":{"character":68,"line":197},"start":{"character":63,"line":197}},"severity":2,"source":"typecheck","tags":[1]}],"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":3}}'
127.0.0.1 - - [21/Jul/2026 12:37:51] "POST /receive_messages HTTP/1.1" 200 2763
2026-07-21 12:37:51,982 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:51,982 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:37:51,982 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:51,983 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:51,983 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:51,983 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:37:51,983 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:51,984 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:37:51,984 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:51,984 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:51,984 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:51,984 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:51,985 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:51,985 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:51,985 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:51,985 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:52,003 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:52,003 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:52,004 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:37:52,004 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:52,005 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:52,005 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:37:52,005 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:37:52,006 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:52,006 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:37:52,006 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:37:52,007 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:37:52,007 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:37:52,007 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:37:52,007 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:52,008 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:37:52,008 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:37:52,008 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:37:52,009 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:37:52,009 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:52,010 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:37:52,010 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:37:52,010 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:37:52,010 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:37:52,010 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:37:52,011 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:52,011 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:37:52,011 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:37:52,011 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:37:52,011 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:52,011 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:52,012 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:52,012 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:52,012 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:52,013 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:52,013 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:52,018 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:52,018 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:37:52,018 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:37:52,018 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:52,019 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:37:52,019 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:37:52,019 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:37:52,019 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:37:52,019 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:37:52,019 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:52,019 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:37:52,020 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:37:52,020 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:37:52,020 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:52,020 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:53,510 - INFO - Found executeCommandProvider support for command ExecuteCommand in haskell-language-server
2026-07-21 12:37:53,510 - INFO - Found codeActionProvider support for command FixIt in haskell-language-server
2026-07-21 12:37:53,510 - INFO - Found definitionProvider support for command GoToDefinition in haskell-language-server
2026-07-21 12:37:53,511 - INFO - Found definitionProvider support for command GoToDeclaration in haskell-language-server
2026-07-21 12:37:53,511 - INFO - Found definitionProvider support for command GoTo in haskell-language-server
2026-07-21 12:37:53,511 - INFO - Found typeDefinitionProvider support for command GoToType in haskell-language-server
2026-07-21 12:37:53,511 - INFO - Found implementationProvider support for command GoToImplementation in haskell-language-server
2026-07-21 12:37:53,511 - INFO - Found referencesProvider support for command GoToReferences in haskell-language-server
2026-07-21 12:37:53,511 - INFO - Found renameProvider support for command RefactorRename in haskell-language-server
2026-07-21 12:37:53,511 - INFO - Found documentFormattingProvider support for command Format in haskell-language-server
2026-07-21 12:37:53,511 - INFO - Found workspaceSymbolProvider support for command GoToSymbol in haskell-language-server
2026-07-21 12:37:53,511 - INFO - Found documentSymbolProvider support for command GoToDocumentOutline in haskell-language-server
2026-07-21 12:37:53,511 - INFO - Always supporting StopServer for haskell-language-server
2026-07-21 12:37:53,512 - INFO - Always supporting RestartServer for haskell-language-server
2026-07-21 12:37:53,512 - INFO - Always supporting GoToCallees for haskell-language-server
2026-07-21 12:37:53,512 - INFO - Always supporting GoToCallers for haskell-language-server
2026-07-21 12:37:53,512 - INFO - Always supporting CallHierarchy for haskell-language-server
2026-07-21 12:37:53,512 - INFO - Always supporting ResolveCallHierarchyItem for haskell-language-server
2026-07-21 12:37:53,512 - INFO - Always supporting GetHover for haskell-language-server
2026-07-21 12:37:53,512 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action None
2026-07-21 12:37:53,513 - DEBUG - TX: Sending message: b'Content-Length: 627\r\n\r\n{"id":5,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \\u2018caseTok\\u2019","range":{"end":{"character":54,"line":197},"start":{"character":47,"line":197}},"severity":2,"source":"typecheck","tags":[1]}]},"range":{"end":{"character":49,"line":197},"start":{"character":48,"line":197}},"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs"}}}'
2026-07-21 12:37:53,579 - DEBUG - RX: Received message: b'{"id":5,"jsonrpc":"2.0","result":[{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}]}'
2026-07-21 12:37:53,579 - DEBUG - TX: Sending message: b'Content-Length: 405\r\n\r\n{"id":6,"jsonrpc":"2.0","method":"codeAction/resolve","params":{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}}'
2026-07-21 12:37:53,579 - DEBUG - RX: Received message: b'{"id":6,"jsonrpc":"2.0","result":{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}}'
127.0.0.1 - - [21/Jul/2026 12:37:53] "POST /run_completer_command HTTP/1.1" 200 623
2026-07-21 12:37:53,580 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:37:53,581 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:53,581 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:37:53,581 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:53,581 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:37:53,581 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:53,591 - DEBUG - Event name: FileReadyToParse
2026-07-21 12:37:53,591 - INFO - Adding buffer identifiers for file: /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs
2026-07-21 12:37:53,592 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action Change
2026-07-21 12:37:53,592 - DEBUG - TX: Sending notification: b'Content-Length: 15872\r\n\r\n{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"text":"{-# LANGUAGE CPP #-}\\n{-# LANGUAGE DataKinds #-}\\n{-# LANGUAGE DuplicateRecordFields #-}\\n{-# LANGUAGE LambdaCase #-}\\n{-# LANGUAGE MultiWayIf #-}\\n{-# LANGUAGE OverloadedStrings #-}\\n{-# LANGUAGE PatternSynonyms #-}\\n{-# LANGUAGE ViewPatterns #-}\\n{-# LANGUAGE RecordWildCards #-}\\n{-# LANGUAGE ImpredicativeTypes #-}\\n{-# LANGUAGE TypeFamilies #-}\\n{-# LANGUAGE OrPatterns #-}\\n{-# OPTIONS_GHC -Wno-unused-matches #-}\\n\\nmodule Ide.Plugin.CaseSplit\\n ( descriptor\\n , Log\\n ) where\\n\\nimport qualified Data.Text as T\\nimport Development.IDE.Core.PluginUtils (runActionE, useE, activeDiagnosticsInRange)\\nimport Ide.Plugin.Error\\n ( PluginError(PluginInternalError),\\n getNormalizedFilePathE,\\n handleMaybeM )\\nimport Ide.Types\\n ( defaultPluginDescriptor,\\n mkPluginHandler,\\n pluginGetClientCapabilities,\\n DynFlagsModifications(dynFlagsModifyGlobal),\\n PluginDescriptor(pluginModifyDynflags, pluginHandlers,\\n pluginPriority),\\n PluginId,\\n PluginMethodHandler )\\nimport qualified Language.LSP.Protocol.Message as LSP\\nimport Language.LSP.Protocol.Message (Method(Method_TextDocumentCodeAction))\\nimport qualified Development.IDE.Core.Shake as Shake\\nimport Language.LSP.Protocol.Types\\n ( Range,\\n CodeActionParams(_range, CodeActionParams, _textDocument),\\n CodeActionKind(CodeActionKind_QuickFix),\\n type (|?)(InR, InL),\\n CodeAction(_data_, CodeAction, _title, _kind, _diagnostics,\\n _isPreferred, _disabled, _edit, _command),\\n isSubrangeOf )\\nimport Development.IDE.Types.Diagnostics (_SomeStructuredMessage)\\nimport Development.IDE.GHC.Compat (GhcMessage (GhcDsMessage), HsMatchContext (CaseAlt), ConLike (RealDataCon), NamedThing (getName), HoleKind (HoleVar))\\nimport Development.IDE.GHC.Compat.Error (DsMessage(DsNonExhaustivePatterns), msgEnvelopeErrorL)\\nimport Data.Maybe (mapMaybe)\\nimport Control.Lens (Fold, prism\', (^?), (<&>), (^.))\\nimport GHC.HsToCore.Pmc.Solver.Types (PmAltConApp(..), PmAltCon(..), TmState (ts_facts), Nabla (nabla_tm_st), VarInfo (vi_pos))\\nimport GHC.Types.Unique.SDFM ( lookupUSDFM )\\nimport GHC.Types.Name.Reader (nameRdrName)\\nimport GHC (DynFlags(maxUncoveredPatterns), ParsedModule (pm_parsed_source), HasLoc (getHasLoc), realSrcSpan, EpToken (EpTok), EpaLocation\' (EpaSpan), AnnList (AnnList), AnnListBrackets (ListBraces, ListNone), LMatch)\\nimport Development.IDE.GHC.Compat (getLoc)\\nimport Control.Monad.IO.Class ( MonadIO(liftIO) )\\nimport Control.Monad.Trans.Maybe ( MaybeT(runMaybeT) )\\nimport Development.IDE.GHC.Compat.ExactPrint\\n ( exactPrint, d0, d1, noAnnSrcSpanDP1, setEntryDP )\\nimport Data.Data (Data())\\nimport Data.Generics.Schemes (everywhere)\\nimport Debug.Trace ( trace, traceWith )\\nimport Type.Reflection (eqTypeRep,\\n type (:~~:) (HRefl),\\n typeRep, typeOf)\\nimport GHC.Hs (GhcPs, deltaPos, unnamedHoleRdrName)\\nimport GHC.Types.SrcLoc (SrcSpan, GenLocated (L))\\nimport Language.Haskell.Syntax.Expr (HsExpr (HsCase, HsHole), Match (..), GRHSs (GRHSs), GRHS (GRHS))\\nimport Control.Monad.Trans (lift)\\nimport Ide.PluginUtils (diffText, WithDeletions (IncludeDeletions))\\nimport Development.IDE.Core.FileStore (getVersionedTextDoc)\\nimport qualified Language.LSP.Protocol.Lens as L\\nimport Language.Haskell.Syntax (MatchGroup (MG, mg_alts), LHsExpr, NoExtField (NoExtField), Pat (..), HsConDetails (PrefixCon), HsLocalBindsLR (EmptyLocalBinds))\\nimport GHC (EpAnn(EpAnn))\\nimport GHC.Parser.Annotation (noSrcSpanA, EpUniToken (EpUniTok), IsUnicodeSyntax (NormalSyntax), emptyComments, TrailingAnn (AddSemiAnn), addTrailingAnnToA, AnnList (al_brackets, al_anchor))\\nimport Data.List.NonEmpty.Extra (singleton)\\nimport Development.IDE.GHC.Compat.Core (GrhsAnn(..), HasSrcSpan, srcSpanStartLine, HsMatchContext (LamAlt), HsLamVariant (LamCase), LocatedAn, lann_trailing, AnnListItem, srcSpanStartCol, EpAnnHsCase (EpAnnHsCase))\\nimport Data.List.Extra (chunksOf)\\nimport Data.List (groupBy)\\nimport Data.Function (on, (&))\\nimport Control.Arrow ((&&&))\\nimport Development.IDE (Pretty (pretty), Recorder, WithPriority, IdeState (shakeExtras), FileDiagnostic (fdStructuredMessage), runAction, GetParsedModule (GetParsedModule), srcSpanToRange)\\nimport Ide.Logger ((<+>))\\n\\ninRange :: SrcSpan -> Range -> Bool\\ninRange s range = maybe False (`isSubrangeOf` range) (srcSpanToRange s)\\n\\ninSpan :: Range -> SrcSpan -> Bool\\ninSpan range s = maybe False (range `isSubrangeOf`) (srcSpanToRange s)\\n\\ndata Log\\n = LogShake Shake.Log\\n | LogWAEResponseError (LSP.TResponseError LSP.Method_WorkspaceApplyEdit)\\n | forall a. (Pretty a) => LogResolve a\\n\\ninstance Pretty Log where\\n pretty = \\\\case\\n LogShake logMsg -> pretty logMsg\\n LogWAEResponseError rspErr -> \\"RequestWorkspaceApplyEdit Failed with \\" <+> pretty rspErr\\n LogResolve msg -> pretty msg\\n\\ndescriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState\\ndescriptor _ plId = (defaultPluginDescriptor plId \\"Provides a code action to split case\\")\\n { pluginHandlers = mkPluginHandler LSP.SMethod_TextDocumentCodeAction suggestCaseSplitProvider\\n , pluginPriority = 1\\n , pluginModifyDynflags = mempty { dynFlagsModifyGlobal = \\\\dynFlags -> dynFlags { maxUncoveredPatterns = 30 } }\\n }\\n\\nsuggestCaseSplitProvider :: PluginMethodHandler IdeState \'Method_TextDocumentCodeAction\\nsuggestCaseSplitProvider\\n state\\n _\\n CodeActionParams{ _textDocument\\n , _range = range -- XXX: In the interactive usage, this is\\n -- the first _character of the token (?) the\\n -- cursor is on. In the test (at least with\\n -- the code as it is right now) it covers\\n -- the whole `case foo of` (until the char\\n -- past the f).\\n }\\n = do\\n nfp <- getNormalizedFilePathE $ _textDocument ^. L.uri\\n\\n verTxtDocId <- liftIO $ runAction \\"dfdaias\\" state $ getVersionedTextDoc _textDocument\\n\\n pm <- runActionE \\"not important, as long as unique\\" state\\n $ useE GetParsedModule nfp\\n\\n fdiags :: [FileDiagnostic] <- activeDiagnosticsInRange (shakeExtras state) nfp range\\n <&> \\\\case Nothing -> error \\"Oops, no diagnostics!\\"\\n Just fileDiags -> fileDiags\\n\\n case mapMaybe (\\\\d -> fdStructuredMessage d ^? _SomeStructuredMessage\\n . msgEnvelopeErrorL\\n . _DsMessage) fdiags of\\n (mapMaybe dsMsgToPmAlts -> [pmAltsConApp])\\n -- TODO: I need to filter for the diagnostic I want.\\n -- It might important to check the case of two nested `case`\\n -- expressions, both with non-exhaustive patterns.\\n -> do\\n\\n (old, new) <- handleMaybeM (PluginInternalError \\"Unable to makeEditText\\")\\n $ liftIO $ runMaybeT\\n $ makeEditText pm pmAltsConApp range\\n\\n caps <- lift pluginGetClientCapabilities\\n\\n pure $ InL [InR\\n $ CodeAction { _title = \\"Add placeholders for all missing patterns\\"\\n , _kind = Just CodeActionKind_QuickFix\\n , _diagnostics = Nothing -- TODO: I should probably encode here that it addresses the DsNonExhaustivePatterns diag\\n , _isPreferred = Nothing -- TODO: Just True?\\n , _disabled = Nothing\\n , _edit = Just $ diffText caps (verTxtDocId, old) new IncludeDeletions\\n , _command = Nothing\\n , _data_ = Nothing }]\\n (mapMaybe dsMsgToPmAlts -> []) -> error \\"wth?\\"\\n (mapMaybe dsMsgToPmAlts -> [_,_]) -> error \\"Two nested\\"\\n _ -> error \\"Oops, unexpected number of messages!\\"\\n\\n where\\n\\n dsMsgToPmAlts :: DsMessage -> Maybe [PmAltConApp]\\n dsMsgToPmAlts =\\n \\\\case DsNonExhaustivePatterns !(CaseAlt; LamAlt LamCase) _ _ ![ids] !nablas ->\\n trace (\\"length nablas = \\" ++ show (length nablas)) $\\n Just $ nablas >>=\\n (\\\\nabla -> let facts = ts_facts $ nabla_tm_st nabla\\n in case vi_pos <$> lookupUSDFM facts ids of\\n Just [x] -> [x]\\n Just [] -> error \\"Oops 0\\"\\n Just _ -> error \\"Oops 1\\"\\n _ -> error \\"Oops 2\\")\\n DsNonExhaustivePatterns (CaseAlt; LamAlt LamCase) _ _ _ _ -> error \\"Oops 3\\"\\n DsNonExhaustivePatterns _ _ _ ![_] _ -> error \\"Oops 4\\"\\n DsNonExhaustivePatterns _ _ _ _ _ -> error \\"Oops 5\\"\\n _ -> error \\"Oops Nothing\\"\\n\\n_DsMessage :: Fold GhcMessage DsMessage\\n_DsMessage = prism\' GhcDsMessage $ \\\\case\\n GhcDsMessage dsmsg -> Just dsmsg\\n _ -> Nothing\\n\\nmakeEditText :: Monad m => ParsedModule -> MissingPatterns -> Range -> MaybeT m (T.Text, T.Text)\\nmakeEditText pm missingPs range = do\\n\\n let ps = pm_parsed_source pm\\n !old = T.pack $ exactPrint ps\\n !ps\' = everywhere f ps\\n !new = T.pack $ exactPrint ps\'\\n\\n pure (old, new)\\n\\n where\\n f :: forall d. Data d => d -> d\\n f node = case typeOf node `eqTypeRep` typeRep @(HsExpr GhcPs) of\\n Nothing -> node\\n Just HRefl -> case node of\\n HsCase x@(EpAnnHsCase (EpTok caseTok) (EpTok ofTok)) e existingPs\\n | getHasLoc e `inRange` (traceWith ((\\"range = \\" ++) . show) range)\\n -- HsCase x e existingPs\\n -- | (traceWith ((\\"range = \\" ++) . show) range) `inSpan` getHasLoc e\\n -> HsCase x e $ addMissingPatterns (makeMatch <$> missingPs) existingPs\\n _ -> node\\n\\nisOnelined :: LocatedAn ann e -> LocatedAn ann e -> Bool\\nisOnelined = (==) `on` getStartLine\\n\\nisBraced :: EpAnn (AnnList a) -> Bool\\nisBraced (EpAnn _ (AnnList _ (ListBraces (EpTok (EpaSpan _)) _) _ _ _) _) = True\\nisBraced (EpAnn _ (AnnList _ ListNone _ _ _) _) = False\\nisBraced _ = error \\"Ooops\\"\\n\\ngetStartCol :: HasSrcSpan a => a -> Int\\ngetStartCol = srcSpanStartCol . realSrcSpan . getLoc\\n\\ngetStartLine :: HasSrcSpan a => a -> Int\\ngetStartLine = srcSpanStartLine . realSrcSpan . getLoc\\n\\nsetDP :: Int -> Int -> LocatedAn t a -> LocatedAn t a\\nsetDP = (flip setEntryDP .) . deltaPos\\n\\n-- Add semicolon, unless one is already present.\\naddSemiCol :: LocatedAn AnnListItem a -> LocatedAn AnnListItem a\\naddSemiCol (L l@(EpAnn _ ls _) e)\\n | none isSemiCol (lann_trailing ls)\\n = L (addTrailingAnnToA (AddSemiAnn (EpTok d0)) emptyComments l) e\\naddSemiCol l = l\\n\\naddMissingPatterns :: [LMatch GhcPs (LHsExpr GhcPs)] -> MatchGroup GhcPs (LHsExpr GhcPs) -> MatchGroup GhcPs (LHsExpr GhcPs)\\naddMissingPatterns missing mg@(MG { mg_alts = L l [] })\\n = mg { mg_alts = L l (fmt missing) }\\n where\\n fmt = if isBraced l\\n then zipWith3 (.)\\n (replicate (length missing - 1) addSemiCol ++ [id])\\n (repeat $ setDP 1 defaultIndent)\\n else zipWith ($)\\n (setDP 1 defaultIndent:repeat (setDP 1 0))\\n\\naddMissingPatterns missing mg@(MG { mg_alts = L altsLoc@(EpAnn _\\n (al_anchor &&& al_brackets -> (Just (getStartCol . getHasLoc -> foo), -- TODO: find a good name for foo\\n bracks))\\n _)\\n existings })\\n = mg { mg_alts = L altsLoc alts }\\n where\\n alts = let ptrnGrps = groupBy isOnelined existings\\n nGrps = length ptrnGrps\\n nLastGr = ptrnGrps -- length of the last group of \\u22651 patterns written on one line\\n & reverse\\n & take 1\\n & concat\\n & length\\n (indent, addSemiCols) = if isBraced altsLoc\\n then (foo - case bracks of\\n ListBraces (EpTok (getStartCol . getHasLoc -> col)) _ -> col\\n _ -> error \\"this is impossible\\"\\n ,zipWith ($) (replicate (nGrps - 1) id\\n ++ replicate (length missingGrps) (mapLast addSemiCol)\\n ++ [id]))\\n else (0, id)\\n missingGrps = chunksOf nLastGr missing\\n <&> \\\\case [] -> error \\"Impossible\\"\\n (m:ms) -> zipWith ($) (replicate (length ms) addSemiCol ++ [id])\\n (setDP 1 indent m:map (setDP 0 1) ms)\\n\\n in concat $ addSemiCols $ ptrnGrps ++ missingGrps\\n\\naddMissingPatterns _ _ = error \\"This should not be possible\\"\\n\\nmapLast :: (a -> a) -> [a] -> [a]\\nmapLast f [a] = [f a]\\nmapLast f (a:as) = a:mapLast f as\\nmapLast _ [] = error \\"nope\\"\\n\\nisSemiCol :: TrailingAnn -> Bool\\nisSemiCol (AddSemiAnn _) = True\\nisSemiCol _ = False\\n\\nmakeMatch :: PmAltConApp -> LMatch GhcPs (LHsExpr GhcPs)\\nmakeMatch PACA{ paca_con = PmAltConLike (RealDataCon ctor), .. }\\n = L noSrcSpanA\\n $ Match { m_ext = NoExtField\\n , m_ctxt = CaseAlt\\n , m_pats = L noSrcSpanA\\n $ [L noSrcSpanA ConPat { pat_con_ext = (Nothing, Nothing)\\n , pat_con = L noSrcSpanA $ nameRdrName $ getName ctor\\n , pat_args = PrefixCon $ map (const $ L noAnnSrcSpanDP1 $ WildPat NoExtField) paca_ids\\n }]\\n , m_grhss = GRHSs emptyComments\\n -- TODO: remember to respect unicode arrow of preceeding cases or the -XUnicodeSyntax (https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/unicode_syntax.html#extension-UnicodeSyntax)\\n -- TODO: check whether ga_sep default choice is really not printing anything.\\n (singleton $ L noSrcSpanA $ GRHS (EpAnn noSrcSpanA\\n (GrhsAnn{ ga_vbar = Nothing\\n , ga_sep = Right (EpUniTok d1 NormalSyntax) })\\n emptyComments) []\\n $ L noSrcSpanA $ HsHole $ HoleVar $ L noAnnSrcSpanDP1\\n $ unnamedHoleRdrName)\\n (EmptyLocalBinds NoExtField)\\n }\\nmakeMatch _ = error \\"boom\\"\\n\\ntype MissingPatterns = [PmAltConApp]\\n\\ndefaultIndent :: Int\\ndefaultIndent = 2\\n\\nnone :: Foldable t => (a -> Bool) -> t a -> Bool\\nnone = all . (not <$>)\\n"}],"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":4}}}'
127.0.0.1 - - [21/Jul/2026 12:37:53] "POST /event_notification HTTP/1.1" 200 2637
2026-07-21 12:37:53,658 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-top-binds"]},"message":"Defined but not used: \xe2\x80\x98inSpan\xe2\x80\x99","range":{"end":{"character":6,"line":88},"start":{"character":0,"line":88}},"severity":2,"source":"typecheck","tags":[1]}],"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":4}}'
127.0.0.1 - - [21/Jul/2026 12:37:53] "POST /receive_messages HTTP/1.1" 200 999
2026-07-21 12:37:54,608 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,609 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:37:54,609 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,610 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,610 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,611 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:37:54,611 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,612 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,612 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:37:54,612 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,613 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,614 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,614 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,615 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,616 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,637 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:54,638 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:54,638 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:54,639 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:54,639 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:37:54,639 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:37:54,639 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,639 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:37:54,639 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:37:54,639 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:37:54,640 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:37:54,640 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:37:54,640 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,640 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:37:54,640 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:37:54,640 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:37:54,641 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:37:54,643 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:37:54,643 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,643 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:37:54,643 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:37:54,643 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:37:54,643 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:37:54,643 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:37:54,643 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,643 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:37:54,644 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:37:54,644 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:37:54,644 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:54,644 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:54,644 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:54,645 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:54,645 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:37:54,645 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:37:54,645 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,645 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:37:54,645 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:37:54,645 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:37:54,645 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:37:54,646 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:37:54,646 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:37:54,646 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:37:54,647 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:37:54,647 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:37:54,647 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:54,647 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:54,646 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:37:54,647 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:54,647 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:37:55,944 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:37:55,945 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:37:55,946 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:37:55,956 - DEBUG - Event name: FileReadyToParse
2026-07-21 12:37:55,956 - INFO - Adding buffer identifiers for file: /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs
2026-07-21 12:37:55,961 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action Change
2026-07-21 12:37:55,961 - DEBUG - TX: Sending notification: b'Content-Length: 15831\r\n\r\n{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"text":"{-# LANGUAGE CPP #-}\\n{-# LANGUAGE DataKinds #-}\\n{-# LANGUAGE DuplicateRecordFields #-}\\n{-# LANGUAGE LambdaCase #-}\\n{-# LANGUAGE MultiWayIf #-}\\n{-# LANGUAGE OverloadedStrings #-}\\n{-# LANGUAGE PatternSynonyms #-}\\n{-# LANGUAGE ViewPatterns #-}\\n{-# LANGUAGE RecordWildCards #-}\\n{-# LANGUAGE ImpredicativeTypes #-}\\n{-# LANGUAGE TypeFamilies #-}\\n{-# LANGUAGE OrPatterns #-}\\n\\nmodule Ide.Plugin.CaseSplit\\n ( descriptor\\n , Log\\n ) where\\n\\nimport qualified Data.Text as T\\nimport Development.IDE.Core.PluginUtils (runActionE, useE, activeDiagnosticsInRange)\\nimport Ide.Plugin.Error\\n ( PluginError(PluginInternalError),\\n getNormalizedFilePathE,\\n handleMaybeM )\\nimport Ide.Types\\n ( defaultPluginDescriptor,\\n mkPluginHandler,\\n pluginGetClientCapabilities,\\n DynFlagsModifications(dynFlagsModifyGlobal),\\n PluginDescriptor(pluginModifyDynflags, pluginHandlers,\\n pluginPriority),\\n PluginId,\\n PluginMethodHandler )\\nimport qualified Language.LSP.Protocol.Message as LSP\\nimport Language.LSP.Protocol.Message (Method(Method_TextDocumentCodeAction))\\nimport qualified Development.IDE.Core.Shake as Shake\\nimport Language.LSP.Protocol.Types\\n ( Range,\\n CodeActionParams(_range, CodeActionParams, _textDocument),\\n CodeActionKind(CodeActionKind_QuickFix),\\n type (|?)(InR, InL),\\n CodeAction(_data_, CodeAction, _title, _kind, _diagnostics,\\n _isPreferred, _disabled, _edit, _command),\\n isSubrangeOf )\\nimport Development.IDE.Types.Diagnostics (_SomeStructuredMessage)\\nimport Development.IDE.GHC.Compat (GhcMessage (GhcDsMessage), HsMatchContext (CaseAlt), ConLike (RealDataCon), NamedThing (getName), HoleKind (HoleVar))\\nimport Development.IDE.GHC.Compat.Error (DsMessage(DsNonExhaustivePatterns), msgEnvelopeErrorL)\\nimport Data.Maybe (mapMaybe)\\nimport Control.Lens (Fold, prism\', (^?), (<&>), (^.))\\nimport GHC.HsToCore.Pmc.Solver.Types (PmAltConApp(..), PmAltCon(..), TmState (ts_facts), Nabla (nabla_tm_st), VarInfo (vi_pos))\\nimport GHC.Types.Unique.SDFM ( lookupUSDFM )\\nimport GHC.Types.Name.Reader (nameRdrName)\\nimport GHC (DynFlags(maxUncoveredPatterns), ParsedModule (pm_parsed_source), HasLoc (getHasLoc), realSrcSpan, EpToken (EpTok), EpaLocation\' (EpaSpan), AnnList (AnnList), AnnListBrackets (ListBraces, ListNone), LMatch)\\nimport Development.IDE.GHC.Compat (getLoc)\\nimport Control.Monad.IO.Class ( MonadIO(liftIO) )\\nimport Control.Monad.Trans.Maybe ( MaybeT(runMaybeT) )\\nimport Development.IDE.GHC.Compat.ExactPrint\\n ( exactPrint, d0, d1, noAnnSrcSpanDP1, setEntryDP )\\nimport Data.Data (Data())\\nimport Data.Generics.Schemes (everywhere)\\nimport Debug.Trace ( trace, traceWith )\\nimport Type.Reflection (eqTypeRep,\\n type (:~~:) (HRefl),\\n typeRep, typeOf)\\nimport GHC.Hs (GhcPs, deltaPos, unnamedHoleRdrName)\\nimport GHC.Types.SrcLoc (SrcSpan, GenLocated (L))\\nimport Language.Haskell.Syntax.Expr (HsExpr (HsCase, HsHole), Match (..), GRHSs (GRHSs), GRHS (GRHS))\\nimport Control.Monad.Trans (lift)\\nimport Ide.PluginUtils (diffText, WithDeletions (IncludeDeletions))\\nimport Development.IDE.Core.FileStore (getVersionedTextDoc)\\nimport qualified Language.LSP.Protocol.Lens as L\\nimport Language.Haskell.Syntax (MatchGroup (MG, mg_alts), LHsExpr, NoExtField (NoExtField), Pat (..), HsConDetails (PrefixCon), HsLocalBindsLR (EmptyLocalBinds))\\nimport GHC (EpAnn(EpAnn))\\nimport GHC.Parser.Annotation (noSrcSpanA, EpUniToken (EpUniTok), IsUnicodeSyntax (NormalSyntax), emptyComments, TrailingAnn (AddSemiAnn), addTrailingAnnToA, AnnList (al_brackets, al_anchor))\\nimport Data.List.NonEmpty.Extra (singleton)\\nimport Development.IDE.GHC.Compat.Core (GrhsAnn(..), HasSrcSpan, srcSpanStartLine, HsMatchContext (LamAlt), HsLamVariant (LamCase), LocatedAn, lann_trailing, AnnListItem, srcSpanStartCol, EpAnnHsCase (EpAnnHsCase))\\nimport Data.List.Extra (chunksOf)\\nimport Data.List (groupBy)\\nimport Data.Function (on, (&))\\nimport Control.Arrow ((&&&))\\nimport Development.IDE (Pretty (pretty), Recorder, WithPriority, IdeState (shakeExtras), FileDiagnostic (fdStructuredMessage), runAction, GetParsedModule (GetParsedModule), srcSpanToRange)\\nimport Ide.Logger ((<+>))\\n\\ninRange :: SrcSpan -> Range -> Bool\\ninRange s range = maybe False (`isSubrangeOf` range) (srcSpanToRange s)\\n\\ninSpan :: Range -> SrcSpan -> Bool\\ninSpan range s = maybe False (range `isSubrangeOf`) (srcSpanToRange s)\\n\\ndata Log\\n = LogShake Shake.Log\\n | LogWAEResponseError (LSP.TResponseError LSP.Method_WorkspaceApplyEdit)\\n | forall a. (Pretty a) => LogResolve a\\n\\ninstance Pretty Log where\\n pretty = \\\\case\\n LogShake logMsg -> pretty logMsg\\n LogWAEResponseError rspErr -> \\"RequestWorkspaceApplyEdit Failed with \\" <+> pretty rspErr\\n LogResolve msg -> pretty msg\\n\\ndescriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState\\ndescriptor _ plId = (defaultPluginDescriptor plId \\"Provides a code action to split case\\")\\n { pluginHandlers = mkPluginHandler LSP.SMethod_TextDocumentCodeAction suggestCaseSplitProvider\\n , pluginPriority = 1\\n , pluginModifyDynflags = mempty { dynFlagsModifyGlobal = \\\\dynFlags -> dynFlags { maxUncoveredPatterns = 30 } }\\n }\\n\\nsuggestCaseSplitProvider :: PluginMethodHandler IdeState \'Method_TextDocumentCodeAction\\nsuggestCaseSplitProvider\\n state\\n _\\n CodeActionParams{ _textDocument\\n , _range = range -- XXX: In the interactive usage, this is\\n -- the first _character of the token (?) the\\n -- cursor is on. In the test (at least with\\n -- the code as it is right now) it covers\\n -- the whole `case foo of` (until the char\\n -- past the f).\\n }\\n = do\\n nfp <- getNormalizedFilePathE $ _textDocument ^. L.uri\\n\\n verTxtDocId <- liftIO $ runAction \\"dfdaias\\" state $ getVersionedTextDoc _textDocument\\n\\n pm <- runActionE \\"not important, as long as unique\\" state\\n $ useE GetParsedModule nfp\\n\\n fdiags :: [FileDiagnostic] <- activeDiagnosticsInRange (shakeExtras state) nfp range\\n <&> \\\\case Nothing -> error \\"Oops, no diagnostics!\\"\\n Just fileDiags -> fileDiags\\n\\n case mapMaybe (\\\\d -> fdStructuredMessage d ^? _SomeStructuredMessage\\n . msgEnvelopeErrorL\\n . _DsMessage) fdiags of\\n (mapMaybe dsMsgToPmAlts -> [pmAltsConApp])\\n -- TODO: I need to filter for the diagnostic I want.\\n -- It might important to check the case of two nested `case`\\n -- expressions, both with non-exhaustive patterns.\\n -> do\\n\\n (old, new) <- handleMaybeM (PluginInternalError \\"Unable to makeEditText\\")\\n $ liftIO $ runMaybeT\\n $ makeEditText pm pmAltsConApp range\\n\\n caps <- lift pluginGetClientCapabilities\\n\\n pure $ InL [InR\\n $ CodeAction { _title = \\"Add placeholders for all missing patterns\\"\\n , _kind = Just CodeActionKind_QuickFix\\n , _diagnostics = Nothing -- TODO: I should probably encode here that it addresses the DsNonExhaustivePatterns diag\\n , _isPreferred = Nothing -- TODO: Just True?\\n , _disabled = Nothing\\n , _edit = Just $ diffText caps (verTxtDocId, old) new IncludeDeletions\\n , _command = Nothing\\n , _data_ = Nothing }]\\n (mapMaybe dsMsgToPmAlts -> []) -> error \\"wth?\\"\\n (mapMaybe dsMsgToPmAlts -> [_,_]) -> error \\"Two nested\\"\\n _ -> error \\"Oops, unexpected number of messages!\\"\\n\\n where\\n\\n dsMsgToPmAlts :: DsMessage -> Maybe [PmAltConApp]\\n dsMsgToPmAlts =\\n \\\\case DsNonExhaustivePatterns !(CaseAlt; LamAlt LamCase) _ _ ![ids] !nablas ->\\n trace (\\"length nablas = \\" ++ show (length nablas)) $\\n Just $ nablas >>=\\n (\\\\nabla -> let facts = ts_facts $ nabla_tm_st nabla\\n in case vi_pos <$> lookupUSDFM facts ids of\\n Just [x] -> [x]\\n Just [] -> error \\"Oops 0\\"\\n Just _ -> error \\"Oops 1\\"\\n _ -> error \\"Oops 2\\")\\n DsNonExhaustivePatterns (CaseAlt; LamAlt LamCase) _ _ _ _ -> error \\"Oops 3\\"\\n DsNonExhaustivePatterns _ _ _ ![_] _ -> error \\"Oops 4\\"\\n DsNonExhaustivePatterns _ _ _ _ _ -> error \\"Oops 5\\"\\n _ -> error \\"Oops Nothing\\"\\n\\n_DsMessage :: Fold GhcMessage DsMessage\\n_DsMessage = prism\' GhcDsMessage $ \\\\case\\n GhcDsMessage dsmsg -> Just dsmsg\\n _ -> Nothing\\n\\nmakeEditText :: Monad m => ParsedModule -> MissingPatterns -> Range -> MaybeT m (T.Text, T.Text)\\nmakeEditText pm missingPs range = do\\n\\n let ps = pm_parsed_source pm\\n !old = T.pack $ exactPrint ps\\n !ps\' = everywhere f ps\\n !new = T.pack $ exactPrint ps\'\\n\\n pure (old, new)\\n\\n where\\n f :: forall d. Data d => d -> d\\n f node = case typeOf node `eqTypeRep` typeRep @(HsExpr GhcPs) of\\n Nothing -> node\\n Just HRefl -> case node of\\n HsCase x@(EpAnnHsCase (EpTok caseTok) (EpTok ofTok)) e existingPs\\n | getHasLoc e `inRange` (traceWith ((\\"range = \\" ++) . show) range)\\n -- HsCase x e existingPs\\n -- | (traceWith ((\\"range = \\" ++) . show) range) `inSpan` getHasLoc e\\n -> HsCase x e $ addMissingPatterns (makeMatch <$> missingPs) existingPs\\n _ -> node\\n\\nisOnelined :: LocatedAn ann e -> LocatedAn ann e -> Bool\\nisOnelined = (==) `on` getStartLine\\n\\nisBraced :: EpAnn (AnnList a) -> Bool\\nisBraced (EpAnn _ (AnnList _ (ListBraces (EpTok (EpaSpan _)) _) _ _ _) _) = True\\nisBraced (EpAnn _ (AnnList _ ListNone _ _ _) _) = False\\nisBraced _ = error \\"Ooops\\"\\n\\ngetStartCol :: HasSrcSpan a => a -> Int\\ngetStartCol = srcSpanStartCol . realSrcSpan . getLoc\\n\\ngetStartLine :: HasSrcSpan a => a -> Int\\ngetStartLine = srcSpanStartLine . realSrcSpan . getLoc\\n\\nsetDP :: Int -> Int -> LocatedAn t a -> LocatedAn t a\\nsetDP = (flip setEntryDP .) . deltaPos\\n\\n-- Add semicolon, unless one is already present.\\naddSemiCol :: LocatedAn AnnListItem a -> LocatedAn AnnListItem a\\naddSemiCol (L l@(EpAnn _ ls _) e)\\n | none isSemiCol (lann_trailing ls)\\n = L (addTrailingAnnToA (AddSemiAnn (EpTok d0)) emptyComments l) e\\naddSemiCol l = l\\n\\naddMissingPatterns :: [LMatch GhcPs (LHsExpr GhcPs)] -> MatchGroup GhcPs (LHsExpr GhcPs) -> MatchGroup GhcPs (LHsExpr GhcPs)\\naddMissingPatterns missing mg@(MG { mg_alts = L l [] })\\n = mg { mg_alts = L l (fmt missing) }\\n where\\n fmt = if isBraced l\\n then zipWith3 (.)\\n (replicate (length missing - 1) addSemiCol ++ [id])\\n (repeat $ setDP 1 defaultIndent)\\n else zipWith ($)\\n (setDP 1 defaultIndent:repeat (setDP 1 0))\\n\\naddMissingPatterns missing mg@(MG { mg_alts = L altsLoc@(EpAnn _\\n (al_anchor &&& al_brackets -> (Just (getStartCol . getHasLoc -> foo), -- TODO: find a good name for foo\\n bracks))\\n _)\\n existings })\\n = mg { mg_alts = L altsLoc alts }\\n where\\n alts = let ptrnGrps = groupBy isOnelined existings\\n nGrps = length ptrnGrps\\n nLastGr = ptrnGrps -- length of the last group of \\u22651 patterns written on one line\\n & reverse\\n & take 1\\n & concat\\n & length\\n (indent, addSemiCols) = if isBraced altsLoc\\n then (foo - case bracks of\\n ListBraces (EpTok (getStartCol . getHasLoc -> col)) _ -> col\\n _ -> error \\"this is impossible\\"\\n ,zipWith ($) (replicate (nGrps - 1) id\\n ++ replicate (length missingGrps) (mapLast addSemiCol)\\n ++ [id]))\\n else (0, id)\\n missingGrps = chunksOf nLastGr missing\\n <&> \\\\case [] -> error \\"Impossible\\"\\n (m:ms) -> zipWith ($) (replicate (length ms) addSemiCol ++ [id])\\n (setDP 1 indent m:map (setDP 0 1) ms)\\n\\n in concat $ addSemiCols $ ptrnGrps ++ missingGrps\\n\\naddMissingPatterns _ _ = error \\"This should not be possible\\"\\n\\nmapLast :: (a -> a) -> [a] -> [a]\\nmapLast f [a] = [f a]\\nmapLast f (a:as) = a:mapLast f as\\nmapLast _ [] = error \\"nope\\"\\n\\nisSemiCol :: TrailingAnn -> Bool\\nisSemiCol (AddSemiAnn _) = True\\nisSemiCol _ = False\\n\\nmakeMatch :: PmAltConApp -> LMatch GhcPs (LHsExpr GhcPs)\\nmakeMatch PACA{ paca_con = PmAltConLike (RealDataCon ctor), .. }\\n = L noSrcSpanA\\n $ Match { m_ext = NoExtField\\n , m_ctxt = CaseAlt\\n , m_pats = L noSrcSpanA\\n $ [L noSrcSpanA ConPat { pat_con_ext = (Nothing, Nothing)\\n , pat_con = L noSrcSpanA $ nameRdrName $ getName ctor\\n , pat_args = PrefixCon $ map (const $ L noAnnSrcSpanDP1 $ WildPat NoExtField) paca_ids\\n }]\\n , m_grhss = GRHSs emptyComments\\n -- TODO: remember to respect unicode arrow of preceeding cases or the -XUnicodeSyntax (https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/unicode_syntax.html#extension-UnicodeSyntax)\\n -- TODO: check whether ga_sep default choice is really not printing anything.\\n (singleton $ L noSrcSpanA $ GRHS (EpAnn noSrcSpanA\\n (GrhsAnn{ ga_vbar = Nothing\\n , ga_sep = Right (EpUniTok d1 NormalSyntax) })\\n emptyComments) []\\n $ L noSrcSpanA $ HsHole $ HoleVar $ L noAnnSrcSpanDP1\\n $ unnamedHoleRdrName)\\n (EmptyLocalBinds NoExtField)\\n }\\nmakeMatch _ = error \\"boom\\"\\n\\ntype MissingPatterns = [PmAltConApp]\\n\\ndefaultIndent :: Int\\ndefaultIndent = 2\\n\\nnone :: Foldable t => (a -> Bool) -> t a -> Bool\\nnone = all . (not <$>)\\n"}],"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":5}}}'
127.0.0.1 - - [21/Jul/2026 12:37:55] "POST /event_notification HTTP/1.1" 200 873
2026-07-21 12:37:56,054 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-top-binds"]},"message":"Defined but not used: \xe2\x80\x98inSpan\xe2\x80\x99","range":{"end":{"character":6,"line":87},"start":{"character":0,"line":87}},"severity":2,"source":"typecheck","tags":[1]},{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \xe2\x80\x98caseTok\xe2\x80\x99","range":{"end":{"character":54,"line":197},"start":{"character":47,"line":197}},"severity":2,"source":"typecheck","tags":[1]},{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \xe2\x80\x98ofTok\xe2\x80\x99","range":{"end":{"character":68,"line":197},"start":{"character":63,"line":197}},"severity":2,"source":"typecheck","tags":[1]}],"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":5}}'
127.0.0.1 - - [21/Jul/2026 12:37:56] "POST /receive_messages HTTP/1.1" 200 2763
2026-07-21 12:37:59,968 - INFO - Found executeCommandProvider support for command ExecuteCommand in haskell-language-server
2026-07-21 12:37:59,968 - INFO - Found codeActionProvider support for command FixIt in haskell-language-server
2026-07-21 12:37:59,968 - INFO - Found definitionProvider support for command GoToDefinition in haskell-language-server
2026-07-21 12:37:59,968 - INFO - Found definitionProvider support for command GoToDeclaration in haskell-language-server
2026-07-21 12:37:59,969 - INFO - Found definitionProvider support for command GoTo in haskell-language-server
2026-07-21 12:37:59,969 - INFO - Found typeDefinitionProvider support for command GoToType in haskell-language-server
2026-07-21 12:37:59,969 - INFO - Found implementationProvider support for command GoToImplementation in haskell-language-server
2026-07-21 12:37:59,969 - INFO - Found referencesProvider support for command GoToReferences in haskell-language-server
2026-07-21 12:37:59,969 - INFO - Found renameProvider support for command RefactorRename in haskell-language-server
2026-07-21 12:37:59,969 - INFO - Found documentFormattingProvider support for command Format in haskell-language-server
2026-07-21 12:37:59,969 - INFO - Found workspaceSymbolProvider support for command GoToSymbol in haskell-language-server
2026-07-21 12:37:59,969 - INFO - Found documentSymbolProvider support for command GoToDocumentOutline in haskell-language-server
2026-07-21 12:37:59,969 - INFO - Always supporting StopServer for haskell-language-server
2026-07-21 12:37:59,969 - INFO - Always supporting RestartServer for haskell-language-server
2026-07-21 12:37:59,969 - INFO - Always supporting GoToCallees for haskell-language-server
2026-07-21 12:37:59,969 - INFO - Always supporting GoToCallers for haskell-language-server
2026-07-21 12:37:59,970 - INFO - Always supporting CallHierarchy for haskell-language-server
2026-07-21 12:37:59,970 - INFO - Always supporting ResolveCallHierarchyItem for haskell-language-server
2026-07-21 12:37:59,970 - INFO - Always supporting GetHover for haskell-language-server
2026-07-21 12:37:59,970 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action None
2026-07-21 12:37:59,971 - DEBUG - TX: Sending message: b'Content-Length: 627\r\n\r\n{"id":7,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \\u2018caseTok\\u2019","range":{"end":{"character":54,"line":197},"start":{"character":47,"line":197}},"severity":2,"source":"typecheck","tags":[1]}]},"range":{"end":{"character":48,"line":197},"start":{"character":47,"line":197}},"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs"}}}'
2026-07-21 12:38:00,015 - DEBUG - RX: Received message: b'{"id":7,"jsonrpc":"2.0","result":[{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}]}'
2026-07-21 12:38:00,015 - DEBUG - TX: Sending message: b'Content-Length: 405\r\n\r\n{"id":8,"jsonrpc":"2.0","method":"codeAction/resolve","params":{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}}'
2026-07-21 12:38:00,015 - DEBUG - RX: Received message: b'{"id":8,"jsonrpc":"2.0","result":{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}}'
127.0.0.1 - - [21/Jul/2026 12:38:00] "POST /run_completer_command HTTP/1.1" 200 623
2026-07-21 12:38:00,016 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:00,016 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:00,016 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:00,017 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:00,017 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:00,017 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:00,026 - DEBUG - Event name: FileReadyToParse
2026-07-21 12:38:00,026 - INFO - Adding buffer identifiers for file: /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs
2026-07-21 12:38:00,027 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action Change
2026-07-21 12:38:00,027 - DEBUG - TX: Sending notification: b'Content-Length: 15872\r\n\r\n{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"text":"{-# LANGUAGE CPP #-}\\n{-# LANGUAGE DataKinds #-}\\n{-# LANGUAGE DuplicateRecordFields #-}\\n{-# LANGUAGE LambdaCase #-}\\n{-# LANGUAGE MultiWayIf #-}\\n{-# LANGUAGE OverloadedStrings #-}\\n{-# LANGUAGE PatternSynonyms #-}\\n{-# LANGUAGE ViewPatterns #-}\\n{-# LANGUAGE RecordWildCards #-}\\n{-# LANGUAGE ImpredicativeTypes #-}\\n{-# LANGUAGE TypeFamilies #-}\\n{-# LANGUAGE OrPatterns #-}\\n{-# OPTIONS_GHC -Wno-unused-matches #-}\\n\\nmodule Ide.Plugin.CaseSplit\\n ( descriptor\\n , Log\\n ) where\\n\\nimport qualified Data.Text as T\\nimport Development.IDE.Core.PluginUtils (runActionE, useE, activeDiagnosticsInRange)\\nimport Ide.Plugin.Error\\n ( PluginError(PluginInternalError),\\n getNormalizedFilePathE,\\n handleMaybeM )\\nimport Ide.Types\\n ( defaultPluginDescriptor,\\n mkPluginHandler,\\n pluginGetClientCapabilities,\\n DynFlagsModifications(dynFlagsModifyGlobal),\\n PluginDescriptor(pluginModifyDynflags, pluginHandlers,\\n pluginPriority),\\n PluginId,\\n PluginMethodHandler )\\nimport qualified Language.LSP.Protocol.Message as LSP\\nimport Language.LSP.Protocol.Message (Method(Method_TextDocumentCodeAction))\\nimport qualified Development.IDE.Core.Shake as Shake\\nimport Language.LSP.Protocol.Types\\n ( Range,\\n CodeActionParams(_range, CodeActionParams, _textDocument),\\n CodeActionKind(CodeActionKind_QuickFix),\\n type (|?)(InR, InL),\\n CodeAction(_data_, CodeAction, _title, _kind, _diagnostics,\\n _isPreferred, _disabled, _edit, _command),\\n isSubrangeOf )\\nimport Development.IDE.Types.Diagnostics (_SomeStructuredMessage)\\nimport Development.IDE.GHC.Compat (GhcMessage (GhcDsMessage), HsMatchContext (CaseAlt), ConLike (RealDataCon), NamedThing (getName), HoleKind (HoleVar))\\nimport Development.IDE.GHC.Compat.Error (DsMessage(DsNonExhaustivePatterns), msgEnvelopeErrorL)\\nimport Data.Maybe (mapMaybe)\\nimport Control.Lens (Fold, prism\', (^?), (<&>), (^.))\\nimport GHC.HsToCore.Pmc.Solver.Types (PmAltConApp(..), PmAltCon(..), TmState (ts_facts), Nabla (nabla_tm_st), VarInfo (vi_pos))\\nimport GHC.Types.Unique.SDFM ( lookupUSDFM )\\nimport GHC.Types.Name.Reader (nameRdrName)\\nimport GHC (DynFlags(maxUncoveredPatterns), ParsedModule (pm_parsed_source), HasLoc (getHasLoc), realSrcSpan, EpToken (EpTok), EpaLocation\' (EpaSpan), AnnList (AnnList), AnnListBrackets (ListBraces, ListNone), LMatch)\\nimport Development.IDE.GHC.Compat (getLoc)\\nimport Control.Monad.IO.Class ( MonadIO(liftIO) )\\nimport Control.Monad.Trans.Maybe ( MaybeT(runMaybeT) )\\nimport Development.IDE.GHC.Compat.ExactPrint\\n ( exactPrint, d0, d1, noAnnSrcSpanDP1, setEntryDP )\\nimport Data.Data (Data())\\nimport Data.Generics.Schemes (everywhere)\\nimport Debug.Trace ( trace, traceWith )\\nimport Type.Reflection (eqTypeRep,\\n type (:~~:) (HRefl),\\n typeRep, typeOf)\\nimport GHC.Hs (GhcPs, deltaPos, unnamedHoleRdrName)\\nimport GHC.Types.SrcLoc (SrcSpan, GenLocated (L))\\nimport Language.Haskell.Syntax.Expr (HsExpr (HsCase, HsHole), Match (..), GRHSs (GRHSs), GRHS (GRHS))\\nimport Control.Monad.Trans (lift)\\nimport Ide.PluginUtils (diffText, WithDeletions (IncludeDeletions))\\nimport Development.IDE.Core.FileStore (getVersionedTextDoc)\\nimport qualified Language.LSP.Protocol.Lens as L\\nimport Language.Haskell.Syntax (MatchGroup (MG, mg_alts), LHsExpr, NoExtField (NoExtField), Pat (..), HsConDetails (PrefixCon), HsLocalBindsLR (EmptyLocalBinds))\\nimport GHC (EpAnn(EpAnn))\\nimport GHC.Parser.Annotation (noSrcSpanA, EpUniToken (EpUniTok), IsUnicodeSyntax (NormalSyntax), emptyComments, TrailingAnn (AddSemiAnn), addTrailingAnnToA, AnnList (al_brackets, al_anchor))\\nimport Data.List.NonEmpty.Extra (singleton)\\nimport Development.IDE.GHC.Compat.Core (GrhsAnn(..), HasSrcSpan, srcSpanStartLine, HsMatchContext (LamAlt), HsLamVariant (LamCase), LocatedAn, lann_trailing, AnnListItem, srcSpanStartCol, EpAnnHsCase (EpAnnHsCase))\\nimport Data.List.Extra (chunksOf)\\nimport Data.List (groupBy)\\nimport Data.Function (on, (&))\\nimport Control.Arrow ((&&&))\\nimport Development.IDE (Pretty (pretty), Recorder, WithPriority, IdeState (shakeExtras), FileDiagnostic (fdStructuredMessage), runAction, GetParsedModule (GetParsedModule), srcSpanToRange)\\nimport Ide.Logger ((<+>))\\n\\ninRange :: SrcSpan -> Range -> Bool\\ninRange s range = maybe False (`isSubrangeOf` range) (srcSpanToRange s)\\n\\ninSpan :: Range -> SrcSpan -> Bool\\ninSpan range s = maybe False (range `isSubrangeOf`) (srcSpanToRange s)\\n\\ndata Log\\n = LogShake Shake.Log\\n | LogWAEResponseError (LSP.TResponseError LSP.Method_WorkspaceApplyEdit)\\n | forall a. (Pretty a) => LogResolve a\\n\\ninstance Pretty Log where\\n pretty = \\\\case\\n LogShake logMsg -> pretty logMsg\\n LogWAEResponseError rspErr -> \\"RequestWorkspaceApplyEdit Failed with \\" <+> pretty rspErr\\n LogResolve msg -> pretty msg\\n\\ndescriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState\\ndescriptor _ plId = (defaultPluginDescriptor plId \\"Provides a code action to split case\\")\\n { pluginHandlers = mkPluginHandler LSP.SMethod_TextDocumentCodeAction suggestCaseSplitProvider\\n , pluginPriority = 1\\n , pluginModifyDynflags = mempty { dynFlagsModifyGlobal = \\\\dynFlags -> dynFlags { maxUncoveredPatterns = 30 } }\\n }\\n\\nsuggestCaseSplitProvider :: PluginMethodHandler IdeState \'Method_TextDocumentCodeAction\\nsuggestCaseSplitProvider\\n state\\n _\\n CodeActionParams{ _textDocument\\n , _range = range -- XXX: In the interactive usage, this is\\n -- the first _character of the token (?) the\\n -- cursor is on. In the test (at least with\\n -- the code as it is right now) it covers\\n -- the whole `case foo of` (until the char\\n -- past the f).\\n }\\n = do\\n nfp <- getNormalizedFilePathE $ _textDocument ^. L.uri\\n\\n verTxtDocId <- liftIO $ runAction \\"dfdaias\\" state $ getVersionedTextDoc _textDocument\\n\\n pm <- runActionE \\"not important, as long as unique\\" state\\n $ useE GetParsedModule nfp\\n\\n fdiags :: [FileDiagnostic] <- activeDiagnosticsInRange (shakeExtras state) nfp range\\n <&> \\\\case Nothing -> error \\"Oops, no diagnostics!\\"\\n Just fileDiags -> fileDiags\\n\\n case mapMaybe (\\\\d -> fdStructuredMessage d ^? _SomeStructuredMessage\\n . msgEnvelopeErrorL\\n . _DsMessage) fdiags of\\n (mapMaybe dsMsgToPmAlts -> [pmAltsConApp])\\n -- TODO: I need to filter for the diagnostic I want.\\n -- It might important to check the case of two nested `case`\\n -- expressions, both with non-exhaustive patterns.\\n -> do\\n\\n (old, new) <- handleMaybeM (PluginInternalError \\"Unable to makeEditText\\")\\n $ liftIO $ runMaybeT\\n $ makeEditText pm pmAltsConApp range\\n\\n caps <- lift pluginGetClientCapabilities\\n\\n pure $ InL [InR\\n $ CodeAction { _title = \\"Add placeholders for all missing patterns\\"\\n , _kind = Just CodeActionKind_QuickFix\\n , _diagnostics = Nothing -- TODO: I should probably encode here that it addresses the DsNonExhaustivePatterns diag\\n , _isPreferred = Nothing -- TODO: Just True?\\n , _disabled = Nothing\\n , _edit = Just $ diffText caps (verTxtDocId, old) new IncludeDeletions\\n , _command = Nothing\\n , _data_ = Nothing }]\\n (mapMaybe dsMsgToPmAlts -> []) -> error \\"wth?\\"\\n (mapMaybe dsMsgToPmAlts -> [_,_]) -> error \\"Two nested\\"\\n _ -> error \\"Oops, unexpected number of messages!\\"\\n\\n where\\n\\n dsMsgToPmAlts :: DsMessage -> Maybe [PmAltConApp]\\n dsMsgToPmAlts =\\n \\\\case DsNonExhaustivePatterns !(CaseAlt; LamAlt LamCase) _ _ ![ids] !nablas ->\\n trace (\\"length nablas = \\" ++ show (length nablas)) $\\n Just $ nablas >>=\\n (\\\\nabla -> let facts = ts_facts $ nabla_tm_st nabla\\n in case vi_pos <$> lookupUSDFM facts ids of\\n Just [x] -> [x]\\n Just [] -> error \\"Oops 0\\"\\n Just _ -> error \\"Oops 1\\"\\n _ -> error \\"Oops 2\\")\\n DsNonExhaustivePatterns (CaseAlt; LamAlt LamCase) _ _ _ _ -> error \\"Oops 3\\"\\n DsNonExhaustivePatterns _ _ _ ![_] _ -> error \\"Oops 4\\"\\n DsNonExhaustivePatterns _ _ _ _ _ -> error \\"Oops 5\\"\\n _ -> error \\"Oops Nothing\\"\\n\\n_DsMessage :: Fold GhcMessage DsMessage\\n_DsMessage = prism\' GhcDsMessage $ \\\\case\\n GhcDsMessage dsmsg -> Just dsmsg\\n _ -> Nothing\\n\\nmakeEditText :: Monad m => ParsedModule -> MissingPatterns -> Range -> MaybeT m (T.Text, T.Text)\\nmakeEditText pm missingPs range = do\\n\\n let ps = pm_parsed_source pm\\n !old = T.pack $ exactPrint ps\\n !ps\' = everywhere f ps\\n !new = T.pack $ exactPrint ps\'\\n\\n pure (old, new)\\n\\n where\\n f :: forall d. Data d => d -> d\\n f node = case typeOf node `eqTypeRep` typeRep @(HsExpr GhcPs) of\\n Nothing -> node\\n Just HRefl -> case node of\\n HsCase x@(EpAnnHsCase (EpTok caseTok) (EpTok ofTok)) e existingPs\\n | getHasLoc e `inRange` (traceWith ((\\"range = \\" ++) . show) range)\\n -- HsCase x e existingPs\\n -- | (traceWith ((\\"range = \\" ++) . show) range) `inSpan` getHasLoc e\\n -> HsCase x e $ addMissingPatterns (makeMatch <$> missingPs) existingPs\\n _ -> node\\n\\nisOnelined :: LocatedAn ann e -> LocatedAn ann e -> Bool\\nisOnelined = (==) `on` getStartLine\\n\\nisBraced :: EpAnn (AnnList a) -> Bool\\nisBraced (EpAnn _ (AnnList _ (ListBraces (EpTok (EpaSpan _)) _) _ _ _) _) = True\\nisBraced (EpAnn _ (AnnList _ ListNone _ _ _) _) = False\\nisBraced _ = error \\"Ooops\\"\\n\\ngetStartCol :: HasSrcSpan a => a -> Int\\ngetStartCol = srcSpanStartCol . realSrcSpan . getLoc\\n\\ngetStartLine :: HasSrcSpan a => a -> Int\\ngetStartLine = srcSpanStartLine . realSrcSpan . getLoc\\n\\nsetDP :: Int -> Int -> LocatedAn t a -> LocatedAn t a\\nsetDP = (flip setEntryDP .) . deltaPos\\n\\n-- Add semicolon, unless one is already present.\\naddSemiCol :: LocatedAn AnnListItem a -> LocatedAn AnnListItem a\\naddSemiCol (L l@(EpAnn _ ls _) e)\\n | none isSemiCol (lann_trailing ls)\\n = L (addTrailingAnnToA (AddSemiAnn (EpTok d0)) emptyComments l) e\\naddSemiCol l = l\\n\\naddMissingPatterns :: [LMatch GhcPs (LHsExpr GhcPs)] -> MatchGroup GhcPs (LHsExpr GhcPs) -> MatchGroup GhcPs (LHsExpr GhcPs)\\naddMissingPatterns missing mg@(MG { mg_alts = L l [] })\\n = mg { mg_alts = L l (fmt missing) }\\n where\\n fmt = if isBraced l\\n then zipWith3 (.)\\n (replicate (length missing - 1) addSemiCol ++ [id])\\n (repeat $ setDP 1 defaultIndent)\\n else zipWith ($)\\n (setDP 1 defaultIndent:repeat (setDP 1 0))\\n\\naddMissingPatterns missing mg@(MG { mg_alts = L altsLoc@(EpAnn _\\n (al_anchor &&& al_brackets -> (Just (getStartCol . getHasLoc -> foo), -- TODO: find a good name for foo\\n bracks))\\n _)\\n existings })\\n = mg { mg_alts = L altsLoc alts }\\n where\\n alts = let ptrnGrps = groupBy isOnelined existings\\n nGrps = length ptrnGrps\\n nLastGr = ptrnGrps -- length of the last group of \\u22651 patterns written on one line\\n & reverse\\n & take 1\\n & concat\\n & length\\n (indent, addSemiCols) = if isBraced altsLoc\\n then (foo - case bracks of\\n ListBraces (EpTok (getStartCol . getHasLoc -> col)) _ -> col\\n _ -> error \\"this is impossible\\"\\n ,zipWith ($) (replicate (nGrps - 1) id\\n ++ replicate (length missingGrps) (mapLast addSemiCol)\\n ++ [id]))\\n else (0, id)\\n missingGrps = chunksOf nLastGr missing\\n <&> \\\\case [] -> error \\"Impossible\\"\\n (m:ms) -> zipWith ($) (replicate (length ms) addSemiCol ++ [id])\\n (setDP 1 indent m:map (setDP 0 1) ms)\\n\\n in concat $ addSemiCols $ ptrnGrps ++ missingGrps\\n\\naddMissingPatterns _ _ = error \\"This should not be possible\\"\\n\\nmapLast :: (a -> a) -> [a] -> [a]\\nmapLast f [a] = [f a]\\nmapLast f (a:as) = a:mapLast f as\\nmapLast _ [] = error \\"nope\\"\\n\\nisSemiCol :: TrailingAnn -> Bool\\nisSemiCol (AddSemiAnn _) = True\\nisSemiCol _ = False\\n\\nmakeMatch :: PmAltConApp -> LMatch GhcPs (LHsExpr GhcPs)\\nmakeMatch PACA{ paca_con = PmAltConLike (RealDataCon ctor), .. }\\n = L noSrcSpanA\\n $ Match { m_ext = NoExtField\\n , m_ctxt = CaseAlt\\n , m_pats = L noSrcSpanA\\n $ [L noSrcSpanA ConPat { pat_con_ext = (Nothing, Nothing)\\n , pat_con = L noSrcSpanA $ nameRdrName $ getName ctor\\n , pat_args = PrefixCon $ map (const $ L noAnnSrcSpanDP1 $ WildPat NoExtField) paca_ids\\n }]\\n , m_grhss = GRHSs emptyComments\\n -- TODO: remember to respect unicode arrow of preceeding cases or the -XUnicodeSyntax (https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/unicode_syntax.html#extension-UnicodeSyntax)\\n -- TODO: check whether ga_sep default choice is really not printing anything.\\n (singleton $ L noSrcSpanA $ GRHS (EpAnn noSrcSpanA\\n (GrhsAnn{ ga_vbar = Nothing\\n , ga_sep = Right (EpUniTok d1 NormalSyntax) })\\n emptyComments) []\\n $ L noSrcSpanA $ HsHole $ HoleVar $ L noAnnSrcSpanDP1\\n $ unnamedHoleRdrName)\\n (EmptyLocalBinds NoExtField)\\n }\\nmakeMatch _ = error \\"boom\\"\\n\\ntype MissingPatterns = [PmAltConApp]\\n\\ndefaultIndent :: Int\\ndefaultIndent = 2\\n\\nnone :: Foldable t => (a -> Bool) -> t a -> Bool\\nnone = all . (not <$>)\\n"}],"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":6}}}'
127.0.0.1 - - [21/Jul/2026 12:38:00] "POST /event_notification HTTP/1.1" 200 2637
2026-07-21 12:38:00,102 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-top-binds"]},"message":"Defined but not used: \xe2\x80\x98inSpan\xe2\x80\x99","range":{"end":{"character":6,"line":88},"start":{"character":0,"line":88}},"severity":2,"source":"typecheck","tags":[1]}],"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":6}}'
127.0.0.1 - - [21/Jul/2026 12:38:00] "POST /receive_messages HTTP/1.1" 200 999
2026-07-21 12:38:01,041 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,042 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:38:01,042 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,042 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,043 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,043 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:38:01,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,045 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:38:01,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,047 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,048 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,048 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,048 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,069 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:01,070 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:01,071 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:38:01,075 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:01,076 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:01,076 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:38:01,076 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:38:01,077 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,077 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:38:01,077 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:38:01,077 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:38:01,077 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:38:01,077 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:38:01,078 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,078 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:38:01,078 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:38:01,078 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:38:01,078 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:01,078 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:01,079 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:38:01,079 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,079 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:38:01,079 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:38:01,079 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:38:01,079 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:38:01,079 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:38:01,079 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,080 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:38:01,080 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:38:01,080 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:38:01,080 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:01,080 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:01,080 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:01,081 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:01,081 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:01,082 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:01,082 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:38:01,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:38:01,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:38:01,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:38:01,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:38:01,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:38:01,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:38:01,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:01,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:38:01,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:38:01,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:38:01,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:01,084 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:01,418 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:01,419 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:01,420 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:01,431 - DEBUG - Event name: FileReadyToParse
2026-07-21 12:38:01,431 - INFO - Adding buffer identifiers for file: /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs
2026-07-21 12:38:01,435 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action Change
2026-07-21 12:38:01,436 - DEBUG - TX: Sending notification: b'Content-Length: 15831\r\n\r\n{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"text":"{-# LANGUAGE CPP #-}\\n{-# LANGUAGE DataKinds #-}\\n{-# LANGUAGE DuplicateRecordFields #-}\\n{-# LANGUAGE LambdaCase #-}\\n{-# LANGUAGE MultiWayIf #-}\\n{-# LANGUAGE OverloadedStrings #-}\\n{-# LANGUAGE PatternSynonyms #-}\\n{-# LANGUAGE ViewPatterns #-}\\n{-# LANGUAGE RecordWildCards #-}\\n{-# LANGUAGE ImpredicativeTypes #-}\\n{-# LANGUAGE TypeFamilies #-}\\n{-# LANGUAGE OrPatterns #-}\\n\\nmodule Ide.Plugin.CaseSplit\\n ( descriptor\\n , Log\\n ) where\\n\\nimport qualified Data.Text as T\\nimport Development.IDE.Core.PluginUtils (runActionE, useE, activeDiagnosticsInRange)\\nimport Ide.Plugin.Error\\n ( PluginError(PluginInternalError),\\n getNormalizedFilePathE,\\n handleMaybeM )\\nimport Ide.Types\\n ( defaultPluginDescriptor,\\n mkPluginHandler,\\n pluginGetClientCapabilities,\\n DynFlagsModifications(dynFlagsModifyGlobal),\\n PluginDescriptor(pluginModifyDynflags, pluginHandlers,\\n pluginPriority),\\n PluginId,\\n PluginMethodHandler )\\nimport qualified Language.LSP.Protocol.Message as LSP\\nimport Language.LSP.Protocol.Message (Method(Method_TextDocumentCodeAction))\\nimport qualified Development.IDE.Core.Shake as Shake\\nimport Language.LSP.Protocol.Types\\n ( Range,\\n CodeActionParams(_range, CodeActionParams, _textDocument),\\n CodeActionKind(CodeActionKind_QuickFix),\\n type (|?)(InR, InL),\\n CodeAction(_data_, CodeAction, _title, _kind, _diagnostics,\\n _isPreferred, _disabled, _edit, _command),\\n isSubrangeOf )\\nimport Development.IDE.Types.Diagnostics (_SomeStructuredMessage)\\nimport Development.IDE.GHC.Compat (GhcMessage (GhcDsMessage), HsMatchContext (CaseAlt), ConLike (RealDataCon), NamedThing (getName), HoleKind (HoleVar))\\nimport Development.IDE.GHC.Compat.Error (DsMessage(DsNonExhaustivePatterns), msgEnvelopeErrorL)\\nimport Data.Maybe (mapMaybe)\\nimport Control.Lens (Fold, prism\', (^?), (<&>), (^.))\\nimport GHC.HsToCore.Pmc.Solver.Types (PmAltConApp(..), PmAltCon(..), TmState (ts_facts), Nabla (nabla_tm_st), VarInfo (vi_pos))\\nimport GHC.Types.Unique.SDFM ( lookupUSDFM )\\nimport GHC.Types.Name.Reader (nameRdrName)\\nimport GHC (DynFlags(maxUncoveredPatterns), ParsedModule (pm_parsed_source), HasLoc (getHasLoc), realSrcSpan, EpToken (EpTok), EpaLocation\' (EpaSpan), AnnList (AnnList), AnnListBrackets (ListBraces, ListNone), LMatch)\\nimport Development.IDE.GHC.Compat (getLoc)\\nimport Control.Monad.IO.Class ( MonadIO(liftIO) )\\nimport Control.Monad.Trans.Maybe ( MaybeT(runMaybeT) )\\nimport Development.IDE.GHC.Compat.ExactPrint\\n ( exactPrint, d0, d1, noAnnSrcSpanDP1, setEntryDP )\\nimport Data.Data (Data())\\nimport Data.Generics.Schemes (everywhere)\\nimport Debug.Trace ( trace, traceWith )\\nimport Type.Reflection (eqTypeRep,\\n type (:~~:) (HRefl),\\n typeRep, typeOf)\\nimport GHC.Hs (GhcPs, deltaPos, unnamedHoleRdrName)\\nimport GHC.Types.SrcLoc (SrcSpan, GenLocated (L))\\nimport Language.Haskell.Syntax.Expr (HsExpr (HsCase, HsHole), Match (..), GRHSs (GRHSs), GRHS (GRHS))\\nimport Control.Monad.Trans (lift)\\nimport Ide.PluginUtils (diffText, WithDeletions (IncludeDeletions))\\nimport Development.IDE.Core.FileStore (getVersionedTextDoc)\\nimport qualified Language.LSP.Protocol.Lens as L\\nimport Language.Haskell.Syntax (MatchGroup (MG, mg_alts), LHsExpr, NoExtField (NoExtField), Pat (..), HsConDetails (PrefixCon), HsLocalBindsLR (EmptyLocalBinds))\\nimport GHC (EpAnn(EpAnn))\\nimport GHC.Parser.Annotation (noSrcSpanA, EpUniToken (EpUniTok), IsUnicodeSyntax (NormalSyntax), emptyComments, TrailingAnn (AddSemiAnn), addTrailingAnnToA, AnnList (al_brackets, al_anchor))\\nimport Data.List.NonEmpty.Extra (singleton)\\nimport Development.IDE.GHC.Compat.Core (GrhsAnn(..), HasSrcSpan, srcSpanStartLine, HsMatchContext (LamAlt), HsLamVariant (LamCase), LocatedAn, lann_trailing, AnnListItem, srcSpanStartCol, EpAnnHsCase (EpAnnHsCase))\\nimport Data.List.Extra (chunksOf)\\nimport Data.List (groupBy)\\nimport Data.Function (on, (&))\\nimport Control.Arrow ((&&&))\\nimport Development.IDE (Pretty (pretty), Recorder, WithPriority, IdeState (shakeExtras), FileDiagnostic (fdStructuredMessage), runAction, GetParsedModule (GetParsedModule), srcSpanToRange)\\nimport Ide.Logger ((<+>))\\n\\ninRange :: SrcSpan -> Range -> Bool\\ninRange s range = maybe False (`isSubrangeOf` range) (srcSpanToRange s)\\n\\ninSpan :: Range -> SrcSpan -> Bool\\ninSpan range s = maybe False (range `isSubrangeOf`) (srcSpanToRange s)\\n\\ndata Log\\n = LogShake Shake.Log\\n | LogWAEResponseError (LSP.TResponseError LSP.Method_WorkspaceApplyEdit)\\n | forall a. (Pretty a) => LogResolve a\\n\\ninstance Pretty Log where\\n pretty = \\\\case\\n LogShake logMsg -> pretty logMsg\\n LogWAEResponseError rspErr -> \\"RequestWorkspaceApplyEdit Failed with \\" <+> pretty rspErr\\n LogResolve msg -> pretty msg\\n\\ndescriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState\\ndescriptor _ plId = (defaultPluginDescriptor plId \\"Provides a code action to split case\\")\\n { pluginHandlers = mkPluginHandler LSP.SMethod_TextDocumentCodeAction suggestCaseSplitProvider\\n , pluginPriority = 1\\n , pluginModifyDynflags = mempty { dynFlagsModifyGlobal = \\\\dynFlags -> dynFlags { maxUncoveredPatterns = 30 } }\\n }\\n\\nsuggestCaseSplitProvider :: PluginMethodHandler IdeState \'Method_TextDocumentCodeAction\\nsuggestCaseSplitProvider\\n state\\n _\\n CodeActionParams{ _textDocument\\n , _range = range -- XXX: In the interactive usage, this is\\n -- the first _character of the token (?) the\\n -- cursor is on. In the test (at least with\\n -- the code as it is right now) it covers\\n -- the whole `case foo of` (until the char\\n -- past the f).\\n }\\n = do\\n nfp <- getNormalizedFilePathE $ _textDocument ^. L.uri\\n\\n verTxtDocId <- liftIO $ runAction \\"dfdaias\\" state $ getVersionedTextDoc _textDocument\\n\\n pm <- runActionE \\"not important, as long as unique\\" state\\n $ useE GetParsedModule nfp\\n\\n fdiags :: [FileDiagnostic] <- activeDiagnosticsInRange (shakeExtras state) nfp range\\n <&> \\\\case Nothing -> error \\"Oops, no diagnostics!\\"\\n Just fileDiags -> fileDiags\\n\\n case mapMaybe (\\\\d -> fdStructuredMessage d ^? _SomeStructuredMessage\\n . msgEnvelopeErrorL\\n . _DsMessage) fdiags of\\n (mapMaybe dsMsgToPmAlts -> [pmAltsConApp])\\n -- TODO: I need to filter for the diagnostic I want.\\n -- It might important to check the case of two nested `case`\\n -- expressions, both with non-exhaustive patterns.\\n -> do\\n\\n (old, new) <- handleMaybeM (PluginInternalError \\"Unable to makeEditText\\")\\n $ liftIO $ runMaybeT\\n $ makeEditText pm pmAltsConApp range\\n\\n caps <- lift pluginGetClientCapabilities\\n\\n pure $ InL [InR\\n $ CodeAction { _title = \\"Add placeholders for all missing patterns\\"\\n , _kind = Just CodeActionKind_QuickFix\\n , _diagnostics = Nothing -- TODO: I should probably encode here that it addresses the DsNonExhaustivePatterns diag\\n , _isPreferred = Nothing -- TODO: Just True?\\n , _disabled = Nothing\\n , _edit = Just $ diffText caps (verTxtDocId, old) new IncludeDeletions\\n , _command = Nothing\\n , _data_ = Nothing }]\\n (mapMaybe dsMsgToPmAlts -> []) -> error \\"wth?\\"\\n (mapMaybe dsMsgToPmAlts -> [_,_]) -> error \\"Two nested\\"\\n _ -> error \\"Oops, unexpected number of messages!\\"\\n\\n where\\n\\n dsMsgToPmAlts :: DsMessage -> Maybe [PmAltConApp]\\n dsMsgToPmAlts =\\n \\\\case DsNonExhaustivePatterns !(CaseAlt; LamAlt LamCase) _ _ ![ids] !nablas ->\\n trace (\\"length nablas = \\" ++ show (length nablas)) $\\n Just $ nablas >>=\\n (\\\\nabla -> let facts = ts_facts $ nabla_tm_st nabla\\n in case vi_pos <$> lookupUSDFM facts ids of\\n Just [x] -> [x]\\n Just [] -> error \\"Oops 0\\"\\n Just _ -> error \\"Oops 1\\"\\n _ -> error \\"Oops 2\\")\\n DsNonExhaustivePatterns (CaseAlt; LamAlt LamCase) _ _ _ _ -> error \\"Oops 3\\"\\n DsNonExhaustivePatterns _ _ _ ![_] _ -> error \\"Oops 4\\"\\n DsNonExhaustivePatterns _ _ _ _ _ -> error \\"Oops 5\\"\\n _ -> error \\"Oops Nothing\\"\\n\\n_DsMessage :: Fold GhcMessage DsMessage\\n_DsMessage = prism\' GhcDsMessage $ \\\\case\\n GhcDsMessage dsmsg -> Just dsmsg\\n _ -> Nothing\\n\\nmakeEditText :: Monad m => ParsedModule -> MissingPatterns -> Range -> MaybeT m (T.Text, T.Text)\\nmakeEditText pm missingPs range = do\\n\\n let ps = pm_parsed_source pm\\n !old = T.pack $ exactPrint ps\\n !ps\' = everywhere f ps\\n !new = T.pack $ exactPrint ps\'\\n\\n pure (old, new)\\n\\n where\\n f :: forall d. Data d => d -> d\\n f node = case typeOf node `eqTypeRep` typeRep @(HsExpr GhcPs) of\\n Nothing -> node\\n Just HRefl -> case node of\\n HsCase x@(EpAnnHsCase (EpTok caseTok) (EpTok ofTok)) e existingPs\\n | getHasLoc e `inRange` (traceWith ((\\"range = \\" ++) . show) range)\\n -- HsCase x e existingPs\\n -- | (traceWith ((\\"range = \\" ++) . show) range) `inSpan` getHasLoc e\\n -> HsCase x e $ addMissingPatterns (makeMatch <$> missingPs) existingPs\\n _ -> node\\n\\nisOnelined :: LocatedAn ann e -> LocatedAn ann e -> Bool\\nisOnelined = (==) `on` getStartLine\\n\\nisBraced :: EpAnn (AnnList a) -> Bool\\nisBraced (EpAnn _ (AnnList _ (ListBraces (EpTok (EpaSpan _)) _) _ _ _) _) = True\\nisBraced (EpAnn _ (AnnList _ ListNone _ _ _) _) = False\\nisBraced _ = error \\"Ooops\\"\\n\\ngetStartCol :: HasSrcSpan a => a -> Int\\ngetStartCol = srcSpanStartCol . realSrcSpan . getLoc\\n\\ngetStartLine :: HasSrcSpan a => a -> Int\\ngetStartLine = srcSpanStartLine . realSrcSpan . getLoc\\n\\nsetDP :: Int -> Int -> LocatedAn t a -> LocatedAn t a\\nsetDP = (flip setEntryDP .) . deltaPos\\n\\n-- Add semicolon, unless one is already present.\\naddSemiCol :: LocatedAn AnnListItem a -> LocatedAn AnnListItem a\\naddSemiCol (L l@(EpAnn _ ls _) e)\\n | none isSemiCol (lann_trailing ls)\\n = L (addTrailingAnnToA (AddSemiAnn (EpTok d0)) emptyComments l) e\\naddSemiCol l = l\\n\\naddMissingPatterns :: [LMatch GhcPs (LHsExpr GhcPs)] -> MatchGroup GhcPs (LHsExpr GhcPs) -> MatchGroup GhcPs (LHsExpr GhcPs)\\naddMissingPatterns missing mg@(MG { mg_alts = L l [] })\\n = mg { mg_alts = L l (fmt missing) }\\n where\\n fmt = if isBraced l\\n then zipWith3 (.)\\n (replicate (length missing - 1) addSemiCol ++ [id])\\n (repeat $ setDP 1 defaultIndent)\\n else zipWith ($)\\n (setDP 1 defaultIndent:repeat (setDP 1 0))\\n\\naddMissingPatterns missing mg@(MG { mg_alts = L altsLoc@(EpAnn _\\n (al_anchor &&& al_brackets -> (Just (getStartCol . getHasLoc -> foo), -- TODO: find a good name for foo\\n bracks))\\n _)\\n existings })\\n = mg { mg_alts = L altsLoc alts }\\n where\\n alts = let ptrnGrps = groupBy isOnelined existings\\n nGrps = length ptrnGrps\\n nLastGr = ptrnGrps -- length of the last group of \\u22651 patterns written on one line\\n & reverse\\n & take 1\\n & concat\\n & length\\n (indent, addSemiCols) = if isBraced altsLoc\\n then (foo - case bracks of\\n ListBraces (EpTok (getStartCol . getHasLoc -> col)) _ -> col\\n _ -> error \\"this is impossible\\"\\n ,zipWith ($) (replicate (nGrps - 1) id\\n ++ replicate (length missingGrps) (mapLast addSemiCol)\\n ++ [id]))\\n else (0, id)\\n missingGrps = chunksOf nLastGr missing\\n <&> \\\\case [] -> error \\"Impossible\\"\\n (m:ms) -> zipWith ($) (replicate (length ms) addSemiCol ++ [id])\\n (setDP 1 indent m:map (setDP 0 1) ms)\\n\\n in concat $ addSemiCols $ ptrnGrps ++ missingGrps\\n\\naddMissingPatterns _ _ = error \\"This should not be possible\\"\\n\\nmapLast :: (a -> a) -> [a] -> [a]\\nmapLast f [a] = [f a]\\nmapLast f (a:as) = a:mapLast f as\\nmapLast _ [] = error \\"nope\\"\\n\\nisSemiCol :: TrailingAnn -> Bool\\nisSemiCol (AddSemiAnn _) = True\\nisSemiCol _ = False\\n\\nmakeMatch :: PmAltConApp -> LMatch GhcPs (LHsExpr GhcPs)\\nmakeMatch PACA{ paca_con = PmAltConLike (RealDataCon ctor), .. }\\n = L noSrcSpanA\\n $ Match { m_ext = NoExtField\\n , m_ctxt = CaseAlt\\n , m_pats = L noSrcSpanA\\n $ [L noSrcSpanA ConPat { pat_con_ext = (Nothing, Nothing)\\n , pat_con = L noSrcSpanA $ nameRdrName $ getName ctor\\n , pat_args = PrefixCon $ map (const $ L noAnnSrcSpanDP1 $ WildPat NoExtField) paca_ids\\n }]\\n , m_grhss = GRHSs emptyComments\\n -- TODO: remember to respect unicode arrow of preceeding cases or the -XUnicodeSyntax (https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/unicode_syntax.html#extension-UnicodeSyntax)\\n -- TODO: check whether ga_sep default choice is really not printing anything.\\n (singleton $ L noSrcSpanA $ GRHS (EpAnn noSrcSpanA\\n (GrhsAnn{ ga_vbar = Nothing\\n , ga_sep = Right (EpUniTok d1 NormalSyntax) })\\n emptyComments) []\\n $ L noSrcSpanA $ HsHole $ HoleVar $ L noAnnSrcSpanDP1\\n $ unnamedHoleRdrName)\\n (EmptyLocalBinds NoExtField)\\n }\\nmakeMatch _ = error \\"boom\\"\\n\\ntype MissingPatterns = [PmAltConApp]\\n\\ndefaultIndent :: Int\\ndefaultIndent = 2\\n\\nnone :: Foldable t => (a -> Bool) -> t a -> Bool\\nnone = all . (not <$>)\\n"}],"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":7}}}'
127.0.0.1 - - [21/Jul/2026 12:38:01] "POST /event_notification HTTP/1.1" 200 873
2026-07-21 12:38:01,541 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-top-binds"]},"message":"Defined but not used: \xe2\x80\x98inSpan\xe2\x80\x99","range":{"end":{"character":6,"line":87},"start":{"character":0,"line":87}},"severity":2,"source":"typecheck","tags":[1]},{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \xe2\x80\x98caseTok\xe2\x80\x99","range":{"end":{"character":54,"line":197},"start":{"character":47,"line":197}},"severity":2,"source":"typecheck","tags":[1]},{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \xe2\x80\x98ofTok\xe2\x80\x99","range":{"end":{"character":68,"line":197},"start":{"character":63,"line":197}},"severity":2,"source":"typecheck","tags":[1]}],"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":7}}'
127.0.0.1 - - [21/Jul/2026 12:38:01] "POST /receive_messages HTTP/1.1" 200 2763
2026-07-21 12:38:03,109 - INFO - Found executeCommandProvider support for command ExecuteCommand in haskell-language-server
2026-07-21 12:38:03,109 - INFO - Found codeActionProvider support for command FixIt in haskell-language-server
2026-07-21 12:38:03,109 - INFO - Found definitionProvider support for command GoToDefinition in haskell-language-server
2026-07-21 12:38:03,109 - INFO - Found definitionProvider support for command GoToDeclaration in haskell-language-server
2026-07-21 12:38:03,110 - INFO - Found definitionProvider support for command GoTo in haskell-language-server
2026-07-21 12:38:03,110 - INFO - Found typeDefinitionProvider support for command GoToType in haskell-language-server
2026-07-21 12:38:03,110 - INFO - Found implementationProvider support for command GoToImplementation in haskell-language-server
2026-07-21 12:38:03,110 - INFO - Found referencesProvider support for command GoToReferences in haskell-language-server
2026-07-21 12:38:03,110 - INFO - Found renameProvider support for command RefactorRename in haskell-language-server
2026-07-21 12:38:03,110 - INFO - Found documentFormattingProvider support for command Format in haskell-language-server
2026-07-21 12:38:03,110 - INFO - Found workspaceSymbolProvider support for command GoToSymbol in haskell-language-server
2026-07-21 12:38:03,110 - INFO - Found documentSymbolProvider support for command GoToDocumentOutline in haskell-language-server
2026-07-21 12:38:03,110 - INFO - Always supporting StopServer for haskell-language-server
2026-07-21 12:38:03,110 - INFO - Always supporting RestartServer for haskell-language-server
2026-07-21 12:38:03,110 - INFO - Always supporting GoToCallees for haskell-language-server
2026-07-21 12:38:03,110 - INFO - Always supporting GoToCallers for haskell-language-server
2026-07-21 12:38:03,111 - INFO - Always supporting CallHierarchy for haskell-language-server
2026-07-21 12:38:03,111 - INFO - Always supporting ResolveCallHierarchyItem for haskell-language-server
2026-07-21 12:38:03,111 - INFO - Always supporting GetHover for haskell-language-server
2026-07-21 12:38:03,111 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action None
2026-07-21 12:38:03,112 - DEBUG - TX: Sending message: b'Content-Length: 627\r\n\r\n{"id":9,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \\u2018caseTok\\u2019","range":{"end":{"character":54,"line":197},"start":{"character":47,"line":197}},"severity":2,"source":"typecheck","tags":[1]}]},"range":{"end":{"character":48,"line":197},"start":{"character":47,"line":197}},"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs"}}}'
2026-07-21 12:38:03,160 - DEBUG - RX: Received message: b'{"id":9,"jsonrpc":"2.0","result":[{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}]}'
2026-07-21 12:38:03,160 - DEBUG - TX: Sending message: b'Content-Length: 406\r\n\r\n{"id":10,"jsonrpc":"2.0","method":"codeAction/resolve","params":{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}}'
2026-07-21 12:38:03,160 - DEBUG - RX: Received message: b'{"id":10,"jsonrpc":"2.0","result":{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}}'
127.0.0.1 - - [21/Jul/2026 12:38:03] "POST /run_completer_command HTTP/1.1" 200 623
2026-07-21 12:38:03,161 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:03,161 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:03,161 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:03,161 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:03,162 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:03,162 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:03,170 - DEBUG - Event name: FileReadyToParse
2026-07-21 12:38:03,171 - INFO - Adding buffer identifiers for file: /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs
2026-07-21 12:38:03,172 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action Change
2026-07-21 12:38:03,172 - DEBUG - TX: Sending notification: b'Content-Length: 15872\r\n\r\n{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"text":"{-# LANGUAGE CPP #-}\\n{-# LANGUAGE DataKinds #-}\\n{-# LANGUAGE DuplicateRecordFields #-}\\n{-# LANGUAGE LambdaCase #-}\\n{-# LANGUAGE MultiWayIf #-}\\n{-# LANGUAGE OverloadedStrings #-}\\n{-# LANGUAGE PatternSynonyms #-}\\n{-# LANGUAGE ViewPatterns #-}\\n{-# LANGUAGE RecordWildCards #-}\\n{-# LANGUAGE ImpredicativeTypes #-}\\n{-# LANGUAGE TypeFamilies #-}\\n{-# LANGUAGE OrPatterns #-}\\n{-# OPTIONS_GHC -Wno-unused-matches #-}\\n\\nmodule Ide.Plugin.CaseSplit\\n ( descriptor\\n , Log\\n ) where\\n\\nimport qualified Data.Text as T\\nimport Development.IDE.Core.PluginUtils (runActionE, useE, activeDiagnosticsInRange)\\nimport Ide.Plugin.Error\\n ( PluginError(PluginInternalError),\\n getNormalizedFilePathE,\\n handleMaybeM )\\nimport Ide.Types\\n ( defaultPluginDescriptor,\\n mkPluginHandler,\\n pluginGetClientCapabilities,\\n DynFlagsModifications(dynFlagsModifyGlobal),\\n PluginDescriptor(pluginModifyDynflags, pluginHandlers,\\n pluginPriority),\\n PluginId,\\n PluginMethodHandler )\\nimport qualified Language.LSP.Protocol.Message as LSP\\nimport Language.LSP.Protocol.Message (Method(Method_TextDocumentCodeAction))\\nimport qualified Development.IDE.Core.Shake as Shake\\nimport Language.LSP.Protocol.Types\\n ( Range,\\n CodeActionParams(_range, CodeActionParams, _textDocument),\\n CodeActionKind(CodeActionKind_QuickFix),\\n type (|?)(InR, InL),\\n CodeAction(_data_, CodeAction, _title, _kind, _diagnostics,\\n _isPreferred, _disabled, _edit, _command),\\n isSubrangeOf )\\nimport Development.IDE.Types.Diagnostics (_SomeStructuredMessage)\\nimport Development.IDE.GHC.Compat (GhcMessage (GhcDsMessage), HsMatchContext (CaseAlt), ConLike (RealDataCon), NamedThing (getName), HoleKind (HoleVar))\\nimport Development.IDE.GHC.Compat.Error (DsMessage(DsNonExhaustivePatterns), msgEnvelopeErrorL)\\nimport Data.Maybe (mapMaybe)\\nimport Control.Lens (Fold, prism\', (^?), (<&>), (^.))\\nimport GHC.HsToCore.Pmc.Solver.Types (PmAltConApp(..), PmAltCon(..), TmState (ts_facts), Nabla (nabla_tm_st), VarInfo (vi_pos))\\nimport GHC.Types.Unique.SDFM ( lookupUSDFM )\\nimport GHC.Types.Name.Reader (nameRdrName)\\nimport GHC (DynFlags(maxUncoveredPatterns), ParsedModule (pm_parsed_source), HasLoc (getHasLoc), realSrcSpan, EpToken (EpTok), EpaLocation\' (EpaSpan), AnnList (AnnList), AnnListBrackets (ListBraces, ListNone), LMatch)\\nimport Development.IDE.GHC.Compat (getLoc)\\nimport Control.Monad.IO.Class ( MonadIO(liftIO) )\\nimport Control.Monad.Trans.Maybe ( MaybeT(runMaybeT) )\\nimport Development.IDE.GHC.Compat.ExactPrint\\n ( exactPrint, d0, d1, noAnnSrcSpanDP1, setEntryDP )\\nimport Data.Data (Data())\\nimport Data.Generics.Schemes (everywhere)\\nimport Debug.Trace ( trace, traceWith )\\nimport Type.Reflection (eqTypeRep,\\n type (:~~:) (HRefl),\\n typeRep, typeOf)\\nimport GHC.Hs (GhcPs, deltaPos, unnamedHoleRdrName)\\nimport GHC.Types.SrcLoc (SrcSpan, GenLocated (L))\\nimport Language.Haskell.Syntax.Expr (HsExpr (HsCase, HsHole), Match (..), GRHSs (GRHSs), GRHS (GRHS))\\nimport Control.Monad.Trans (lift)\\nimport Ide.PluginUtils (diffText, WithDeletions (IncludeDeletions))\\nimport Development.IDE.Core.FileStore (getVersionedTextDoc)\\nimport qualified Language.LSP.Protocol.Lens as L\\nimport Language.Haskell.Syntax (MatchGroup (MG, mg_alts), LHsExpr, NoExtField (NoExtField), Pat (..), HsConDetails (PrefixCon), HsLocalBindsLR (EmptyLocalBinds))\\nimport GHC (EpAnn(EpAnn))\\nimport GHC.Parser.Annotation (noSrcSpanA, EpUniToken (EpUniTok), IsUnicodeSyntax (NormalSyntax), emptyComments, TrailingAnn (AddSemiAnn), addTrailingAnnToA, AnnList (al_brackets, al_anchor))\\nimport Data.List.NonEmpty.Extra (singleton)\\nimport Development.IDE.GHC.Compat.Core (GrhsAnn(..), HasSrcSpan, srcSpanStartLine, HsMatchContext (LamAlt), HsLamVariant (LamCase), LocatedAn, lann_trailing, AnnListItem, srcSpanStartCol, EpAnnHsCase (EpAnnHsCase))\\nimport Data.List.Extra (chunksOf)\\nimport Data.List (groupBy)\\nimport Data.Function (on, (&))\\nimport Control.Arrow ((&&&))\\nimport Development.IDE (Pretty (pretty), Recorder, WithPriority, IdeState (shakeExtras), FileDiagnostic (fdStructuredMessage), runAction, GetParsedModule (GetParsedModule), srcSpanToRange)\\nimport Ide.Logger ((<+>))\\n\\ninRange :: SrcSpan -> Range -> Bool\\ninRange s range = maybe False (`isSubrangeOf` range) (srcSpanToRange s)\\n\\ninSpan :: Range -> SrcSpan -> Bool\\ninSpan range s = maybe False (range `isSubrangeOf`) (srcSpanToRange s)\\n\\ndata Log\\n = LogShake Shake.Log\\n | LogWAEResponseError (LSP.TResponseError LSP.Method_WorkspaceApplyEdit)\\n | forall a. (Pretty a) => LogResolve a\\n\\ninstance Pretty Log where\\n pretty = \\\\case\\n LogShake logMsg -> pretty logMsg\\n LogWAEResponseError rspErr -> \\"RequestWorkspaceApplyEdit Failed with \\" <+> pretty rspErr\\n LogResolve msg -> pretty msg\\n\\ndescriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState\\ndescriptor _ plId = (defaultPluginDescriptor plId \\"Provides a code action to split case\\")\\n { pluginHandlers = mkPluginHandler LSP.SMethod_TextDocumentCodeAction suggestCaseSplitProvider\\n , pluginPriority = 1\\n , pluginModifyDynflags = mempty { dynFlagsModifyGlobal = \\\\dynFlags -> dynFlags { maxUncoveredPatterns = 30 } }\\n }\\n\\nsuggestCaseSplitProvider :: PluginMethodHandler IdeState \'Method_TextDocumentCodeAction\\nsuggestCaseSplitProvider\\n state\\n _\\n CodeActionParams{ _textDocument\\n , _range = range -- XXX: In the interactive usage, this is\\n -- the first _character of the token (?) the\\n -- cursor is on. In the test (at least with\\n -- the code as it is right now) it covers\\n -- the whole `case foo of` (until the char\\n -- past the f).\\n }\\n = do\\n nfp <- getNormalizedFilePathE $ _textDocument ^. L.uri\\n\\n verTxtDocId <- liftIO $ runAction \\"dfdaias\\" state $ getVersionedTextDoc _textDocument\\n\\n pm <- runActionE \\"not important, as long as unique\\" state\\n $ useE GetParsedModule nfp\\n\\n fdiags :: [FileDiagnostic] <- activeDiagnosticsInRange (shakeExtras state) nfp range\\n <&> \\\\case Nothing -> error \\"Oops, no diagnostics!\\"\\n Just fileDiags -> fileDiags\\n\\n case mapMaybe (\\\\d -> fdStructuredMessage d ^? _SomeStructuredMessage\\n . msgEnvelopeErrorL\\n . _DsMessage) fdiags of\\n (mapMaybe dsMsgToPmAlts -> [pmAltsConApp])\\n -- TODO: I need to filter for the diagnostic I want.\\n -- It might important to check the case of two nested `case`\\n -- expressions, both with non-exhaustive patterns.\\n -> do\\n\\n (old, new) <- handleMaybeM (PluginInternalError \\"Unable to makeEditText\\")\\n $ liftIO $ runMaybeT\\n $ makeEditText pm pmAltsConApp range\\n\\n caps <- lift pluginGetClientCapabilities\\n\\n pure $ InL [InR\\n $ CodeAction { _title = \\"Add placeholders for all missing patterns\\"\\n , _kind = Just CodeActionKind_QuickFix\\n , _diagnostics = Nothing -- TODO: I should probably encode here that it addresses the DsNonExhaustivePatterns diag\\n , _isPreferred = Nothing -- TODO: Just True?\\n , _disabled = Nothing\\n , _edit = Just $ diffText caps (verTxtDocId, old) new IncludeDeletions\\n , _command = Nothing\\n , _data_ = Nothing }]\\n (mapMaybe dsMsgToPmAlts -> []) -> error \\"wth?\\"\\n (mapMaybe dsMsgToPmAlts -> [_,_]) -> error \\"Two nested\\"\\n _ -> error \\"Oops, unexpected number of messages!\\"\\n\\n where\\n\\n dsMsgToPmAlts :: DsMessage -> Maybe [PmAltConApp]\\n dsMsgToPmAlts =\\n \\\\case DsNonExhaustivePatterns !(CaseAlt; LamAlt LamCase) _ _ ![ids] !nablas ->\\n trace (\\"length nablas = \\" ++ show (length nablas)) $\\n Just $ nablas >>=\\n (\\\\nabla -> let facts = ts_facts $ nabla_tm_st nabla\\n in case vi_pos <$> lookupUSDFM facts ids of\\n Just [x] -> [x]\\n Just [] -> error \\"Oops 0\\"\\n Just _ -> error \\"Oops 1\\"\\n _ -> error \\"Oops 2\\")\\n DsNonExhaustivePatterns (CaseAlt; LamAlt LamCase) _ _ _ _ -> error \\"Oops 3\\"\\n DsNonExhaustivePatterns _ _ _ ![_] _ -> error \\"Oops 4\\"\\n DsNonExhaustivePatterns _ _ _ _ _ -> error \\"Oops 5\\"\\n _ -> error \\"Oops Nothing\\"\\n\\n_DsMessage :: Fold GhcMessage DsMessage\\n_DsMessage = prism\' GhcDsMessage $ \\\\case\\n GhcDsMessage dsmsg -> Just dsmsg\\n _ -> Nothing\\n\\nmakeEditText :: Monad m => ParsedModule -> MissingPatterns -> Range -> MaybeT m (T.Text, T.Text)\\nmakeEditText pm missingPs range = do\\n\\n let ps = pm_parsed_source pm\\n !old = T.pack $ exactPrint ps\\n !ps\' = everywhere f ps\\n !new = T.pack $ exactPrint ps\'\\n\\n pure (old, new)\\n\\n where\\n f :: forall d. Data d => d -> d\\n f node = case typeOf node `eqTypeRep` typeRep @(HsExpr GhcPs) of\\n Nothing -> node\\n Just HRefl -> case node of\\n HsCase x@(EpAnnHsCase (EpTok caseTok) (EpTok ofTok)) e existingPs\\n | getHasLoc e `inRange` (traceWith ((\\"range = \\" ++) . show) range)\\n -- HsCase x e existingPs\\n -- | (traceWith ((\\"range = \\" ++) . show) range) `inSpan` getHasLoc e\\n -> HsCase x e $ addMissingPatterns (makeMatch <$> missingPs) existingPs\\n _ -> node\\n\\nisOnelined :: LocatedAn ann e -> LocatedAn ann e -> Bool\\nisOnelined = (==) `on` getStartLine\\n\\nisBraced :: EpAnn (AnnList a) -> Bool\\nisBraced (EpAnn _ (AnnList _ (ListBraces (EpTok (EpaSpan _)) _) _ _ _) _) = True\\nisBraced (EpAnn _ (AnnList _ ListNone _ _ _) _) = False\\nisBraced _ = error \\"Ooops\\"\\n\\ngetStartCol :: HasSrcSpan a => a -> Int\\ngetStartCol = srcSpanStartCol . realSrcSpan . getLoc\\n\\ngetStartLine :: HasSrcSpan a => a -> Int\\ngetStartLine = srcSpanStartLine . realSrcSpan . getLoc\\n\\nsetDP :: Int -> Int -> LocatedAn t a -> LocatedAn t a\\nsetDP = (flip setEntryDP .) . deltaPos\\n\\n-- Add semicolon, unless one is already present.\\naddSemiCol :: LocatedAn AnnListItem a -> LocatedAn AnnListItem a\\naddSemiCol (L l@(EpAnn _ ls _) e)\\n | none isSemiCol (lann_trailing ls)\\n = L (addTrailingAnnToA (AddSemiAnn (EpTok d0)) emptyComments l) e\\naddSemiCol l = l\\n\\naddMissingPatterns :: [LMatch GhcPs (LHsExpr GhcPs)] -> MatchGroup GhcPs (LHsExpr GhcPs) -> MatchGroup GhcPs (LHsExpr GhcPs)\\naddMissingPatterns missing mg@(MG { mg_alts = L l [] })\\n = mg { mg_alts = L l (fmt missing) }\\n where\\n fmt = if isBraced l\\n then zipWith3 (.)\\n (replicate (length missing - 1) addSemiCol ++ [id])\\n (repeat $ setDP 1 defaultIndent)\\n else zipWith ($)\\n (setDP 1 defaultIndent:repeat (setDP 1 0))\\n\\naddMissingPatterns missing mg@(MG { mg_alts = L altsLoc@(EpAnn _\\n (al_anchor &&& al_brackets -> (Just (getStartCol . getHasLoc -> foo), -- TODO: find a good name for foo\\n bracks))\\n _)\\n existings })\\n = mg { mg_alts = L altsLoc alts }\\n where\\n alts = let ptrnGrps = groupBy isOnelined existings\\n nGrps = length ptrnGrps\\n nLastGr = ptrnGrps -- length of the last group of \\u22651 patterns written on one line\\n & reverse\\n & take 1\\n & concat\\n & length\\n (indent, addSemiCols) = if isBraced altsLoc\\n then (foo - case bracks of\\n ListBraces (EpTok (getStartCol . getHasLoc -> col)) _ -> col\\n _ -> error \\"this is impossible\\"\\n ,zipWith ($) (replicate (nGrps - 1) id\\n ++ replicate (length missingGrps) (mapLast addSemiCol)\\n ++ [id]))\\n else (0, id)\\n missingGrps = chunksOf nLastGr missing\\n <&> \\\\case [] -> error \\"Impossible\\"\\n (m:ms) -> zipWith ($) (replicate (length ms) addSemiCol ++ [id])\\n (setDP 1 indent m:map (setDP 0 1) ms)\\n\\n in concat $ addSemiCols $ ptrnGrps ++ missingGrps\\n\\naddMissingPatterns _ _ = error \\"This should not be possible\\"\\n\\nmapLast :: (a -> a) -> [a] -> [a]\\nmapLast f [a] = [f a]\\nmapLast f (a:as) = a:mapLast f as\\nmapLast _ [] = error \\"nope\\"\\n\\nisSemiCol :: TrailingAnn -> Bool\\nisSemiCol (AddSemiAnn _) = True\\nisSemiCol _ = False\\n\\nmakeMatch :: PmAltConApp -> LMatch GhcPs (LHsExpr GhcPs)\\nmakeMatch PACA{ paca_con = PmAltConLike (RealDataCon ctor), .. }\\n = L noSrcSpanA\\n $ Match { m_ext = NoExtField\\n , m_ctxt = CaseAlt\\n , m_pats = L noSrcSpanA\\n $ [L noSrcSpanA ConPat { pat_con_ext = (Nothing, Nothing)\\n , pat_con = L noSrcSpanA $ nameRdrName $ getName ctor\\n , pat_args = PrefixCon $ map (const $ L noAnnSrcSpanDP1 $ WildPat NoExtField) paca_ids\\n }]\\n , m_grhss = GRHSs emptyComments\\n -- TODO: remember to respect unicode arrow of preceeding cases or the -XUnicodeSyntax (https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/unicode_syntax.html#extension-UnicodeSyntax)\\n -- TODO: check whether ga_sep default choice is really not printing anything.\\n (singleton $ L noSrcSpanA $ GRHS (EpAnn noSrcSpanA\\n (GrhsAnn{ ga_vbar = Nothing\\n , ga_sep = Right (EpUniTok d1 NormalSyntax) })\\n emptyComments) []\\n $ L noSrcSpanA $ HsHole $ HoleVar $ L noAnnSrcSpanDP1\\n $ unnamedHoleRdrName)\\n (EmptyLocalBinds NoExtField)\\n }\\nmakeMatch _ = error \\"boom\\"\\n\\ntype MissingPatterns = [PmAltConApp]\\n\\ndefaultIndent :: Int\\ndefaultIndent = 2\\n\\nnone :: Foldable t => (a -> Bool) -> t a -> Bool\\nnone = all . (not <$>)\\n"}],"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":8}}}'
127.0.0.1 - - [21/Jul/2026 12:38:03] "POST /event_notification HTTP/1.1" 200 2637
2026-07-21 12:38:03,238 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-top-binds"]},"message":"Defined but not used: \xe2\x80\x98inSpan\xe2\x80\x99","range":{"end":{"character":6,"line":88},"start":{"character":0,"line":88}},"severity":2,"source":"typecheck","tags":[1]}],"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":8}}'
127.0.0.1 - - [21/Jul/2026 12:38:03] "POST /receive_messages HTTP/1.1" 200 999
2026-07-21 12:38:03,977 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:03,977 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:03,977 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:03,980 - DEBUG - Event name: FileReadyToParse
2026-07-21 12:38:03,980 - INFO - Adding buffer identifiers for file: /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs
2026-07-21 12:38:03,981 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action Change
2026-07-21 12:38:03,982 - DEBUG - TX: Sending notification: b'Content-Length: 15831\r\n\r\n{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"text":"{-# LANGUAGE CPP #-}\\n{-# LANGUAGE DataKinds #-}\\n{-# LANGUAGE DuplicateRecordFields #-}\\n{-# LANGUAGE LambdaCase #-}\\n{-# LANGUAGE MultiWayIf #-}\\n{-# LANGUAGE OverloadedStrings #-}\\n{-# LANGUAGE PatternSynonyms #-}\\n{-# LANGUAGE ViewPatterns #-}\\n{-# LANGUAGE RecordWildCards #-}\\n{-# LANGUAGE ImpredicativeTypes #-}\\n{-# LANGUAGE TypeFamilies #-}\\n{-# LANGUAGE OrPatterns #-}\\n\\nmodule Ide.Plugin.CaseSplit\\n ( descriptor\\n , Log\\n ) where\\n\\nimport qualified Data.Text as T\\nimport Development.IDE.Core.PluginUtils (runActionE, useE, activeDiagnosticsInRange)\\nimport Ide.Plugin.Error\\n ( PluginError(PluginInternalError),\\n getNormalizedFilePathE,\\n handleMaybeM )\\nimport Ide.Types\\n ( defaultPluginDescriptor,\\n mkPluginHandler,\\n pluginGetClientCapabilities,\\n DynFlagsModifications(dynFlagsModifyGlobal),\\n PluginDescriptor(pluginModifyDynflags, pluginHandlers,\\n pluginPriority),\\n PluginId,\\n PluginMethodHandler )\\nimport qualified Language.LSP.Protocol.Message as LSP\\nimport Language.LSP.Protocol.Message (Method(Method_TextDocumentCodeAction))\\nimport qualified Development.IDE.Core.Shake as Shake\\nimport Language.LSP.Protocol.Types\\n ( Range,\\n CodeActionParams(_range, CodeActionParams, _textDocument),\\n CodeActionKind(CodeActionKind_QuickFix),\\n type (|?)(InR, InL),\\n CodeAction(_data_, CodeAction, _title, _kind, _diagnostics,\\n _isPreferred, _disabled, _edit, _command),\\n isSubrangeOf )\\nimport Development.IDE.Types.Diagnostics (_SomeStructuredMessage)\\nimport Development.IDE.GHC.Compat (GhcMessage (GhcDsMessage), HsMatchContext (CaseAlt), ConLike (RealDataCon), NamedThing (getName), HoleKind (HoleVar))\\nimport Development.IDE.GHC.Compat.Error (DsMessage(DsNonExhaustivePatterns), msgEnvelopeErrorL)\\nimport Data.Maybe (mapMaybe)\\nimport Control.Lens (Fold, prism\', (^?), (<&>), (^.))\\nimport GHC.HsToCore.Pmc.Solver.Types (PmAltConApp(..), PmAltCon(..), TmState (ts_facts), Nabla (nabla_tm_st), VarInfo (vi_pos))\\nimport GHC.Types.Unique.SDFM ( lookupUSDFM )\\nimport GHC.Types.Name.Reader (nameRdrName)\\nimport GHC (DynFlags(maxUncoveredPatterns), ParsedModule (pm_parsed_source), HasLoc (getHasLoc), realSrcSpan, EpToken (EpTok), EpaLocation\' (EpaSpan), AnnList (AnnList), AnnListBrackets (ListBraces, ListNone), LMatch)\\nimport Development.IDE.GHC.Compat (getLoc)\\nimport Control.Monad.IO.Class ( MonadIO(liftIO) )\\nimport Control.Monad.Trans.Maybe ( MaybeT(runMaybeT) )\\nimport Development.IDE.GHC.Compat.ExactPrint\\n ( exactPrint, d0, d1, noAnnSrcSpanDP1, setEntryDP )\\nimport Data.Data (Data())\\nimport Data.Generics.Schemes (everywhere)\\nimport Debug.Trace ( trace, traceWith )\\nimport Type.Reflection (eqTypeRep,\\n type (:~~:) (HRefl),\\n typeRep, typeOf)\\nimport GHC.Hs (GhcPs, deltaPos, unnamedHoleRdrName)\\nimport GHC.Types.SrcLoc (SrcSpan, GenLocated (L))\\nimport Language.Haskell.Syntax.Expr (HsExpr (HsCase, HsHole), Match (..), GRHSs (GRHSs), GRHS (GRHS))\\nimport Control.Monad.Trans (lift)\\nimport Ide.PluginUtils (diffText, WithDeletions (IncludeDeletions))\\nimport Development.IDE.Core.FileStore (getVersionedTextDoc)\\nimport qualified Language.LSP.Protocol.Lens as L\\nimport Language.Haskell.Syntax (MatchGroup (MG, mg_alts), LHsExpr, NoExtField (NoExtField), Pat (..), HsConDetails (PrefixCon), HsLocalBindsLR (EmptyLocalBinds))\\nimport GHC (EpAnn(EpAnn))\\nimport GHC.Parser.Annotation (noSrcSpanA, EpUniToken (EpUniTok), IsUnicodeSyntax (NormalSyntax), emptyComments, TrailingAnn (AddSemiAnn), addTrailingAnnToA, AnnList (al_brackets, al_anchor))\\nimport Data.List.NonEmpty.Extra (singleton)\\nimport Development.IDE.GHC.Compat.Core (GrhsAnn(..), HasSrcSpan, srcSpanStartLine, HsMatchContext (LamAlt), HsLamVariant (LamCase), LocatedAn, lann_trailing, AnnListItem, srcSpanStartCol, EpAnnHsCase (EpAnnHsCase))\\nimport Data.List.Extra (chunksOf)\\nimport Data.List (groupBy)\\nimport Data.Function (on, (&))\\nimport Control.Arrow ((&&&))\\nimport Development.IDE (Pretty (pretty), Recorder, WithPriority, IdeState (shakeExtras), FileDiagnostic (fdStructuredMessage), runAction, GetParsedModule (GetParsedModule), srcSpanToRange)\\nimport Ide.Logger ((<+>))\\n\\ninRange :: SrcSpan -> Range -> Bool\\ninRange s range = maybe False (`isSubrangeOf` range) (srcSpanToRange s)\\n\\ninSpan :: Range -> SrcSpan -> Bool\\ninSpan range s = maybe False (range `isSubrangeOf`) (srcSpanToRange s)\\n\\ndata Log\\n = LogShake Shake.Log\\n | LogWAEResponseError (LSP.TResponseError LSP.Method_WorkspaceApplyEdit)\\n | forall a. (Pretty a) => LogResolve a\\n\\ninstance Pretty Log where\\n pretty = \\\\case\\n LogShake logMsg -> pretty logMsg\\n LogWAEResponseError rspErr -> \\"RequestWorkspaceApplyEdit Failed with \\" <+> pretty rspErr\\n LogResolve msg -> pretty msg\\n\\ndescriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState\\ndescriptor _ plId = (defaultPluginDescriptor plId \\"Provides a code action to split case\\")\\n { pluginHandlers = mkPluginHandler LSP.SMethod_TextDocumentCodeAction suggestCaseSplitProvider\\n , pluginPriority = 1\\n , pluginModifyDynflags = mempty { dynFlagsModifyGlobal = \\\\dynFlags -> dynFlags { maxUncoveredPatterns = 30 } }\\n }\\n\\nsuggestCaseSplitProvider :: PluginMethodHandler IdeState \'Method_TextDocumentCodeAction\\nsuggestCaseSplitProvider\\n state\\n _\\n CodeActionParams{ _textDocument\\n , _range = range -- XXX: In the interactive usage, this is\\n -- the first _character of the token (?) the\\n -- cursor is on. In the test (at least with\\n -- the code as it is right now) it covers\\n -- the whole `case foo of` (until the char\\n -- past the f).\\n }\\n = do\\n nfp <- getNormalizedFilePathE $ _textDocument ^. L.uri\\n\\n verTxtDocId <- liftIO $ runAction \\"dfdaias\\" state $ getVersionedTextDoc _textDocument\\n\\n pm <- runActionE \\"not important, as long as unique\\" state\\n $ useE GetParsedModule nfp\\n\\n fdiags :: [FileDiagnostic] <- activeDiagnosticsInRange (shakeExtras state) nfp range\\n <&> \\\\case Nothing -> error \\"Oops, no diagnostics!\\"\\n Just fileDiags -> fileDiags\\n\\n case mapMaybe (\\\\d -> fdStructuredMessage d ^? _SomeStructuredMessage\\n . msgEnvelopeErrorL\\n . _DsMessage) fdiags of\\n (mapMaybe dsMsgToPmAlts -> [pmAltsConApp])\\n -- TODO: I need to filter for the diagnostic I want.\\n -- It might important to check the case of two nested `case`\\n -- expressions, both with non-exhaustive patterns.\\n -> do\\n\\n (old, new) <- handleMaybeM (PluginInternalError \\"Unable to makeEditText\\")\\n $ liftIO $ runMaybeT\\n $ makeEditText pm pmAltsConApp range\\n\\n caps <- lift pluginGetClientCapabilities\\n\\n pure $ InL [InR\\n $ CodeAction { _title = \\"Add placeholders for all missing patterns\\"\\n , _kind = Just CodeActionKind_QuickFix\\n , _diagnostics = Nothing -- TODO: I should probably encode here that it addresses the DsNonExhaustivePatterns diag\\n , _isPreferred = Nothing -- TODO: Just True?\\n , _disabled = Nothing\\n , _edit = Just $ diffText caps (verTxtDocId, old) new IncludeDeletions\\n , _command = Nothing\\n , _data_ = Nothing }]\\n (mapMaybe dsMsgToPmAlts -> []) -> error \\"wth?\\"\\n (mapMaybe dsMsgToPmAlts -> [_,_]) -> error \\"Two nested\\"\\n _ -> error \\"Oops, unexpected number of messages!\\"\\n\\n where\\n\\n dsMsgToPmAlts :: DsMessage -> Maybe [PmAltConApp]\\n dsMsgToPmAlts =\\n \\\\case DsNonExhaustivePatterns !(CaseAlt; LamAlt LamCase) _ _ ![ids] !nablas ->\\n trace (\\"length nablas = \\" ++ show (length nablas)) $\\n Just $ nablas >>=\\n (\\\\nabla -> let facts = ts_facts $ nabla_tm_st nabla\\n in case vi_pos <$> lookupUSDFM facts ids of\\n Just [x] -> [x]\\n Just [] -> error \\"Oops 0\\"\\n Just _ -> error \\"Oops 1\\"\\n _ -> error \\"Oops 2\\")\\n DsNonExhaustivePatterns (CaseAlt; LamAlt LamCase) _ _ _ _ -> error \\"Oops 3\\"\\n DsNonExhaustivePatterns _ _ _ ![_] _ -> error \\"Oops 4\\"\\n DsNonExhaustivePatterns _ _ _ _ _ -> error \\"Oops 5\\"\\n _ -> error \\"Oops Nothing\\"\\n\\n_DsMessage :: Fold GhcMessage DsMessage\\n_DsMessage = prism\' GhcDsMessage $ \\\\case\\n GhcDsMessage dsmsg -> Just dsmsg\\n _ -> Nothing\\n\\nmakeEditText :: Monad m => ParsedModule -> MissingPatterns -> Range -> MaybeT m (T.Text, T.Text)\\nmakeEditText pm missingPs range = do\\n\\n let ps = pm_parsed_source pm\\n !old = T.pack $ exactPrint ps\\n !ps\' = everywhere f ps\\n !new = T.pack $ exactPrint ps\'\\n\\n pure (old, new)\\n\\n where\\n f :: forall d. Data d => d -> d\\n f node = case typeOf node `eqTypeRep` typeRep @(HsExpr GhcPs) of\\n Nothing -> node\\n Just HRefl -> case node of\\n HsCase x@(EpAnnHsCase (EpTok caseTok) (EpTok ofTok)) e existingPs\\n | getHasLoc e `inRange` (traceWith ((\\"range = \\" ++) . show) range)\\n -- HsCase x e existingPs\\n -- | (traceWith ((\\"range = \\" ++) . show) range) `inSpan` getHasLoc e\\n -> HsCase x e $ addMissingPatterns (makeMatch <$> missingPs) existingPs\\n _ -> node\\n\\nisOnelined :: LocatedAn ann e -> LocatedAn ann e -> Bool\\nisOnelined = (==) `on` getStartLine\\n\\nisBraced :: EpAnn (AnnList a) -> Bool\\nisBraced (EpAnn _ (AnnList _ (ListBraces (EpTok (EpaSpan _)) _) _ _ _) _) = True\\nisBraced (EpAnn _ (AnnList _ ListNone _ _ _) _) = False\\nisBraced _ = error \\"Ooops\\"\\n\\ngetStartCol :: HasSrcSpan a => a -> Int\\ngetStartCol = srcSpanStartCol . realSrcSpan . getLoc\\n\\ngetStartLine :: HasSrcSpan a => a -> Int\\ngetStartLine = srcSpanStartLine . realSrcSpan . getLoc\\n\\nsetDP :: Int -> Int -> LocatedAn t a -> LocatedAn t a\\nsetDP = (flip setEntryDP .) . deltaPos\\n\\n-- Add semicolon, unless one is already present.\\naddSemiCol :: LocatedAn AnnListItem a -> LocatedAn AnnListItem a\\naddSemiCol (L l@(EpAnn _ ls _) e)\\n | none isSemiCol (lann_trailing ls)\\n = L (addTrailingAnnToA (AddSemiAnn (EpTok d0)) emptyComments l) e\\naddSemiCol l = l\\n\\naddMissingPatterns :: [LMatch GhcPs (LHsExpr GhcPs)] -> MatchGroup GhcPs (LHsExpr GhcPs) -> MatchGroup GhcPs (LHsExpr GhcPs)\\naddMissingPatterns missing mg@(MG { mg_alts = L l [] })\\n = mg { mg_alts = L l (fmt missing) }\\n where\\n fmt = if isBraced l\\n then zipWith3 (.)\\n (replicate (length missing - 1) addSemiCol ++ [id])\\n (repeat $ setDP 1 defaultIndent)\\n else zipWith ($)\\n (setDP 1 defaultIndent:repeat (setDP 1 0))\\n\\naddMissingPatterns missing mg@(MG { mg_alts = L altsLoc@(EpAnn _\\n (al_anchor &&& al_brackets -> (Just (getStartCol . getHasLoc -> foo), -- TODO: find a good name for foo\\n bracks))\\n _)\\n existings })\\n = mg { mg_alts = L altsLoc alts }\\n where\\n alts = let ptrnGrps = groupBy isOnelined existings\\n nGrps = length ptrnGrps\\n nLastGr = ptrnGrps -- length of the last group of \\u22651 patterns written on one line\\n & reverse\\n & take 1\\n & concat\\n & length\\n (indent, addSemiCols) = if isBraced altsLoc\\n then (foo - case bracks of\\n ListBraces (EpTok (getStartCol . getHasLoc -> col)) _ -> col\\n _ -> error \\"this is impossible\\"\\n ,zipWith ($) (replicate (nGrps - 1) id\\n ++ replicate (length missingGrps) (mapLast addSemiCol)\\n ++ [id]))\\n else (0, id)\\n missingGrps = chunksOf nLastGr missing\\n <&> \\\\case [] -> error \\"Impossible\\"\\n (m:ms) -> zipWith ($) (replicate (length ms) addSemiCol ++ [id])\\n (setDP 1 indent m:map (setDP 0 1) ms)\\n\\n in concat $ addSemiCols $ ptrnGrps ++ missingGrps\\n\\naddMissingPatterns _ _ = error \\"This should not be possible\\"\\n\\nmapLast :: (a -> a) -> [a] -> [a]\\nmapLast f [a] = [f a]\\nmapLast f (a:as) = a:mapLast f as\\nmapLast _ [] = error \\"nope\\"\\n\\nisSemiCol :: TrailingAnn -> Bool\\nisSemiCol (AddSemiAnn _) = True\\nisSemiCol _ = False\\n\\nmakeMatch :: PmAltConApp -> LMatch GhcPs (LHsExpr GhcPs)\\nmakeMatch PACA{ paca_con = PmAltConLike (RealDataCon ctor), .. }\\n = L noSrcSpanA\\n $ Match { m_ext = NoExtField\\n , m_ctxt = CaseAlt\\n , m_pats = L noSrcSpanA\\n $ [L noSrcSpanA ConPat { pat_con_ext = (Nothing, Nothing)\\n , pat_con = L noSrcSpanA $ nameRdrName $ getName ctor\\n , pat_args = PrefixCon $ map (const $ L noAnnSrcSpanDP1 $ WildPat NoExtField) paca_ids\\n }]\\n , m_grhss = GRHSs emptyComments\\n -- TODO: remember to respect unicode arrow of preceeding cases or the -XUnicodeSyntax (https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/unicode_syntax.html#extension-UnicodeSyntax)\\n -- TODO: check whether ga_sep default choice is really not printing anything.\\n (singleton $ L noSrcSpanA $ GRHS (EpAnn noSrcSpanA\\n (GrhsAnn{ ga_vbar = Nothing\\n , ga_sep = Right (EpUniTok d1 NormalSyntax) })\\n emptyComments) []\\n $ L noSrcSpanA $ HsHole $ HoleVar $ L noAnnSrcSpanDP1\\n $ unnamedHoleRdrName)\\n (EmptyLocalBinds NoExtField)\\n }\\nmakeMatch _ = error \\"boom\\"\\n\\ntype MissingPatterns = [PmAltConApp]\\n\\ndefaultIndent :: Int\\ndefaultIndent = 2\\n\\nnone :: Foldable t => (a -> Bool) -> t a -> Bool\\nnone = all . (not <$>)\\n"}],"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":9}}}'
127.0.0.1 - - [21/Jul/2026 12:38:03] "POST /event_notification HTTP/1.1" 200 873
2026-07-21 12:38:04,052 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-top-binds"]},"message":"Defined but not used: \xe2\x80\x98inSpan\xe2\x80\x99","range":{"end":{"character":6,"line":87},"start":{"character":0,"line":87}},"severity":2,"source":"typecheck","tags":[1]},{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \xe2\x80\x98caseTok\xe2\x80\x99","range":{"end":{"character":54,"line":197},"start":{"character":47,"line":197}},"severity":2,"source":"typecheck","tags":[1]},{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \xe2\x80\x98ofTok\xe2\x80\x99","range":{"end":{"character":68,"line":197},"start":{"character":63,"line":197}},"severity":2,"source":"typecheck","tags":[1]}],"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":9}}'
127.0.0.1 - - [21/Jul/2026 12:38:04] "POST /receive_messages HTTP/1.1" 200 2763
2026-07-21 12:38:06,675 - INFO - Found executeCommandProvider support for command ExecuteCommand in haskell-language-server
2026-07-21 12:38:06,675 - INFO - Found codeActionProvider support for command FixIt in haskell-language-server
2026-07-21 12:38:06,675 - INFO - Found definitionProvider support for command GoToDefinition in haskell-language-server
2026-07-21 12:38:06,675 - INFO - Found definitionProvider support for command GoToDeclaration in haskell-language-server
2026-07-21 12:38:06,675 - INFO - Found definitionProvider support for command GoTo in haskell-language-server
2026-07-21 12:38:06,675 - INFO - Found typeDefinitionProvider support for command GoToType in haskell-language-server
2026-07-21 12:38:06,675 - INFO - Found implementationProvider support for command GoToImplementation in haskell-language-server
2026-07-21 12:38:06,675 - INFO - Found referencesProvider support for command GoToReferences in haskell-language-server
2026-07-21 12:38:06,676 - INFO - Found renameProvider support for command RefactorRename in haskell-language-server
2026-07-21 12:38:06,676 - INFO - Found documentFormattingProvider support for command Format in haskell-language-server
2026-07-21 12:38:06,676 - INFO - Found workspaceSymbolProvider support for command GoToSymbol in haskell-language-server
2026-07-21 12:38:06,676 - INFO - Found documentSymbolProvider support for command GoToDocumentOutline in haskell-language-server
2026-07-21 12:38:06,676 - INFO - Always supporting StopServer for haskell-language-server
2026-07-21 12:38:06,676 - INFO - Always supporting RestartServer for haskell-language-server
2026-07-21 12:38:06,676 - INFO - Always supporting GoToCallees for haskell-language-server
2026-07-21 12:38:06,676 - INFO - Always supporting GoToCallers for haskell-language-server
2026-07-21 12:38:06,676 - INFO - Always supporting CallHierarchy for haskell-language-server
2026-07-21 12:38:06,676 - INFO - Always supporting ResolveCallHierarchyItem for haskell-language-server
2026-07-21 12:38:06,676 - INFO - Always supporting GetHover for haskell-language-server
2026-07-21 12:38:06,677 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action None
2026-07-21 12:38:06,678 - DEBUG - TX: Sending message: b'Content-Length: 628\r\n\r\n{"id":11,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \\u2018caseTok\\u2019","range":{"end":{"character":54,"line":197},"start":{"character":47,"line":197}},"severity":2,"source":"typecheck","tags":[1]}]},"range":{"end":{"character":48,"line":197},"start":{"character":47,"line":197}},"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs"}}}'
2026-07-21 12:38:06,727 - DEBUG - RX: Received message: b'{"id":11,"jsonrpc":"2.0","result":[{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}]}'
2026-07-21 12:38:06,727 - DEBUG - TX: Sending message: b'Content-Length: 406\r\n\r\n{"id":12,"jsonrpc":"2.0","method":"codeAction/resolve","params":{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}}'
2026-07-21 12:38:06,728 - DEBUG - RX: Received message: b'{"id":12,"jsonrpc":"2.0","result":{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}}'
127.0.0.1 - - [21/Jul/2026 12:38:06] "POST /run_completer_command HTTP/1.1" 200 623
2026-07-21 12:38:06,728 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:06,729 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:06,729 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:06,729 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:06,729 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:06,729 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:06,737 - DEBUG - Event name: FileReadyToParse
2026-07-21 12:38:06,737 - INFO - Adding buffer identifiers for file: /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs
2026-07-21 12:38:06,738 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action Change
2026-07-21 12:38:06,738 - DEBUG - TX: Sending notification: b'Content-Length: 15873\r\n\r\n{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"text":"{-# LANGUAGE CPP #-}\\n{-# LANGUAGE DataKinds #-}\\n{-# LANGUAGE DuplicateRecordFields #-}\\n{-# LANGUAGE LambdaCase #-}\\n{-# LANGUAGE MultiWayIf #-}\\n{-# LANGUAGE OverloadedStrings #-}\\n{-# LANGUAGE PatternSynonyms #-}\\n{-# LANGUAGE ViewPatterns #-}\\n{-# LANGUAGE RecordWildCards #-}\\n{-# LANGUAGE ImpredicativeTypes #-}\\n{-# LANGUAGE TypeFamilies #-}\\n{-# LANGUAGE OrPatterns #-}\\n{-# OPTIONS_GHC -Wno-unused-matches #-}\\n\\nmodule Ide.Plugin.CaseSplit\\n ( descriptor\\n , Log\\n ) where\\n\\nimport qualified Data.Text as T\\nimport Development.IDE.Core.PluginUtils (runActionE, useE, activeDiagnosticsInRange)\\nimport Ide.Plugin.Error\\n ( PluginError(PluginInternalError),\\n getNormalizedFilePathE,\\n handleMaybeM )\\nimport Ide.Types\\n ( defaultPluginDescriptor,\\n mkPluginHandler,\\n pluginGetClientCapabilities,\\n DynFlagsModifications(dynFlagsModifyGlobal),\\n PluginDescriptor(pluginModifyDynflags, pluginHandlers,\\n pluginPriority),\\n PluginId,\\n PluginMethodHandler )\\nimport qualified Language.LSP.Protocol.Message as LSP\\nimport Language.LSP.Protocol.Message (Method(Method_TextDocumentCodeAction))\\nimport qualified Development.IDE.Core.Shake as Shake\\nimport Language.LSP.Protocol.Types\\n ( Range,\\n CodeActionParams(_range, CodeActionParams, _textDocument),\\n CodeActionKind(CodeActionKind_QuickFix),\\n type (|?)(InR, InL),\\n CodeAction(_data_, CodeAction, _title, _kind, _diagnostics,\\n _isPreferred, _disabled, _edit, _command),\\n isSubrangeOf )\\nimport Development.IDE.Types.Diagnostics (_SomeStructuredMessage)\\nimport Development.IDE.GHC.Compat (GhcMessage (GhcDsMessage), HsMatchContext (CaseAlt), ConLike (RealDataCon), NamedThing (getName), HoleKind (HoleVar))\\nimport Development.IDE.GHC.Compat.Error (DsMessage(DsNonExhaustivePatterns), msgEnvelopeErrorL)\\nimport Data.Maybe (mapMaybe)\\nimport Control.Lens (Fold, prism\', (^?), (<&>), (^.))\\nimport GHC.HsToCore.Pmc.Solver.Types (PmAltConApp(..), PmAltCon(..), TmState (ts_facts), Nabla (nabla_tm_st), VarInfo (vi_pos))\\nimport GHC.Types.Unique.SDFM ( lookupUSDFM )\\nimport GHC.Types.Name.Reader (nameRdrName)\\nimport GHC (DynFlags(maxUncoveredPatterns), ParsedModule (pm_parsed_source), HasLoc (getHasLoc), realSrcSpan, EpToken (EpTok), EpaLocation\' (EpaSpan), AnnList (AnnList), AnnListBrackets (ListBraces, ListNone), LMatch)\\nimport Development.IDE.GHC.Compat (getLoc)\\nimport Control.Monad.IO.Class ( MonadIO(liftIO) )\\nimport Control.Monad.Trans.Maybe ( MaybeT(runMaybeT) )\\nimport Development.IDE.GHC.Compat.ExactPrint\\n ( exactPrint, d0, d1, noAnnSrcSpanDP1, setEntryDP )\\nimport Data.Data (Data())\\nimport Data.Generics.Schemes (everywhere)\\nimport Debug.Trace ( trace, traceWith )\\nimport Type.Reflection (eqTypeRep,\\n type (:~~:) (HRefl),\\n typeRep, typeOf)\\nimport GHC.Hs (GhcPs, deltaPos, unnamedHoleRdrName)\\nimport GHC.Types.SrcLoc (SrcSpan, GenLocated (L))\\nimport Language.Haskell.Syntax.Expr (HsExpr (HsCase, HsHole), Match (..), GRHSs (GRHSs), GRHS (GRHS))\\nimport Control.Monad.Trans (lift)\\nimport Ide.PluginUtils (diffText, WithDeletions (IncludeDeletions))\\nimport Development.IDE.Core.FileStore (getVersionedTextDoc)\\nimport qualified Language.LSP.Protocol.Lens as L\\nimport Language.Haskell.Syntax (MatchGroup (MG, mg_alts), LHsExpr, NoExtField (NoExtField), Pat (..), HsConDetails (PrefixCon), HsLocalBindsLR (EmptyLocalBinds))\\nimport GHC (EpAnn(EpAnn))\\nimport GHC.Parser.Annotation (noSrcSpanA, EpUniToken (EpUniTok), IsUnicodeSyntax (NormalSyntax), emptyComments, TrailingAnn (AddSemiAnn), addTrailingAnnToA, AnnList (al_brackets, al_anchor))\\nimport Data.List.NonEmpty.Extra (singleton)\\nimport Development.IDE.GHC.Compat.Core (GrhsAnn(..), HasSrcSpan, srcSpanStartLine, HsMatchContext (LamAlt), HsLamVariant (LamCase), LocatedAn, lann_trailing, AnnListItem, srcSpanStartCol, EpAnnHsCase (EpAnnHsCase))\\nimport Data.List.Extra (chunksOf)\\nimport Data.List (groupBy)\\nimport Data.Function (on, (&))\\nimport Control.Arrow ((&&&))\\nimport Development.IDE (Pretty (pretty), Recorder, WithPriority, IdeState (shakeExtras), FileDiagnostic (fdStructuredMessage), runAction, GetParsedModule (GetParsedModule), srcSpanToRange)\\nimport Ide.Logger ((<+>))\\n\\ninRange :: SrcSpan -> Range -> Bool\\ninRange s range = maybe False (`isSubrangeOf` range) (srcSpanToRange s)\\n\\ninSpan :: Range -> SrcSpan -> Bool\\ninSpan range s = maybe False (range `isSubrangeOf`) (srcSpanToRange s)\\n\\ndata Log\\n = LogShake Shake.Log\\n | LogWAEResponseError (LSP.TResponseError LSP.Method_WorkspaceApplyEdit)\\n | forall a. (Pretty a) => LogResolve a\\n\\ninstance Pretty Log where\\n pretty = \\\\case\\n LogShake logMsg -> pretty logMsg\\n LogWAEResponseError rspErr -> \\"RequestWorkspaceApplyEdit Failed with \\" <+> pretty rspErr\\n LogResolve msg -> pretty msg\\n\\ndescriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState\\ndescriptor _ plId = (defaultPluginDescriptor plId \\"Provides a code action to split case\\")\\n { pluginHandlers = mkPluginHandler LSP.SMethod_TextDocumentCodeAction suggestCaseSplitProvider\\n , pluginPriority = 1\\n , pluginModifyDynflags = mempty { dynFlagsModifyGlobal = \\\\dynFlags -> dynFlags { maxUncoveredPatterns = 30 } }\\n }\\n\\nsuggestCaseSplitProvider :: PluginMethodHandler IdeState \'Method_TextDocumentCodeAction\\nsuggestCaseSplitProvider\\n state\\n _\\n CodeActionParams{ _textDocument\\n , _range = range -- XXX: In the interactive usage, this is\\n -- the first _character of the token (?) the\\n -- cursor is on. In the test (at least with\\n -- the code as it is right now) it covers\\n -- the whole `case foo of` (until the char\\n -- past the f).\\n }\\n = do\\n nfp <- getNormalizedFilePathE $ _textDocument ^. L.uri\\n\\n verTxtDocId <- liftIO $ runAction \\"dfdaias\\" state $ getVersionedTextDoc _textDocument\\n\\n pm <- runActionE \\"not important, as long as unique\\" state\\n $ useE GetParsedModule nfp\\n\\n fdiags :: [FileDiagnostic] <- activeDiagnosticsInRange (shakeExtras state) nfp range\\n <&> \\\\case Nothing -> error \\"Oops, no diagnostics!\\"\\n Just fileDiags -> fileDiags\\n\\n case mapMaybe (\\\\d -> fdStructuredMessage d ^? _SomeStructuredMessage\\n . msgEnvelopeErrorL\\n . _DsMessage) fdiags of\\n (mapMaybe dsMsgToPmAlts -> [pmAltsConApp])\\n -- TODO: I need to filter for the diagnostic I want.\\n -- It might important to check the case of two nested `case`\\n -- expressions, both with non-exhaustive patterns.\\n -> do\\n\\n (old, new) <- handleMaybeM (PluginInternalError \\"Unable to makeEditText\\")\\n $ liftIO $ runMaybeT\\n $ makeEditText pm pmAltsConApp range\\n\\n caps <- lift pluginGetClientCapabilities\\n\\n pure $ InL [InR\\n $ CodeAction { _title = \\"Add placeholders for all missing patterns\\"\\n , _kind = Just CodeActionKind_QuickFix\\n , _diagnostics = Nothing -- TODO: I should probably encode here that it addresses the DsNonExhaustivePatterns diag\\n , _isPreferred = Nothing -- TODO: Just True?\\n , _disabled = Nothing\\n , _edit = Just $ diffText caps (verTxtDocId, old) new IncludeDeletions\\n , _command = Nothing\\n , _data_ = Nothing }]\\n (mapMaybe dsMsgToPmAlts -> []) -> error \\"wth?\\"\\n (mapMaybe dsMsgToPmAlts -> [_,_]) -> error \\"Two nested\\"\\n _ -> error \\"Oops, unexpected number of messages!\\"\\n\\n where\\n\\n dsMsgToPmAlts :: DsMessage -> Maybe [PmAltConApp]\\n dsMsgToPmAlts =\\n \\\\case DsNonExhaustivePatterns !(CaseAlt; LamAlt LamCase) _ _ ![ids] !nablas ->\\n trace (\\"length nablas = \\" ++ show (length nablas)) $\\n Just $ nablas >>=\\n (\\\\nabla -> let facts = ts_facts $ nabla_tm_st nabla\\n in case vi_pos <$> lookupUSDFM facts ids of\\n Just [x] -> [x]\\n Just [] -> error \\"Oops 0\\"\\n Just _ -> error \\"Oops 1\\"\\n _ -> error \\"Oops 2\\")\\n DsNonExhaustivePatterns (CaseAlt; LamAlt LamCase) _ _ _ _ -> error \\"Oops 3\\"\\n DsNonExhaustivePatterns _ _ _ ![_] _ -> error \\"Oops 4\\"\\n DsNonExhaustivePatterns _ _ _ _ _ -> error \\"Oops 5\\"\\n _ -> error \\"Oops Nothing\\"\\n\\n_DsMessage :: Fold GhcMessage DsMessage\\n_DsMessage = prism\' GhcDsMessage $ \\\\case\\n GhcDsMessage dsmsg -> Just dsmsg\\n _ -> Nothing\\n\\nmakeEditText :: Monad m => ParsedModule -> MissingPatterns -> Range -> MaybeT m (T.Text, T.Text)\\nmakeEditText pm missingPs range = do\\n\\n let ps = pm_parsed_source pm\\n !old = T.pack $ exactPrint ps\\n !ps\' = everywhere f ps\\n !new = T.pack $ exactPrint ps\'\\n\\n pure (old, new)\\n\\n where\\n f :: forall d. Data d => d -> d\\n f node = case typeOf node `eqTypeRep` typeRep @(HsExpr GhcPs) of\\n Nothing -> node\\n Just HRefl -> case node of\\n HsCase x@(EpAnnHsCase (EpTok caseTok) (EpTok ofTok)) e existingPs\\n | getHasLoc e `inRange` (traceWith ((\\"range = \\" ++) . show) range)\\n -- HsCase x e existingPs\\n -- | (traceWith ((\\"range = \\" ++) . show) range) `inSpan` getHasLoc e\\n -> HsCase x e $ addMissingPatterns (makeMatch <$> missingPs) existingPs\\n _ -> node\\n\\nisOnelined :: LocatedAn ann e -> LocatedAn ann e -> Bool\\nisOnelined = (==) `on` getStartLine\\n\\nisBraced :: EpAnn (AnnList a) -> Bool\\nisBraced (EpAnn _ (AnnList _ (ListBraces (EpTok (EpaSpan _)) _) _ _ _) _) = True\\nisBraced (EpAnn _ (AnnList _ ListNone _ _ _) _) = False\\nisBraced _ = error \\"Ooops\\"\\n\\ngetStartCol :: HasSrcSpan a => a -> Int\\ngetStartCol = srcSpanStartCol . realSrcSpan . getLoc\\n\\ngetStartLine :: HasSrcSpan a => a -> Int\\ngetStartLine = srcSpanStartLine . realSrcSpan . getLoc\\n\\nsetDP :: Int -> Int -> LocatedAn t a -> LocatedAn t a\\nsetDP = (flip setEntryDP .) . deltaPos\\n\\n-- Add semicolon, unless one is already present.\\naddSemiCol :: LocatedAn AnnListItem a -> LocatedAn AnnListItem a\\naddSemiCol (L l@(EpAnn _ ls _) e)\\n | none isSemiCol (lann_trailing ls)\\n = L (addTrailingAnnToA (AddSemiAnn (EpTok d0)) emptyComments l) e\\naddSemiCol l = l\\n\\naddMissingPatterns :: [LMatch GhcPs (LHsExpr GhcPs)] -> MatchGroup GhcPs (LHsExpr GhcPs) -> MatchGroup GhcPs (LHsExpr GhcPs)\\naddMissingPatterns missing mg@(MG { mg_alts = L l [] })\\n = mg { mg_alts = L l (fmt missing) }\\n where\\n fmt = if isBraced l\\n then zipWith3 (.)\\n (replicate (length missing - 1) addSemiCol ++ [id])\\n (repeat $ setDP 1 defaultIndent)\\n else zipWith ($)\\n (setDP 1 defaultIndent:repeat (setDP 1 0))\\n\\naddMissingPatterns missing mg@(MG { mg_alts = L altsLoc@(EpAnn _\\n (al_anchor &&& al_brackets -> (Just (getStartCol . getHasLoc -> foo), -- TODO: find a good name for foo\\n bracks))\\n _)\\n existings })\\n = mg { mg_alts = L altsLoc alts }\\n where\\n alts = let ptrnGrps = groupBy isOnelined existings\\n nGrps = length ptrnGrps\\n nLastGr = ptrnGrps -- length of the last group of \\u22651 patterns written on one line\\n & reverse\\n & take 1\\n & concat\\n & length\\n (indent, addSemiCols) = if isBraced altsLoc\\n then (foo - case bracks of\\n ListBraces (EpTok (getStartCol . getHasLoc -> col)) _ -> col\\n _ -> error \\"this is impossible\\"\\n ,zipWith ($) (replicate (nGrps - 1) id\\n ++ replicate (length missingGrps) (mapLast addSemiCol)\\n ++ [id]))\\n else (0, id)\\n missingGrps = chunksOf nLastGr missing\\n <&> \\\\case [] -> error \\"Impossible\\"\\n (m:ms) -> zipWith ($) (replicate (length ms) addSemiCol ++ [id])\\n (setDP 1 indent m:map (setDP 0 1) ms)\\n\\n in concat $ addSemiCols $ ptrnGrps ++ missingGrps\\n\\naddMissingPatterns _ _ = error \\"This should not be possible\\"\\n\\nmapLast :: (a -> a) -> [a] -> [a]\\nmapLast f [a] = [f a]\\nmapLast f (a:as) = a:mapLast f as\\nmapLast _ [] = error \\"nope\\"\\n\\nisSemiCol :: TrailingAnn -> Bool\\nisSemiCol (AddSemiAnn _) = True\\nisSemiCol _ = False\\n\\nmakeMatch :: PmAltConApp -> LMatch GhcPs (LHsExpr GhcPs)\\nmakeMatch PACA{ paca_con = PmAltConLike (RealDataCon ctor), .. }\\n = L noSrcSpanA\\n $ Match { m_ext = NoExtField\\n , m_ctxt = CaseAlt\\n , m_pats = L noSrcSpanA\\n $ [L noSrcSpanA ConPat { pat_con_ext = (Nothing, Nothing)\\n , pat_con = L noSrcSpanA $ nameRdrName $ getName ctor\\n , pat_args = PrefixCon $ map (const $ L noAnnSrcSpanDP1 $ WildPat NoExtField) paca_ids\\n }]\\n , m_grhss = GRHSs emptyComments\\n -- TODO: remember to respect unicode arrow of preceeding cases or the -XUnicodeSyntax (https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/unicode_syntax.html#extension-UnicodeSyntax)\\n -- TODO: check whether ga_sep default choice is really not printing anything.\\n (singleton $ L noSrcSpanA $ GRHS (EpAnn noSrcSpanA\\n (GrhsAnn{ ga_vbar = Nothing\\n , ga_sep = Right (EpUniTok d1 NormalSyntax) })\\n emptyComments) []\\n $ L noSrcSpanA $ HsHole $ HoleVar $ L noAnnSrcSpanDP1\\n $ unnamedHoleRdrName)\\n (EmptyLocalBinds NoExtField)\\n }\\nmakeMatch _ = error \\"boom\\"\\n\\ntype MissingPatterns = [PmAltConApp]\\n\\ndefaultIndent :: Int\\ndefaultIndent = 2\\n\\nnone :: Foldable t => (a -> Bool) -> t a -> Bool\\nnone = all . (not <$>)\\n"}],"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":10}}}'
127.0.0.1 - - [21/Jul/2026 12:38:06] "POST /event_notification HTTP/1.1" 200 2637
2026-07-21 12:38:06,808 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-top-binds"]},"message":"Defined but not used: \xe2\x80\x98inSpan\xe2\x80\x99","range":{"end":{"character":6,"line":88},"start":{"character":0,"line":88}},"severity":2,"source":"typecheck","tags":[1]}],"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":10}}'
127.0.0.1 - - [21/Jul/2026 12:38:06] "POST /receive_messages HTTP/1.1" 200 999
2026-07-21 12:38:07,758 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,758 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:38:07,759 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,759 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,760 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:38:07,760 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,761 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,761 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:38:07,761 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,761 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,761 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,762 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,762 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,762 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,762 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,762 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,762 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,770 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:07,771 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:07,771 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:38:07,771 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:38:07,771 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,771 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:38:07,772 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:38:07,772 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:38:07,772 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:38:07,772 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:38:07,772 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,772 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:38:07,772 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:38:07,772 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:38:07,771 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:07,773 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:07,773 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:07,773 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:07,773 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:38:07,773 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:38:07,773 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,774 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:38:07,774 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:38:07,774 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:38:07,774 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:38:07,774 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:38:07,774 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,774 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:38:07,774 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:38:07,774 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:38:07,774 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:07,774 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:07,775 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:07,776 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:07,776 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:07,775 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:07,776 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:38:07,776 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:38:07,776 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,776 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:38:07,776 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:38:07,776 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:38:07,776 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:38:07,776 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:38:07,776 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:07,776 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:38:07,777 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:38:07,777 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:38:07,777 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:07,777 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:08,078 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:08,079 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:08,080 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:08,090 - DEBUG - Event name: FileReadyToParse
2026-07-21 12:38:08,091 - INFO - Adding buffer identifiers for file: /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs
2026-07-21 12:38:08,095 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action Change
2026-07-21 12:38:08,096 - DEBUG - TX: Sending notification: b'Content-Length: 15832\r\n\r\n{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"text":"{-# LANGUAGE CPP #-}\\n{-# LANGUAGE DataKinds #-}\\n{-# LANGUAGE DuplicateRecordFields #-}\\n{-# LANGUAGE LambdaCase #-}\\n{-# LANGUAGE MultiWayIf #-}\\n{-# LANGUAGE OverloadedStrings #-}\\n{-# LANGUAGE PatternSynonyms #-}\\n{-# LANGUAGE ViewPatterns #-}\\n{-# LANGUAGE RecordWildCards #-}\\n{-# LANGUAGE ImpredicativeTypes #-}\\n{-# LANGUAGE TypeFamilies #-}\\n{-# LANGUAGE OrPatterns #-}\\n\\nmodule Ide.Plugin.CaseSplit\\n ( descriptor\\n , Log\\n ) where\\n\\nimport qualified Data.Text as T\\nimport Development.IDE.Core.PluginUtils (runActionE, useE, activeDiagnosticsInRange)\\nimport Ide.Plugin.Error\\n ( PluginError(PluginInternalError),\\n getNormalizedFilePathE,\\n handleMaybeM )\\nimport Ide.Types\\n ( defaultPluginDescriptor,\\n mkPluginHandler,\\n pluginGetClientCapabilities,\\n DynFlagsModifications(dynFlagsModifyGlobal),\\n PluginDescriptor(pluginModifyDynflags, pluginHandlers,\\n pluginPriority),\\n PluginId,\\n PluginMethodHandler )\\nimport qualified Language.LSP.Protocol.Message as LSP\\nimport Language.LSP.Protocol.Message (Method(Method_TextDocumentCodeAction))\\nimport qualified Development.IDE.Core.Shake as Shake\\nimport Language.LSP.Protocol.Types\\n ( Range,\\n CodeActionParams(_range, CodeActionParams, _textDocument),\\n CodeActionKind(CodeActionKind_QuickFix),\\n type (|?)(InR, InL),\\n CodeAction(_data_, CodeAction, _title, _kind, _diagnostics,\\n _isPreferred, _disabled, _edit, _command),\\n isSubrangeOf )\\nimport Development.IDE.Types.Diagnostics (_SomeStructuredMessage)\\nimport Development.IDE.GHC.Compat (GhcMessage (GhcDsMessage), HsMatchContext (CaseAlt), ConLike (RealDataCon), NamedThing (getName), HoleKind (HoleVar))\\nimport Development.IDE.GHC.Compat.Error (DsMessage(DsNonExhaustivePatterns), msgEnvelopeErrorL)\\nimport Data.Maybe (mapMaybe)\\nimport Control.Lens (Fold, prism\', (^?), (<&>), (^.))\\nimport GHC.HsToCore.Pmc.Solver.Types (PmAltConApp(..), PmAltCon(..), TmState (ts_facts), Nabla (nabla_tm_st), VarInfo (vi_pos))\\nimport GHC.Types.Unique.SDFM ( lookupUSDFM )\\nimport GHC.Types.Name.Reader (nameRdrName)\\nimport GHC (DynFlags(maxUncoveredPatterns), ParsedModule (pm_parsed_source), HasLoc (getHasLoc), realSrcSpan, EpToken (EpTok), EpaLocation\' (EpaSpan), AnnList (AnnList), AnnListBrackets (ListBraces, ListNone), LMatch)\\nimport Development.IDE.GHC.Compat (getLoc)\\nimport Control.Monad.IO.Class ( MonadIO(liftIO) )\\nimport Control.Monad.Trans.Maybe ( MaybeT(runMaybeT) )\\nimport Development.IDE.GHC.Compat.ExactPrint\\n ( exactPrint, d0, d1, noAnnSrcSpanDP1, setEntryDP )\\nimport Data.Data (Data())\\nimport Data.Generics.Schemes (everywhere)\\nimport Debug.Trace ( trace, traceWith )\\nimport Type.Reflection (eqTypeRep,\\n type (:~~:) (HRefl),\\n typeRep, typeOf)\\nimport GHC.Hs (GhcPs, deltaPos, unnamedHoleRdrName)\\nimport GHC.Types.SrcLoc (SrcSpan, GenLocated (L))\\nimport Language.Haskell.Syntax.Expr (HsExpr (HsCase, HsHole), Match (..), GRHSs (GRHSs), GRHS (GRHS))\\nimport Control.Monad.Trans (lift)\\nimport Ide.PluginUtils (diffText, WithDeletions (IncludeDeletions))\\nimport Development.IDE.Core.FileStore (getVersionedTextDoc)\\nimport qualified Language.LSP.Protocol.Lens as L\\nimport Language.Haskell.Syntax (MatchGroup (MG, mg_alts), LHsExpr, NoExtField (NoExtField), Pat (..), HsConDetails (PrefixCon), HsLocalBindsLR (EmptyLocalBinds))\\nimport GHC (EpAnn(EpAnn))\\nimport GHC.Parser.Annotation (noSrcSpanA, EpUniToken (EpUniTok), IsUnicodeSyntax (NormalSyntax), emptyComments, TrailingAnn (AddSemiAnn), addTrailingAnnToA, AnnList (al_brackets, al_anchor))\\nimport Data.List.NonEmpty.Extra (singleton)\\nimport Development.IDE.GHC.Compat.Core (GrhsAnn(..), HasSrcSpan, srcSpanStartLine, HsMatchContext (LamAlt), HsLamVariant (LamCase), LocatedAn, lann_trailing, AnnListItem, srcSpanStartCol, EpAnnHsCase (EpAnnHsCase))\\nimport Data.List.Extra (chunksOf)\\nimport Data.List (groupBy)\\nimport Data.Function (on, (&))\\nimport Control.Arrow ((&&&))\\nimport Development.IDE (Pretty (pretty), Recorder, WithPriority, IdeState (shakeExtras), FileDiagnostic (fdStructuredMessage), runAction, GetParsedModule (GetParsedModule), srcSpanToRange)\\nimport Ide.Logger ((<+>))\\n\\ninRange :: SrcSpan -> Range -> Bool\\ninRange s range = maybe False (`isSubrangeOf` range) (srcSpanToRange s)\\n\\ninSpan :: Range -> SrcSpan -> Bool\\ninSpan range s = maybe False (range `isSubrangeOf`) (srcSpanToRange s)\\n\\ndata Log\\n = LogShake Shake.Log\\n | LogWAEResponseError (LSP.TResponseError LSP.Method_WorkspaceApplyEdit)\\n | forall a. (Pretty a) => LogResolve a\\n\\ninstance Pretty Log where\\n pretty = \\\\case\\n LogShake logMsg -> pretty logMsg\\n LogWAEResponseError rspErr -> \\"RequestWorkspaceApplyEdit Failed with \\" <+> pretty rspErr\\n LogResolve msg -> pretty msg\\n\\ndescriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState\\ndescriptor _ plId = (defaultPluginDescriptor plId \\"Provides a code action to split case\\")\\n { pluginHandlers = mkPluginHandler LSP.SMethod_TextDocumentCodeAction suggestCaseSplitProvider\\n , pluginPriority = 1\\n , pluginModifyDynflags = mempty { dynFlagsModifyGlobal = \\\\dynFlags -> dynFlags { maxUncoveredPatterns = 30 } }\\n }\\n\\nsuggestCaseSplitProvider :: PluginMethodHandler IdeState \'Method_TextDocumentCodeAction\\nsuggestCaseSplitProvider\\n state\\n _\\n CodeActionParams{ _textDocument\\n , _range = range -- XXX: In the interactive usage, this is\\n -- the first _character of the token (?) the\\n -- cursor is on. In the test (at least with\\n -- the code as it is right now) it covers\\n -- the whole `case foo of` (until the char\\n -- past the f).\\n }\\n = do\\n nfp <- getNormalizedFilePathE $ _textDocument ^. L.uri\\n\\n verTxtDocId <- liftIO $ runAction \\"dfdaias\\" state $ getVersionedTextDoc _textDocument\\n\\n pm <- runActionE \\"not important, as long as unique\\" state\\n $ useE GetParsedModule nfp\\n\\n fdiags :: [FileDiagnostic] <- activeDiagnosticsInRange (shakeExtras state) nfp range\\n <&> \\\\case Nothing -> error \\"Oops, no diagnostics!\\"\\n Just fileDiags -> fileDiags\\n\\n case mapMaybe (\\\\d -> fdStructuredMessage d ^? _SomeStructuredMessage\\n . msgEnvelopeErrorL\\n . _DsMessage) fdiags of\\n (mapMaybe dsMsgToPmAlts -> [pmAltsConApp])\\n -- TODO: I need to filter for the diagnostic I want.\\n -- It might important to check the case of two nested `case`\\n -- expressions, both with non-exhaustive patterns.\\n -> do\\n\\n (old, new) <- handleMaybeM (PluginInternalError \\"Unable to makeEditText\\")\\n $ liftIO $ runMaybeT\\n $ makeEditText pm pmAltsConApp range\\n\\n caps <- lift pluginGetClientCapabilities\\n\\n pure $ InL [InR\\n $ CodeAction { _title = \\"Add placeholders for all missing patterns\\"\\n , _kind = Just CodeActionKind_QuickFix\\n , _diagnostics = Nothing -- TODO: I should probably encode here that it addresses the DsNonExhaustivePatterns diag\\n , _isPreferred = Nothing -- TODO: Just True?\\n , _disabled = Nothing\\n , _edit = Just $ diffText caps (verTxtDocId, old) new IncludeDeletions\\n , _command = Nothing\\n , _data_ = Nothing }]\\n (mapMaybe dsMsgToPmAlts -> []) -> error \\"wth?\\"\\n (mapMaybe dsMsgToPmAlts -> [_,_]) -> error \\"Two nested\\"\\n _ -> error \\"Oops, unexpected number of messages!\\"\\n\\n where\\n\\n dsMsgToPmAlts :: DsMessage -> Maybe [PmAltConApp]\\n dsMsgToPmAlts =\\n \\\\case DsNonExhaustivePatterns !(CaseAlt; LamAlt LamCase) _ _ ![ids] !nablas ->\\n trace (\\"length nablas = \\" ++ show (length nablas)) $\\n Just $ nablas >>=\\n (\\\\nabla -> let facts = ts_facts $ nabla_tm_st nabla\\n in case vi_pos <$> lookupUSDFM facts ids of\\n Just [x] -> [x]\\n Just [] -> error \\"Oops 0\\"\\n Just _ -> error \\"Oops 1\\"\\n _ -> error \\"Oops 2\\")\\n DsNonExhaustivePatterns (CaseAlt; LamAlt LamCase) _ _ _ _ -> error \\"Oops 3\\"\\n DsNonExhaustivePatterns _ _ _ ![_] _ -> error \\"Oops 4\\"\\n DsNonExhaustivePatterns _ _ _ _ _ -> error \\"Oops 5\\"\\n _ -> error \\"Oops Nothing\\"\\n\\n_DsMessage :: Fold GhcMessage DsMessage\\n_DsMessage = prism\' GhcDsMessage $ \\\\case\\n GhcDsMessage dsmsg -> Just dsmsg\\n _ -> Nothing\\n\\nmakeEditText :: Monad m => ParsedModule -> MissingPatterns -> Range -> MaybeT m (T.Text, T.Text)\\nmakeEditText pm missingPs range = do\\n\\n let ps = pm_parsed_source pm\\n !old = T.pack $ exactPrint ps\\n !ps\' = everywhere f ps\\n !new = T.pack $ exactPrint ps\'\\n\\n pure (old, new)\\n\\n where\\n f :: forall d. Data d => d -> d\\n f node = case typeOf node `eqTypeRep` typeRep @(HsExpr GhcPs) of\\n Nothing -> node\\n Just HRefl -> case node of\\n HsCase x@(EpAnnHsCase (EpTok caseTok) (EpTok ofTok)) e existingPs\\n | getHasLoc e `inRange` (traceWith ((\\"range = \\" ++) . show) range)\\n -- HsCase x e existingPs\\n -- | (traceWith ((\\"range = \\" ++) . show) range) `inSpan` getHasLoc e\\n -> HsCase x e $ addMissingPatterns (makeMatch <$> missingPs) existingPs\\n _ -> node\\n\\nisOnelined :: LocatedAn ann e -> LocatedAn ann e -> Bool\\nisOnelined = (==) `on` getStartLine\\n\\nisBraced :: EpAnn (AnnList a) -> Bool\\nisBraced (EpAnn _ (AnnList _ (ListBraces (EpTok (EpaSpan _)) _) _ _ _) _) = True\\nisBraced (EpAnn _ (AnnList _ ListNone _ _ _) _) = False\\nisBraced _ = error \\"Ooops\\"\\n\\ngetStartCol :: HasSrcSpan a => a -> Int\\ngetStartCol = srcSpanStartCol . realSrcSpan . getLoc\\n\\ngetStartLine :: HasSrcSpan a => a -> Int\\ngetStartLine = srcSpanStartLine . realSrcSpan . getLoc\\n\\nsetDP :: Int -> Int -> LocatedAn t a -> LocatedAn t a\\nsetDP = (flip setEntryDP .) . deltaPos\\n\\n-- Add semicolon, unless one is already present.\\naddSemiCol :: LocatedAn AnnListItem a -> LocatedAn AnnListItem a\\naddSemiCol (L l@(EpAnn _ ls _) e)\\n | none isSemiCol (lann_trailing ls)\\n = L (addTrailingAnnToA (AddSemiAnn (EpTok d0)) emptyComments l) e\\naddSemiCol l = l\\n\\naddMissingPatterns :: [LMatch GhcPs (LHsExpr GhcPs)] -> MatchGroup GhcPs (LHsExpr GhcPs) -> MatchGroup GhcPs (LHsExpr GhcPs)\\naddMissingPatterns missing mg@(MG { mg_alts = L l [] })\\n = mg { mg_alts = L l (fmt missing) }\\n where\\n fmt = if isBraced l\\n then zipWith3 (.)\\n (replicate (length missing - 1) addSemiCol ++ [id])\\n (repeat $ setDP 1 defaultIndent)\\n else zipWith ($)\\n (setDP 1 defaultIndent:repeat (setDP 1 0))\\n\\naddMissingPatterns missing mg@(MG { mg_alts = L altsLoc@(EpAnn _\\n (al_anchor &&& al_brackets -> (Just (getStartCol . getHasLoc -> foo), -- TODO: find a good name for foo\\n bracks))\\n _)\\n existings })\\n = mg { mg_alts = L altsLoc alts }\\n where\\n alts = let ptrnGrps = groupBy isOnelined existings\\n nGrps = length ptrnGrps\\n nLastGr = ptrnGrps -- length of the last group of \\u22651 patterns written on one line\\n & reverse\\n & take 1\\n & concat\\n & length\\n (indent, addSemiCols) = if isBraced altsLoc\\n then (foo - case bracks of\\n ListBraces (EpTok (getStartCol . getHasLoc -> col)) _ -> col\\n _ -> error \\"this is impossible\\"\\n ,zipWith ($) (replicate (nGrps - 1) id\\n ++ replicate (length missingGrps) (mapLast addSemiCol)\\n ++ [id]))\\n else (0, id)\\n missingGrps = chunksOf nLastGr missing\\n <&> \\\\case [] -> error \\"Impossible\\"\\n (m:ms) -> zipWith ($) (replicate (length ms) addSemiCol ++ [id])\\n (setDP 1 indent m:map (setDP 0 1) ms)\\n\\n in concat $ addSemiCols $ ptrnGrps ++ missingGrps\\n\\naddMissingPatterns _ _ = error \\"This should not be possible\\"\\n\\nmapLast :: (a -> a) -> [a] -> [a]\\nmapLast f [a] = [f a]\\nmapLast f (a:as) = a:mapLast f as\\nmapLast _ [] = error \\"nope\\"\\n\\nisSemiCol :: TrailingAnn -> Bool\\nisSemiCol (AddSemiAnn _) = True\\nisSemiCol _ = False\\n\\nmakeMatch :: PmAltConApp -> LMatch GhcPs (LHsExpr GhcPs)\\nmakeMatch PACA{ paca_con = PmAltConLike (RealDataCon ctor), .. }\\n = L noSrcSpanA\\n $ Match { m_ext = NoExtField\\n , m_ctxt = CaseAlt\\n , m_pats = L noSrcSpanA\\n $ [L noSrcSpanA ConPat { pat_con_ext = (Nothing, Nothing)\\n , pat_con = L noSrcSpanA $ nameRdrName $ getName ctor\\n , pat_args = PrefixCon $ map (const $ L noAnnSrcSpanDP1 $ WildPat NoExtField) paca_ids\\n }]\\n , m_grhss = GRHSs emptyComments\\n -- TODO: remember to respect unicode arrow of preceeding cases or the -XUnicodeSyntax (https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/unicode_syntax.html#extension-UnicodeSyntax)\\n -- TODO: check whether ga_sep default choice is really not printing anything.\\n (singleton $ L noSrcSpanA $ GRHS (EpAnn noSrcSpanA\\n (GrhsAnn{ ga_vbar = Nothing\\n , ga_sep = Right (EpUniTok d1 NormalSyntax) })\\n emptyComments) []\\n $ L noSrcSpanA $ HsHole $ HoleVar $ L noAnnSrcSpanDP1\\n $ unnamedHoleRdrName)\\n (EmptyLocalBinds NoExtField)\\n }\\nmakeMatch _ = error \\"boom\\"\\n\\ntype MissingPatterns = [PmAltConApp]\\n\\ndefaultIndent :: Int\\ndefaultIndent = 2\\n\\nnone :: Foldable t => (a -> Bool) -> t a -> Bool\\nnone = all . (not <$>)\\n"}],"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":11}}}'
127.0.0.1 - - [21/Jul/2026 12:38:08] "POST /event_notification HTTP/1.1" 200 873
2026-07-21 12:38:08,180 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-top-binds"]},"message":"Defined but not used: \xe2\x80\x98inSpan\xe2\x80\x99","range":{"end":{"character":6,"line":87},"start":{"character":0,"line":87}},"severity":2,"source":"typecheck","tags":[1]},{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \xe2\x80\x98caseTok\xe2\x80\x99","range":{"end":{"character":54,"line":197},"start":{"character":47,"line":197}},"severity":2,"source":"typecheck","tags":[1]},{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \xe2\x80\x98ofTok\xe2\x80\x99","range":{"end":{"character":68,"line":197},"start":{"character":63,"line":197}},"severity":2,"source":"typecheck","tags":[1]}],"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":11}}'
127.0.0.1 - - [21/Jul/2026 12:38:08] "POST /receive_messages HTTP/1.1" 200 2763
2026-07-21 12:38:09,545 - INFO - Found executeCommandProvider support for command ExecuteCommand in haskell-language-server
2026-07-21 12:38:09,545 - INFO - Found codeActionProvider support for command FixIt in haskell-language-server
2026-07-21 12:38:09,545 - INFO - Found definitionProvider support for command GoToDefinition in haskell-language-server
2026-07-21 12:38:09,545 - INFO - Found definitionProvider support for command GoToDeclaration in haskell-language-server
2026-07-21 12:38:09,545 - INFO - Found definitionProvider support for command GoTo in haskell-language-server
2026-07-21 12:38:09,545 - INFO - Found typeDefinitionProvider support for command GoToType in haskell-language-server
2026-07-21 12:38:09,546 - INFO - Found implementationProvider support for command GoToImplementation in haskell-language-server
2026-07-21 12:38:09,546 - INFO - Found referencesProvider support for command GoToReferences in haskell-language-server
2026-07-21 12:38:09,546 - INFO - Found renameProvider support for command RefactorRename in haskell-language-server
2026-07-21 12:38:09,546 - INFO - Found documentFormattingProvider support for command Format in haskell-language-server
2026-07-21 12:38:09,546 - INFO - Found workspaceSymbolProvider support for command GoToSymbol in haskell-language-server
2026-07-21 12:38:09,546 - INFO - Found documentSymbolProvider support for command GoToDocumentOutline in haskell-language-server
2026-07-21 12:38:09,546 - INFO - Always supporting StopServer for haskell-language-server
2026-07-21 12:38:09,546 - INFO - Always supporting RestartServer for haskell-language-server
2026-07-21 12:38:09,546 - INFO - Always supporting GoToCallees for haskell-language-server
2026-07-21 12:38:09,546 - INFO - Always supporting GoToCallers for haskell-language-server
2026-07-21 12:38:09,546 - INFO - Always supporting CallHierarchy for haskell-language-server
2026-07-21 12:38:09,546 - INFO - Always supporting ResolveCallHierarchyItem for haskell-language-server
2026-07-21 12:38:09,547 - INFO - Always supporting GetHover for haskell-language-server
2026-07-21 12:38:09,547 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action None
2026-07-21 12:38:09,548 - DEBUG - TX: Sending message: b'Content-Length: 628\r\n\r\n{"id":13,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \\u2018caseTok\\u2019","range":{"end":{"character":54,"line":197},"start":{"character":47,"line":197}},"severity":2,"source":"typecheck","tags":[1]}]},"range":{"end":{"character":48,"line":197},"start":{"character":47,"line":197}},"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs"}}}'
2026-07-21 12:38:09,575 - DEBUG - RX: Received message: b'{"id":13,"jsonrpc":"2.0","result":[{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}]}'
2026-07-21 12:38:09,575 - DEBUG - TX: Sending message: b'Content-Length: 406\r\n\r\n{"id":14,"jsonrpc":"2.0","method":"codeAction/resolve","params":{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}}'
2026-07-21 12:38:09,576 - DEBUG - RX: Received message: b'{"id":14,"jsonrpc":"2.0","result":{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}}'
127.0.0.1 - - [21/Jul/2026 12:38:09] "POST /run_completer_command HTTP/1.1" 200 623
2026-07-21 12:38:09,577 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:09,577 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:09,577 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:09,577 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:09,577 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:09,577 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:09,588 - DEBUG - Event name: FileReadyToParse
2026-07-21 12:38:09,588 - INFO - Adding buffer identifiers for file: /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs
2026-07-21 12:38:09,589 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action Change
2026-07-21 12:38:09,589 - DEBUG - TX: Sending notification: b'Content-Length: 15873\r\n\r\n{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"text":"{-# LANGUAGE CPP #-}\\n{-# LANGUAGE DataKinds #-}\\n{-# LANGUAGE DuplicateRecordFields #-}\\n{-# LANGUAGE LambdaCase #-}\\n{-# LANGUAGE MultiWayIf #-}\\n{-# LANGUAGE OverloadedStrings #-}\\n{-# LANGUAGE PatternSynonyms #-}\\n{-# LANGUAGE ViewPatterns #-}\\n{-# LANGUAGE RecordWildCards #-}\\n{-# LANGUAGE ImpredicativeTypes #-}\\n{-# LANGUAGE TypeFamilies #-}\\n{-# LANGUAGE OrPatterns #-}\\n{-# OPTIONS_GHC -Wno-unused-matches #-}\\n\\nmodule Ide.Plugin.CaseSplit\\n ( descriptor\\n , Log\\n ) where\\n\\nimport qualified Data.Text as T\\nimport Development.IDE.Core.PluginUtils (runActionE, useE, activeDiagnosticsInRange)\\nimport Ide.Plugin.Error\\n ( PluginError(PluginInternalError),\\n getNormalizedFilePathE,\\n handleMaybeM )\\nimport Ide.Types\\n ( defaultPluginDescriptor,\\n mkPluginHandler,\\n pluginGetClientCapabilities,\\n DynFlagsModifications(dynFlagsModifyGlobal),\\n PluginDescriptor(pluginModifyDynflags, pluginHandlers,\\n pluginPriority),\\n PluginId,\\n PluginMethodHandler )\\nimport qualified Language.LSP.Protocol.Message as LSP\\nimport Language.LSP.Protocol.Message (Method(Method_TextDocumentCodeAction))\\nimport qualified Development.IDE.Core.Shake as Shake\\nimport Language.LSP.Protocol.Types\\n ( Range,\\n CodeActionParams(_range, CodeActionParams, _textDocument),\\n CodeActionKind(CodeActionKind_QuickFix),\\n type (|?)(InR, InL),\\n CodeAction(_data_, CodeAction, _title, _kind, _diagnostics,\\n _isPreferred, _disabled, _edit, _command),\\n isSubrangeOf )\\nimport Development.IDE.Types.Diagnostics (_SomeStructuredMessage)\\nimport Development.IDE.GHC.Compat (GhcMessage (GhcDsMessage), HsMatchContext (CaseAlt), ConLike (RealDataCon), NamedThing (getName), HoleKind (HoleVar))\\nimport Development.IDE.GHC.Compat.Error (DsMessage(DsNonExhaustivePatterns), msgEnvelopeErrorL)\\nimport Data.Maybe (mapMaybe)\\nimport Control.Lens (Fold, prism\', (^?), (<&>), (^.))\\nimport GHC.HsToCore.Pmc.Solver.Types (PmAltConApp(..), PmAltCon(..), TmState (ts_facts), Nabla (nabla_tm_st), VarInfo (vi_pos))\\nimport GHC.Types.Unique.SDFM ( lookupUSDFM )\\nimport GHC.Types.Name.Reader (nameRdrName)\\nimport GHC (DynFlags(maxUncoveredPatterns), ParsedModule (pm_parsed_source), HasLoc (getHasLoc), realSrcSpan, EpToken (EpTok), EpaLocation\' (EpaSpan), AnnList (AnnList), AnnListBrackets (ListBraces, ListNone), LMatch)\\nimport Development.IDE.GHC.Compat (getLoc)\\nimport Control.Monad.IO.Class ( MonadIO(liftIO) )\\nimport Control.Monad.Trans.Maybe ( MaybeT(runMaybeT) )\\nimport Development.IDE.GHC.Compat.ExactPrint\\n ( exactPrint, d0, d1, noAnnSrcSpanDP1, setEntryDP )\\nimport Data.Data (Data())\\nimport Data.Generics.Schemes (everywhere)\\nimport Debug.Trace ( trace, traceWith )\\nimport Type.Reflection (eqTypeRep,\\n type (:~~:) (HRefl),\\n typeRep, typeOf)\\nimport GHC.Hs (GhcPs, deltaPos, unnamedHoleRdrName)\\nimport GHC.Types.SrcLoc (SrcSpan, GenLocated (L))\\nimport Language.Haskell.Syntax.Expr (HsExpr (HsCase, HsHole), Match (..), GRHSs (GRHSs), GRHS (GRHS))\\nimport Control.Monad.Trans (lift)\\nimport Ide.PluginUtils (diffText, WithDeletions (IncludeDeletions))\\nimport Development.IDE.Core.FileStore (getVersionedTextDoc)\\nimport qualified Language.LSP.Protocol.Lens as L\\nimport Language.Haskell.Syntax (MatchGroup (MG, mg_alts), LHsExpr, NoExtField (NoExtField), Pat (..), HsConDetails (PrefixCon), HsLocalBindsLR (EmptyLocalBinds))\\nimport GHC (EpAnn(EpAnn))\\nimport GHC.Parser.Annotation (noSrcSpanA, EpUniToken (EpUniTok), IsUnicodeSyntax (NormalSyntax), emptyComments, TrailingAnn (AddSemiAnn), addTrailingAnnToA, AnnList (al_brackets, al_anchor))\\nimport Data.List.NonEmpty.Extra (singleton)\\nimport Development.IDE.GHC.Compat.Core (GrhsAnn(..), HasSrcSpan, srcSpanStartLine, HsMatchContext (LamAlt), HsLamVariant (LamCase), LocatedAn, lann_trailing, AnnListItem, srcSpanStartCol, EpAnnHsCase (EpAnnHsCase))\\nimport Data.List.Extra (chunksOf)\\nimport Data.List (groupBy)\\nimport Data.Function (on, (&))\\nimport Control.Arrow ((&&&))\\nimport Development.IDE (Pretty (pretty), Recorder, WithPriority, IdeState (shakeExtras), FileDiagnostic (fdStructuredMessage), runAction, GetParsedModule (GetParsedModule), srcSpanToRange)\\nimport Ide.Logger ((<+>))\\n\\ninRange :: SrcSpan -> Range -> Bool\\ninRange s range = maybe False (`isSubrangeOf` range) (srcSpanToRange s)\\n\\ninSpan :: Range -> SrcSpan -> Bool\\ninSpan range s = maybe False (range `isSubrangeOf`) (srcSpanToRange s)\\n\\ndata Log\\n = LogShake Shake.Log\\n | LogWAEResponseError (LSP.TResponseError LSP.Method_WorkspaceApplyEdit)\\n | forall a. (Pretty a) => LogResolve a\\n\\ninstance Pretty Log where\\n pretty = \\\\case\\n LogShake logMsg -> pretty logMsg\\n LogWAEResponseError rspErr -> \\"RequestWorkspaceApplyEdit Failed with \\" <+> pretty rspErr\\n LogResolve msg -> pretty msg\\n\\ndescriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState\\ndescriptor _ plId = (defaultPluginDescriptor plId \\"Provides a code action to split case\\")\\n { pluginHandlers = mkPluginHandler LSP.SMethod_TextDocumentCodeAction suggestCaseSplitProvider\\n , pluginPriority = 1\\n , pluginModifyDynflags = mempty { dynFlagsModifyGlobal = \\\\dynFlags -> dynFlags { maxUncoveredPatterns = 30 } }\\n }\\n\\nsuggestCaseSplitProvider :: PluginMethodHandler IdeState \'Method_TextDocumentCodeAction\\nsuggestCaseSplitProvider\\n state\\n _\\n CodeActionParams{ _textDocument\\n , _range = range -- XXX: In the interactive usage, this is\\n -- the first _character of the token (?) the\\n -- cursor is on. In the test (at least with\\n -- the code as it is right now) it covers\\n -- the whole `case foo of` (until the char\\n -- past the f).\\n }\\n = do\\n nfp <- getNormalizedFilePathE $ _textDocument ^. L.uri\\n\\n verTxtDocId <- liftIO $ runAction \\"dfdaias\\" state $ getVersionedTextDoc _textDocument\\n\\n pm <- runActionE \\"not important, as long as unique\\" state\\n $ useE GetParsedModule nfp\\n\\n fdiags :: [FileDiagnostic] <- activeDiagnosticsInRange (shakeExtras state) nfp range\\n <&> \\\\case Nothing -> error \\"Oops, no diagnostics!\\"\\n Just fileDiags -> fileDiags\\n\\n case mapMaybe (\\\\d -> fdStructuredMessage d ^? _SomeStructuredMessage\\n . msgEnvelopeErrorL\\n . _DsMessage) fdiags of\\n (mapMaybe dsMsgToPmAlts -> [pmAltsConApp])\\n -- TODO: I need to filter for the diagnostic I want.\\n -- It might important to check the case of two nested `case`\\n -- expressions, both with non-exhaustive patterns.\\n -> do\\n\\n (old, new) <- handleMaybeM (PluginInternalError \\"Unable to makeEditText\\")\\n $ liftIO $ runMaybeT\\n $ makeEditText pm pmAltsConApp range\\n\\n caps <- lift pluginGetClientCapabilities\\n\\n pure $ InL [InR\\n $ CodeAction { _title = \\"Add placeholders for all missing patterns\\"\\n , _kind = Just CodeActionKind_QuickFix\\n , _diagnostics = Nothing -- TODO: I should probably encode here that it addresses the DsNonExhaustivePatterns diag\\n , _isPreferred = Nothing -- TODO: Just True?\\n , _disabled = Nothing\\n , _edit = Just $ diffText caps (verTxtDocId, old) new IncludeDeletions\\n , _command = Nothing\\n , _data_ = Nothing }]\\n (mapMaybe dsMsgToPmAlts -> []) -> error \\"wth?\\"\\n (mapMaybe dsMsgToPmAlts -> [_,_]) -> error \\"Two nested\\"\\n _ -> error \\"Oops, unexpected number of messages!\\"\\n\\n where\\n\\n dsMsgToPmAlts :: DsMessage -> Maybe [PmAltConApp]\\n dsMsgToPmAlts =\\n \\\\case DsNonExhaustivePatterns !(CaseAlt; LamAlt LamCase) _ _ ![ids] !nablas ->\\n trace (\\"length nablas = \\" ++ show (length nablas)) $\\n Just $ nablas >>=\\n (\\\\nabla -> let facts = ts_facts $ nabla_tm_st nabla\\n in case vi_pos <$> lookupUSDFM facts ids of\\n Just [x] -> [x]\\n Just [] -> error \\"Oops 0\\"\\n Just _ -> error \\"Oops 1\\"\\n _ -> error \\"Oops 2\\")\\n DsNonExhaustivePatterns (CaseAlt; LamAlt LamCase) _ _ _ _ -> error \\"Oops 3\\"\\n DsNonExhaustivePatterns _ _ _ ![_] _ -> error \\"Oops 4\\"\\n DsNonExhaustivePatterns _ _ _ _ _ -> error \\"Oops 5\\"\\n _ -> error \\"Oops Nothing\\"\\n\\n_DsMessage :: Fold GhcMessage DsMessage\\n_DsMessage = prism\' GhcDsMessage $ \\\\case\\n GhcDsMessage dsmsg -> Just dsmsg\\n _ -> Nothing\\n\\nmakeEditText :: Monad m => ParsedModule -> MissingPatterns -> Range -> MaybeT m (T.Text, T.Text)\\nmakeEditText pm missingPs range = do\\n\\n let ps = pm_parsed_source pm\\n !old = T.pack $ exactPrint ps\\n !ps\' = everywhere f ps\\n !new = T.pack $ exactPrint ps\'\\n\\n pure (old, new)\\n\\n where\\n f :: forall d. Data d => d -> d\\n f node = case typeOf node `eqTypeRep` typeRep @(HsExpr GhcPs) of\\n Nothing -> node\\n Just HRefl -> case node of\\n HsCase x@(EpAnnHsCase (EpTok caseTok) (EpTok ofTok)) e existingPs\\n | getHasLoc e `inRange` (traceWith ((\\"range = \\" ++) . show) range)\\n -- HsCase x e existingPs\\n -- | (traceWith ((\\"range = \\" ++) . show) range) `inSpan` getHasLoc e\\n -> HsCase x e $ addMissingPatterns (makeMatch <$> missingPs) existingPs\\n _ -> node\\n\\nisOnelined :: LocatedAn ann e -> LocatedAn ann e -> Bool\\nisOnelined = (==) `on` getStartLine\\n\\nisBraced :: EpAnn (AnnList a) -> Bool\\nisBraced (EpAnn _ (AnnList _ (ListBraces (EpTok (EpaSpan _)) _) _ _ _) _) = True\\nisBraced (EpAnn _ (AnnList _ ListNone _ _ _) _) = False\\nisBraced _ = error \\"Ooops\\"\\n\\ngetStartCol :: HasSrcSpan a => a -> Int\\ngetStartCol = srcSpanStartCol . realSrcSpan . getLoc\\n\\ngetStartLine :: HasSrcSpan a => a -> Int\\ngetStartLine = srcSpanStartLine . realSrcSpan . getLoc\\n\\nsetDP :: Int -> Int -> LocatedAn t a -> LocatedAn t a\\nsetDP = (flip setEntryDP .) . deltaPos\\n\\n-- Add semicolon, unless one is already present.\\naddSemiCol :: LocatedAn AnnListItem a -> LocatedAn AnnListItem a\\naddSemiCol (L l@(EpAnn _ ls _) e)\\n | none isSemiCol (lann_trailing ls)\\n = L (addTrailingAnnToA (AddSemiAnn (EpTok d0)) emptyComments l) e\\naddSemiCol l = l\\n\\naddMissingPatterns :: [LMatch GhcPs (LHsExpr GhcPs)] -> MatchGroup GhcPs (LHsExpr GhcPs) -> MatchGroup GhcPs (LHsExpr GhcPs)\\naddMissingPatterns missing mg@(MG { mg_alts = L l [] })\\n = mg { mg_alts = L l (fmt missing) }\\n where\\n fmt = if isBraced l\\n then zipWith3 (.)\\n (replicate (length missing - 1) addSemiCol ++ [id])\\n (repeat $ setDP 1 defaultIndent)\\n else zipWith ($)\\n (setDP 1 defaultIndent:repeat (setDP 1 0))\\n\\naddMissingPatterns missing mg@(MG { mg_alts = L altsLoc@(EpAnn _\\n (al_anchor &&& al_brackets -> (Just (getStartCol . getHasLoc -> foo), -- TODO: find a good name for foo\\n bracks))\\n _)\\n existings })\\n = mg { mg_alts = L altsLoc alts }\\n where\\n alts = let ptrnGrps = groupBy isOnelined existings\\n nGrps = length ptrnGrps\\n nLastGr = ptrnGrps -- length of the last group of \\u22651 patterns written on one line\\n & reverse\\n & take 1\\n & concat\\n & length\\n (indent, addSemiCols) = if isBraced altsLoc\\n then (foo - case bracks of\\n ListBraces (EpTok (getStartCol . getHasLoc -> col)) _ -> col\\n _ -> error \\"this is impossible\\"\\n ,zipWith ($) (replicate (nGrps - 1) id\\n ++ replicate (length missingGrps) (mapLast addSemiCol)\\n ++ [id]))\\n else (0, id)\\n missingGrps = chunksOf nLastGr missing\\n <&> \\\\case [] -> error \\"Impossible\\"\\n (m:ms) -> zipWith ($) (replicate (length ms) addSemiCol ++ [id])\\n (setDP 1 indent m:map (setDP 0 1) ms)\\n\\n in concat $ addSemiCols $ ptrnGrps ++ missingGrps\\n\\naddMissingPatterns _ _ = error \\"This should not be possible\\"\\n\\nmapLast :: (a -> a) -> [a] -> [a]\\nmapLast f [a] = [f a]\\nmapLast f (a:as) = a:mapLast f as\\nmapLast _ [] = error \\"nope\\"\\n\\nisSemiCol :: TrailingAnn -> Bool\\nisSemiCol (AddSemiAnn _) = True\\nisSemiCol _ = False\\n\\nmakeMatch :: PmAltConApp -> LMatch GhcPs (LHsExpr GhcPs)\\nmakeMatch PACA{ paca_con = PmAltConLike (RealDataCon ctor), .. }\\n = L noSrcSpanA\\n $ Match { m_ext = NoExtField\\n , m_ctxt = CaseAlt\\n , m_pats = L noSrcSpanA\\n $ [L noSrcSpanA ConPat { pat_con_ext = (Nothing, Nothing)\\n , pat_con = L noSrcSpanA $ nameRdrName $ getName ctor\\n , pat_args = PrefixCon $ map (const $ L noAnnSrcSpanDP1 $ WildPat NoExtField) paca_ids\\n }]\\n , m_grhss = GRHSs emptyComments\\n -- TODO: remember to respect unicode arrow of preceeding cases or the -XUnicodeSyntax (https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/unicode_syntax.html#extension-UnicodeSyntax)\\n -- TODO: check whether ga_sep default choice is really not printing anything.\\n (singleton $ L noSrcSpanA $ GRHS (EpAnn noSrcSpanA\\n (GrhsAnn{ ga_vbar = Nothing\\n , ga_sep = Right (EpUniTok d1 NormalSyntax) })\\n emptyComments) []\\n $ L noSrcSpanA $ HsHole $ HoleVar $ L noAnnSrcSpanDP1\\n $ unnamedHoleRdrName)\\n (EmptyLocalBinds NoExtField)\\n }\\nmakeMatch _ = error \\"boom\\"\\n\\ntype MissingPatterns = [PmAltConApp]\\n\\ndefaultIndent :: Int\\ndefaultIndent = 2\\n\\nnone :: Foldable t => (a -> Bool) -> t a -> Bool\\nnone = all . (not <$>)\\n"}],"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":12}}}'
127.0.0.1 - - [21/Jul/2026 12:38:09] "POST /event_notification HTTP/1.1" 200 2637
2026-07-21 12:38:09,668 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-top-binds"]},"message":"Defined but not used: \xe2\x80\x98inSpan\xe2\x80\x99","range":{"end":{"character":6,"line":88},"start":{"character":0,"line":88}},"severity":2,"source":"typecheck","tags":[1]}],"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":12}}'
127.0.0.1 - - [21/Jul/2026 12:38:09] "POST /receive_messages HTTP/1.1" 200 999
2026-07-21 12:38:10,174 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:10,175 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:10,176 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:10,185 - DEBUG - Event name: FileReadyToParse
2026-07-21 12:38:10,185 - INFO - Adding buffer identifiers for file: /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs
2026-07-21 12:38:10,190 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action Change
2026-07-21 12:38:10,191 - DEBUG - TX: Sending notification: b'Content-Length: 15832\r\n\r\n{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"text":"{-# LANGUAGE CPP #-}\\n{-# LANGUAGE DataKinds #-}\\n{-# LANGUAGE DuplicateRecordFields #-}\\n{-# LANGUAGE LambdaCase #-}\\n{-# LANGUAGE MultiWayIf #-}\\n{-# LANGUAGE OverloadedStrings #-}\\n{-# LANGUAGE PatternSynonyms #-}\\n{-# LANGUAGE ViewPatterns #-}\\n{-# LANGUAGE RecordWildCards #-}\\n{-# LANGUAGE ImpredicativeTypes #-}\\n{-# LANGUAGE TypeFamilies #-}\\n{-# LANGUAGE OrPatterns #-}\\n\\nmodule Ide.Plugin.CaseSplit\\n ( descriptor\\n , Log\\n ) where\\n\\nimport qualified Data.Text as T\\nimport Development.IDE.Core.PluginUtils (runActionE, useE, activeDiagnosticsInRange)\\nimport Ide.Plugin.Error\\n ( PluginError(PluginInternalError),\\n getNormalizedFilePathE,\\n handleMaybeM )\\nimport Ide.Types\\n ( defaultPluginDescriptor,\\n mkPluginHandler,\\n pluginGetClientCapabilities,\\n DynFlagsModifications(dynFlagsModifyGlobal),\\n PluginDescriptor(pluginModifyDynflags, pluginHandlers,\\n pluginPriority),\\n PluginId,\\n PluginMethodHandler )\\nimport qualified Language.LSP.Protocol.Message as LSP\\nimport Language.LSP.Protocol.Message (Method(Method_TextDocumentCodeAction))\\nimport qualified Development.IDE.Core.Shake as Shake\\nimport Language.LSP.Protocol.Types\\n ( Range,\\n CodeActionParams(_range, CodeActionParams, _textDocument),\\n CodeActionKind(CodeActionKind_QuickFix),\\n type (|?)(InR, InL),\\n CodeAction(_data_, CodeAction, _title, _kind, _diagnostics,\\n _isPreferred, _disabled, _edit, _command),\\n isSubrangeOf )\\nimport Development.IDE.Types.Diagnostics (_SomeStructuredMessage)\\nimport Development.IDE.GHC.Compat (GhcMessage (GhcDsMessage), HsMatchContext (CaseAlt), ConLike (RealDataCon), NamedThing (getName), HoleKind (HoleVar))\\nimport Development.IDE.GHC.Compat.Error (DsMessage(DsNonExhaustivePatterns), msgEnvelopeErrorL)\\nimport Data.Maybe (mapMaybe)\\nimport Control.Lens (Fold, prism\', (^?), (<&>), (^.))\\nimport GHC.HsToCore.Pmc.Solver.Types (PmAltConApp(..), PmAltCon(..), TmState (ts_facts), Nabla (nabla_tm_st), VarInfo (vi_pos))\\nimport GHC.Types.Unique.SDFM ( lookupUSDFM )\\nimport GHC.Types.Name.Reader (nameRdrName)\\nimport GHC (DynFlags(maxUncoveredPatterns), ParsedModule (pm_parsed_source), HasLoc (getHasLoc), realSrcSpan, EpToken (EpTok), EpaLocation\' (EpaSpan), AnnList (AnnList), AnnListBrackets (ListBraces, ListNone), LMatch)\\nimport Development.IDE.GHC.Compat (getLoc)\\nimport Control.Monad.IO.Class ( MonadIO(liftIO) )\\nimport Control.Monad.Trans.Maybe ( MaybeT(runMaybeT) )\\nimport Development.IDE.GHC.Compat.ExactPrint\\n ( exactPrint, d0, d1, noAnnSrcSpanDP1, setEntryDP )\\nimport Data.Data (Data())\\nimport Data.Generics.Schemes (everywhere)\\nimport Debug.Trace ( trace, traceWith )\\nimport Type.Reflection (eqTypeRep,\\n type (:~~:) (HRefl),\\n typeRep, typeOf)\\nimport GHC.Hs (GhcPs, deltaPos, unnamedHoleRdrName)\\nimport GHC.Types.SrcLoc (SrcSpan, GenLocated (L))\\nimport Language.Haskell.Syntax.Expr (HsExpr (HsCase, HsHole), Match (..), GRHSs (GRHSs), GRHS (GRHS))\\nimport Control.Monad.Trans (lift)\\nimport Ide.PluginUtils (diffText, WithDeletions (IncludeDeletions))\\nimport Development.IDE.Core.FileStore (getVersionedTextDoc)\\nimport qualified Language.LSP.Protocol.Lens as L\\nimport Language.Haskell.Syntax (MatchGroup (MG, mg_alts), LHsExpr, NoExtField (NoExtField), Pat (..), HsConDetails (PrefixCon), HsLocalBindsLR (EmptyLocalBinds))\\nimport GHC (EpAnn(EpAnn))\\nimport GHC.Parser.Annotation (noSrcSpanA, EpUniToken (EpUniTok), IsUnicodeSyntax (NormalSyntax), emptyComments, TrailingAnn (AddSemiAnn), addTrailingAnnToA, AnnList (al_brackets, al_anchor))\\nimport Data.List.NonEmpty.Extra (singleton)\\nimport Development.IDE.GHC.Compat.Core (GrhsAnn(..), HasSrcSpan, srcSpanStartLine, HsMatchContext (LamAlt), HsLamVariant (LamCase), LocatedAn, lann_trailing, AnnListItem, srcSpanStartCol, EpAnnHsCase (EpAnnHsCase))\\nimport Data.List.Extra (chunksOf)\\nimport Data.List (groupBy)\\nimport Data.Function (on, (&))\\nimport Control.Arrow ((&&&))\\nimport Development.IDE (Pretty (pretty), Recorder, WithPriority, IdeState (shakeExtras), FileDiagnostic (fdStructuredMessage), runAction, GetParsedModule (GetParsedModule), srcSpanToRange)\\nimport Ide.Logger ((<+>))\\n\\ninRange :: SrcSpan -> Range -> Bool\\ninRange s range = maybe False (`isSubrangeOf` range) (srcSpanToRange s)\\n\\ninSpan :: Range -> SrcSpan -> Bool\\ninSpan range s = maybe False (range `isSubrangeOf`) (srcSpanToRange s)\\n\\ndata Log\\n = LogShake Shake.Log\\n | LogWAEResponseError (LSP.TResponseError LSP.Method_WorkspaceApplyEdit)\\n | forall a. (Pretty a) => LogResolve a\\n\\ninstance Pretty Log where\\n pretty = \\\\case\\n LogShake logMsg -> pretty logMsg\\n LogWAEResponseError rspErr -> \\"RequestWorkspaceApplyEdit Failed with \\" <+> pretty rspErr\\n LogResolve msg -> pretty msg\\n\\ndescriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState\\ndescriptor _ plId = (defaultPluginDescriptor plId \\"Provides a code action to split case\\")\\n { pluginHandlers = mkPluginHandler LSP.SMethod_TextDocumentCodeAction suggestCaseSplitProvider\\n , pluginPriority = 1\\n , pluginModifyDynflags = mempty { dynFlagsModifyGlobal = \\\\dynFlags -> dynFlags { maxUncoveredPatterns = 30 } }\\n }\\n\\nsuggestCaseSplitProvider :: PluginMethodHandler IdeState \'Method_TextDocumentCodeAction\\nsuggestCaseSplitProvider\\n state\\n _\\n CodeActionParams{ _textDocument\\n , _range = range -- XXX: In the interactive usage, this is\\n -- the first _character of the token (?) the\\n -- cursor is on. In the test (at least with\\n -- the code as it is right now) it covers\\n -- the whole `case foo of` (until the char\\n -- past the f).\\n }\\n = do\\n nfp <- getNormalizedFilePathE $ _textDocument ^. L.uri\\n\\n verTxtDocId <- liftIO $ runAction \\"dfdaias\\" state $ getVersionedTextDoc _textDocument\\n\\n pm <- runActionE \\"not important, as long as unique\\" state\\n $ useE GetParsedModule nfp\\n\\n fdiags :: [FileDiagnostic] <- activeDiagnosticsInRange (shakeExtras state) nfp range\\n <&> \\\\case Nothing -> error \\"Oops, no diagnostics!\\"\\n Just fileDiags -> fileDiags\\n\\n case mapMaybe (\\\\d -> fdStructuredMessage d ^? _SomeStructuredMessage\\n . msgEnvelopeErrorL\\n . _DsMessage) fdiags of\\n (mapMaybe dsMsgToPmAlts -> [pmAltsConApp])\\n -- TODO: I need to filter for the diagnostic I want.\\n -- It might important to check the case of two nested `case`\\n -- expressions, both with non-exhaustive patterns.\\n -> do\\n\\n (old, new) <- handleMaybeM (PluginInternalError \\"Unable to makeEditText\\")\\n $ liftIO $ runMaybeT\\n $ makeEditText pm pmAltsConApp range\\n\\n caps <- lift pluginGetClientCapabilities\\n\\n pure $ InL [InR\\n $ CodeAction { _title = \\"Add placeholders for all missing patterns\\"\\n , _kind = Just CodeActionKind_QuickFix\\n , _diagnostics = Nothing -- TODO: I should probably encode here that it addresses the DsNonExhaustivePatterns diag\\n , _isPreferred = Nothing -- TODO: Just True?\\n , _disabled = Nothing\\n , _edit = Just $ diffText caps (verTxtDocId, old) new IncludeDeletions\\n , _command = Nothing\\n , _data_ = Nothing }]\\n (mapMaybe dsMsgToPmAlts -> []) -> error \\"wth?\\"\\n (mapMaybe dsMsgToPmAlts -> [_,_]) -> error \\"Two nested\\"\\n _ -> error \\"Oops, unexpected number of messages!\\"\\n\\n where\\n\\n dsMsgToPmAlts :: DsMessage -> Maybe [PmAltConApp]\\n dsMsgToPmAlts =\\n \\\\case DsNonExhaustivePatterns !(CaseAlt; LamAlt LamCase) _ _ ![ids] !nablas ->\\n trace (\\"length nablas = \\" ++ show (length nablas)) $\\n Just $ nablas >>=\\n (\\\\nabla -> let facts = ts_facts $ nabla_tm_st nabla\\n in case vi_pos <$> lookupUSDFM facts ids of\\n Just [x] -> [x]\\n Just [] -> error \\"Oops 0\\"\\n Just _ -> error \\"Oops 1\\"\\n _ -> error \\"Oops 2\\")\\n DsNonExhaustivePatterns (CaseAlt; LamAlt LamCase) _ _ _ _ -> error \\"Oops 3\\"\\n DsNonExhaustivePatterns _ _ _ ![_] _ -> error \\"Oops 4\\"\\n DsNonExhaustivePatterns _ _ _ _ _ -> error \\"Oops 5\\"\\n _ -> error \\"Oops Nothing\\"\\n\\n_DsMessage :: Fold GhcMessage DsMessage\\n_DsMessage = prism\' GhcDsMessage $ \\\\case\\n GhcDsMessage dsmsg -> Just dsmsg\\n _ -> Nothing\\n\\nmakeEditText :: Monad m => ParsedModule -> MissingPatterns -> Range -> MaybeT m (T.Text, T.Text)\\nmakeEditText pm missingPs range = do\\n\\n let ps = pm_parsed_source pm\\n !old = T.pack $ exactPrint ps\\n !ps\' = everywhere f ps\\n !new = T.pack $ exactPrint ps\'\\n\\n pure (old, new)\\n\\n where\\n f :: forall d. Data d => d -> d\\n f node = case typeOf node `eqTypeRep` typeRep @(HsExpr GhcPs) of\\n Nothing -> node\\n Just HRefl -> case node of\\n HsCase x@(EpAnnHsCase (EpTok caseTok) (EpTok ofTok)) e existingPs\\n | getHasLoc e `inRange` (traceWith ((\\"range = \\" ++) . show) range)\\n -- HsCase x e existingPs\\n -- | (traceWith ((\\"range = \\" ++) . show) range) `inSpan` getHasLoc e\\n -> HsCase x e $ addMissingPatterns (makeMatch <$> missingPs) existingPs\\n _ -> node\\n\\nisOnelined :: LocatedAn ann e -> LocatedAn ann e -> Bool\\nisOnelined = (==) `on` getStartLine\\n\\nisBraced :: EpAnn (AnnList a) -> Bool\\nisBraced (EpAnn _ (AnnList _ (ListBraces (EpTok (EpaSpan _)) _) _ _ _) _) = True\\nisBraced (EpAnn _ (AnnList _ ListNone _ _ _) _) = False\\nisBraced _ = error \\"Ooops\\"\\n\\ngetStartCol :: HasSrcSpan a => a -> Int\\ngetStartCol = srcSpanStartCol . realSrcSpan . getLoc\\n\\ngetStartLine :: HasSrcSpan a => a -> Int\\ngetStartLine = srcSpanStartLine . realSrcSpan . getLoc\\n\\nsetDP :: Int -> Int -> LocatedAn t a -> LocatedAn t a\\nsetDP = (flip setEntryDP .) . deltaPos\\n\\n-- Add semicolon, unless one is already present.\\naddSemiCol :: LocatedAn AnnListItem a -> LocatedAn AnnListItem a\\naddSemiCol (L l@(EpAnn _ ls _) e)\\n | none isSemiCol (lann_trailing ls)\\n = L (addTrailingAnnToA (AddSemiAnn (EpTok d0)) emptyComments l) e\\naddSemiCol l = l\\n\\naddMissingPatterns :: [LMatch GhcPs (LHsExpr GhcPs)] -> MatchGroup GhcPs (LHsExpr GhcPs) -> MatchGroup GhcPs (LHsExpr GhcPs)\\naddMissingPatterns missing mg@(MG { mg_alts = L l [] })\\n = mg { mg_alts = L l (fmt missing) }\\n where\\n fmt = if isBraced l\\n then zipWith3 (.)\\n (replicate (length missing - 1) addSemiCol ++ [id])\\n (repeat $ setDP 1 defaultIndent)\\n else zipWith ($)\\n (setDP 1 defaultIndent:repeat (setDP 1 0))\\n\\naddMissingPatterns missing mg@(MG { mg_alts = L altsLoc@(EpAnn _\\n (al_anchor &&& al_brackets -> (Just (getStartCol . getHasLoc -> foo), -- TODO: find a good name for foo\\n bracks))\\n _)\\n existings })\\n = mg { mg_alts = L altsLoc alts }\\n where\\n alts = let ptrnGrps = groupBy isOnelined existings\\n nGrps = length ptrnGrps\\n nLastGr = ptrnGrps -- length of the last group of \\u22651 patterns written on one line\\n & reverse\\n & take 1\\n & concat\\n & length\\n (indent, addSemiCols) = if isBraced altsLoc\\n then (foo - case bracks of\\n ListBraces (EpTok (getStartCol . getHasLoc -> col)) _ -> col\\n _ -> error \\"this is impossible\\"\\n ,zipWith ($) (replicate (nGrps - 1) id\\n ++ replicate (length missingGrps) (mapLast addSemiCol)\\n ++ [id]))\\n else (0, id)\\n missingGrps = chunksOf nLastGr missing\\n <&> \\\\case [] -> error \\"Impossible\\"\\n (m:ms) -> zipWith ($) (replicate (length ms) addSemiCol ++ [id])\\n (setDP 1 indent m:map (setDP 0 1) ms)\\n\\n in concat $ addSemiCols $ ptrnGrps ++ missingGrps\\n\\naddMissingPatterns _ _ = error \\"This should not be possible\\"\\n\\nmapLast :: (a -> a) -> [a] -> [a]\\nmapLast f [a] = [f a]\\nmapLast f (a:as) = a:mapLast f as\\nmapLast _ [] = error \\"nope\\"\\n\\nisSemiCol :: TrailingAnn -> Bool\\nisSemiCol (AddSemiAnn _) = True\\nisSemiCol _ = False\\n\\nmakeMatch :: PmAltConApp -> LMatch GhcPs (LHsExpr GhcPs)\\nmakeMatch PACA{ paca_con = PmAltConLike (RealDataCon ctor), .. }\\n = L noSrcSpanA\\n $ Match { m_ext = NoExtField\\n , m_ctxt = CaseAlt\\n , m_pats = L noSrcSpanA\\n $ [L noSrcSpanA ConPat { pat_con_ext = (Nothing, Nothing)\\n , pat_con = L noSrcSpanA $ nameRdrName $ getName ctor\\n , pat_args = PrefixCon $ map (const $ L noAnnSrcSpanDP1 $ WildPat NoExtField) paca_ids\\n }]\\n , m_grhss = GRHSs emptyComments\\n -- TODO: remember to respect unicode arrow of preceeding cases or the -XUnicodeSyntax (https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/unicode_syntax.html#extension-UnicodeSyntax)\\n -- TODO: check whether ga_sep default choice is really not printing anything.\\n (singleton $ L noSrcSpanA $ GRHS (EpAnn noSrcSpanA\\n (GrhsAnn{ ga_vbar = Nothing\\n , ga_sep = Right (EpUniTok d1 NormalSyntax) })\\n emptyComments) []\\n $ L noSrcSpanA $ HsHole $ HoleVar $ L noAnnSrcSpanDP1\\n $ unnamedHoleRdrName)\\n (EmptyLocalBinds NoExtField)\\n }\\nmakeMatch _ = error \\"boom\\"\\n\\ntype MissingPatterns = [PmAltConApp]\\n\\ndefaultIndent :: Int\\ndefaultIndent = 2\\n\\nnone :: Foldable t => (a -> Bool) -> t a -> Bool\\nnone = all . (not <$>)\\n"}],"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":13}}}'
127.0.0.1 - - [21/Jul/2026 12:38:10] "POST /event_notification HTTP/1.1" 200 873
2026-07-21 12:38:10,293 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-top-binds"]},"message":"Defined but not used: \xe2\x80\x98inSpan\xe2\x80\x99","range":{"end":{"character":6,"line":87},"start":{"character":0,"line":87}},"severity":2,"source":"typecheck","tags":[1]},{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \xe2\x80\x98caseTok\xe2\x80\x99","range":{"end":{"character":54,"line":197},"start":{"character":47,"line":197}},"severity":2,"source":"typecheck","tags":[1]},{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \xe2\x80\x98ofTok\xe2\x80\x99","range":{"end":{"character":68,"line":197},"start":{"character":63,"line":197}},"severity":2,"source":"typecheck","tags":[1]}],"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":13}}'
127.0.0.1 - - [21/Jul/2026 12:38:10] "POST /receive_messages HTTP/1.1" 200 2763
2026-07-21 12:38:11,812 - INFO - Found executeCommandProvider support for command ExecuteCommand in haskell-language-server
2026-07-21 12:38:11,812 - INFO - Found codeActionProvider support for command FixIt in haskell-language-server
2026-07-21 12:38:11,812 - INFO - Found definitionProvider support for command GoToDefinition in haskell-language-server
2026-07-21 12:38:11,812 - INFO - Found definitionProvider support for command GoToDeclaration in haskell-language-server
2026-07-21 12:38:11,812 - INFO - Found definitionProvider support for command GoTo in haskell-language-server
2026-07-21 12:38:11,812 - INFO - Found typeDefinitionProvider support for command GoToType in haskell-language-server
2026-07-21 12:38:11,812 - INFO - Found implementationProvider support for command GoToImplementation in haskell-language-server
2026-07-21 12:38:11,812 - INFO - Found referencesProvider support for command GoToReferences in haskell-language-server
2026-07-21 12:38:11,812 - INFO - Found renameProvider support for command RefactorRename in haskell-language-server
2026-07-21 12:38:11,813 - INFO - Found documentFormattingProvider support for command Format in haskell-language-server
2026-07-21 12:38:11,813 - INFO - Found workspaceSymbolProvider support for command GoToSymbol in haskell-language-server
2026-07-21 12:38:11,813 - INFO - Found documentSymbolProvider support for command GoToDocumentOutline in haskell-language-server
2026-07-21 12:38:11,813 - INFO - Always supporting StopServer for haskell-language-server
2026-07-21 12:38:11,813 - INFO - Always supporting RestartServer for haskell-language-server
2026-07-21 12:38:11,813 - INFO - Always supporting GoToCallees for haskell-language-server
2026-07-21 12:38:11,813 - INFO - Always supporting GoToCallers for haskell-language-server
2026-07-21 12:38:11,813 - INFO - Always supporting CallHierarchy for haskell-language-server
2026-07-21 12:38:11,813 - INFO - Always supporting ResolveCallHierarchyItem for haskell-language-server
2026-07-21 12:38:11,813 - INFO - Always supporting GetHover for haskell-language-server
2026-07-21 12:38:11,814 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action None
2026-07-21 12:38:11,814 - DEBUG - TX: Sending message: b'Content-Length: 628\r\n\r\n{"id":15,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \\u2018caseTok\\u2019","range":{"end":{"character":54,"line":197},"start":{"character":47,"line":197}},"severity":2,"source":"typecheck","tags":[1]}]},"range":{"end":{"character":48,"line":197},"start":{"character":47,"line":197}},"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs"}}}'
2026-07-21 12:38:11,845 - DEBUG - RX: Received message: b'{"id":15,"jsonrpc":"2.0","result":[{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}]}'
2026-07-21 12:38:11,846 - DEBUG - TX: Sending message: b'Content-Length: 406\r\n\r\n{"id":16,"jsonrpc":"2.0","method":"codeAction/resolve","params":{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}}'
2026-07-21 12:38:11,846 - DEBUG - RX: Received message: b'{"id":16,"jsonrpc":"2.0","result":{"diagnostics":[],"edit":{"changes":{"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs":[{"newText":"{-# OPTIONS_GHC -Wno-unused-matches #-}\\n","range":{"end":{"character":0,"line":12},"start":{"character":0,"line":12}}}]}},"kind":"quickfix","title":"Disable \\"unused-matches\\" warnings"}}'
127.0.0.1 - - [21/Jul/2026 12:38:11] "POST /run_completer_command HTTP/1.1" 200 623
2026-07-21 12:38:11,847 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:11,847 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:11,847 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:11,848 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:11,848 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:11,848 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:11,860 - DEBUG - Event name: FileReadyToParse
2026-07-21 12:38:11,860 - INFO - Adding buffer identifiers for file: /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs
2026-07-21 12:38:11,863 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action Change
2026-07-21 12:38:11,863 - DEBUG - TX: Sending notification: b'Content-Length: 15873\r\n\r\n{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"text":"{-# LANGUAGE CPP #-}\\n{-# LANGUAGE DataKinds #-}\\n{-# LANGUAGE DuplicateRecordFields #-}\\n{-# LANGUAGE LambdaCase #-}\\n{-# LANGUAGE MultiWayIf #-}\\n{-# LANGUAGE OverloadedStrings #-}\\n{-# LANGUAGE PatternSynonyms #-}\\n{-# LANGUAGE ViewPatterns #-}\\n{-# LANGUAGE RecordWildCards #-}\\n{-# LANGUAGE ImpredicativeTypes #-}\\n{-# LANGUAGE TypeFamilies #-}\\n{-# LANGUAGE OrPatterns #-}\\n{-# OPTIONS_GHC -Wno-unused-matches #-}\\n\\nmodule Ide.Plugin.CaseSplit\\n ( descriptor\\n , Log\\n ) where\\n\\nimport qualified Data.Text as T\\nimport Development.IDE.Core.PluginUtils (runActionE, useE, activeDiagnosticsInRange)\\nimport Ide.Plugin.Error\\n ( PluginError(PluginInternalError),\\n getNormalizedFilePathE,\\n handleMaybeM )\\nimport Ide.Types\\n ( defaultPluginDescriptor,\\n mkPluginHandler,\\n pluginGetClientCapabilities,\\n DynFlagsModifications(dynFlagsModifyGlobal),\\n PluginDescriptor(pluginModifyDynflags, pluginHandlers,\\n pluginPriority),\\n PluginId,\\n PluginMethodHandler )\\nimport qualified Language.LSP.Protocol.Message as LSP\\nimport Language.LSP.Protocol.Message (Method(Method_TextDocumentCodeAction))\\nimport qualified Development.IDE.Core.Shake as Shake\\nimport Language.LSP.Protocol.Types\\n ( Range,\\n CodeActionParams(_range, CodeActionParams, _textDocument),\\n CodeActionKind(CodeActionKind_QuickFix),\\n type (|?)(InR, InL),\\n CodeAction(_data_, CodeAction, _title, _kind, _diagnostics,\\n _isPreferred, _disabled, _edit, _command),\\n isSubrangeOf )\\nimport Development.IDE.Types.Diagnostics (_SomeStructuredMessage)\\nimport Development.IDE.GHC.Compat (GhcMessage (GhcDsMessage), HsMatchContext (CaseAlt), ConLike (RealDataCon), NamedThing (getName), HoleKind (HoleVar))\\nimport Development.IDE.GHC.Compat.Error (DsMessage(DsNonExhaustivePatterns), msgEnvelopeErrorL)\\nimport Data.Maybe (mapMaybe)\\nimport Control.Lens (Fold, prism\', (^?), (<&>), (^.))\\nimport GHC.HsToCore.Pmc.Solver.Types (PmAltConApp(..), PmAltCon(..), TmState (ts_facts), Nabla (nabla_tm_st), VarInfo (vi_pos))\\nimport GHC.Types.Unique.SDFM ( lookupUSDFM )\\nimport GHC.Types.Name.Reader (nameRdrName)\\nimport GHC (DynFlags(maxUncoveredPatterns), ParsedModule (pm_parsed_source), HasLoc (getHasLoc), realSrcSpan, EpToken (EpTok), EpaLocation\' (EpaSpan), AnnList (AnnList), AnnListBrackets (ListBraces, ListNone), LMatch)\\nimport Development.IDE.GHC.Compat (getLoc)\\nimport Control.Monad.IO.Class ( MonadIO(liftIO) )\\nimport Control.Monad.Trans.Maybe ( MaybeT(runMaybeT) )\\nimport Development.IDE.GHC.Compat.ExactPrint\\n ( exactPrint, d0, d1, noAnnSrcSpanDP1, setEntryDP )\\nimport Data.Data (Data())\\nimport Data.Generics.Schemes (everywhere)\\nimport Debug.Trace ( trace, traceWith )\\nimport Type.Reflection (eqTypeRep,\\n type (:~~:) (HRefl),\\n typeRep, typeOf)\\nimport GHC.Hs (GhcPs, deltaPos, unnamedHoleRdrName)\\nimport GHC.Types.SrcLoc (SrcSpan, GenLocated (L))\\nimport Language.Haskell.Syntax.Expr (HsExpr (HsCase, HsHole), Match (..), GRHSs (GRHSs), GRHS (GRHS))\\nimport Control.Monad.Trans (lift)\\nimport Ide.PluginUtils (diffText, WithDeletions (IncludeDeletions))\\nimport Development.IDE.Core.FileStore (getVersionedTextDoc)\\nimport qualified Language.LSP.Protocol.Lens as L\\nimport Language.Haskell.Syntax (MatchGroup (MG, mg_alts), LHsExpr, NoExtField (NoExtField), Pat (..), HsConDetails (PrefixCon), HsLocalBindsLR (EmptyLocalBinds))\\nimport GHC (EpAnn(EpAnn))\\nimport GHC.Parser.Annotation (noSrcSpanA, EpUniToken (EpUniTok), IsUnicodeSyntax (NormalSyntax), emptyComments, TrailingAnn (AddSemiAnn), addTrailingAnnToA, AnnList (al_brackets, al_anchor))\\nimport Data.List.NonEmpty.Extra (singleton)\\nimport Development.IDE.GHC.Compat.Core (GrhsAnn(..), HasSrcSpan, srcSpanStartLine, HsMatchContext (LamAlt), HsLamVariant (LamCase), LocatedAn, lann_trailing, AnnListItem, srcSpanStartCol, EpAnnHsCase (EpAnnHsCase))\\nimport Data.List.Extra (chunksOf)\\nimport Data.List (groupBy)\\nimport Data.Function (on, (&))\\nimport Control.Arrow ((&&&))\\nimport Development.IDE (Pretty (pretty), Recorder, WithPriority, IdeState (shakeExtras), FileDiagnostic (fdStructuredMessage), runAction, GetParsedModule (GetParsedModule), srcSpanToRange)\\nimport Ide.Logger ((<+>))\\n\\ninRange :: SrcSpan -> Range -> Bool\\ninRange s range = maybe False (`isSubrangeOf` range) (srcSpanToRange s)\\n\\ninSpan :: Range -> SrcSpan -> Bool\\ninSpan range s = maybe False (range `isSubrangeOf`) (srcSpanToRange s)\\n\\ndata Log\\n = LogShake Shake.Log\\n | LogWAEResponseError (LSP.TResponseError LSP.Method_WorkspaceApplyEdit)\\n | forall a. (Pretty a) => LogResolve a\\n\\ninstance Pretty Log where\\n pretty = \\\\case\\n LogShake logMsg -> pretty logMsg\\n LogWAEResponseError rspErr -> \\"RequestWorkspaceApplyEdit Failed with \\" <+> pretty rspErr\\n LogResolve msg -> pretty msg\\n\\ndescriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState\\ndescriptor _ plId = (defaultPluginDescriptor plId \\"Provides a code action to split case\\")\\n { pluginHandlers = mkPluginHandler LSP.SMethod_TextDocumentCodeAction suggestCaseSplitProvider\\n , pluginPriority = 1\\n , pluginModifyDynflags = mempty { dynFlagsModifyGlobal = \\\\dynFlags -> dynFlags { maxUncoveredPatterns = 30 } }\\n }\\n\\nsuggestCaseSplitProvider :: PluginMethodHandler IdeState \'Method_TextDocumentCodeAction\\nsuggestCaseSplitProvider\\n state\\n _\\n CodeActionParams{ _textDocument\\n , _range = range -- XXX: In the interactive usage, this is\\n -- the first _character of the token (?) the\\n -- cursor is on. In the test (at least with\\n -- the code as it is right now) it covers\\n -- the whole `case foo of` (until the char\\n -- past the f).\\n }\\n = do\\n nfp <- getNormalizedFilePathE $ _textDocument ^. L.uri\\n\\n verTxtDocId <- liftIO $ runAction \\"dfdaias\\" state $ getVersionedTextDoc _textDocument\\n\\n pm <- runActionE \\"not important, as long as unique\\" state\\n $ useE GetParsedModule nfp\\n\\n fdiags :: [FileDiagnostic] <- activeDiagnosticsInRange (shakeExtras state) nfp range\\n <&> \\\\case Nothing -> error \\"Oops, no diagnostics!\\"\\n Just fileDiags -> fileDiags\\n\\n case mapMaybe (\\\\d -> fdStructuredMessage d ^? _SomeStructuredMessage\\n . msgEnvelopeErrorL\\n . _DsMessage) fdiags of\\n (mapMaybe dsMsgToPmAlts -> [pmAltsConApp])\\n -- TODO: I need to filter for the diagnostic I want.\\n -- It might important to check the case of two nested `case`\\n -- expressions, both with non-exhaustive patterns.\\n -> do\\n\\n (old, new) <- handleMaybeM (PluginInternalError \\"Unable to makeEditText\\")\\n $ liftIO $ runMaybeT\\n $ makeEditText pm pmAltsConApp range\\n\\n caps <- lift pluginGetClientCapabilities\\n\\n pure $ InL [InR\\n $ CodeAction { _title = \\"Add placeholders for all missing patterns\\"\\n , _kind = Just CodeActionKind_QuickFix\\n , _diagnostics = Nothing -- TODO: I should probably encode here that it addresses the DsNonExhaustivePatterns diag\\n , _isPreferred = Nothing -- TODO: Just True?\\n , _disabled = Nothing\\n , _edit = Just $ diffText caps (verTxtDocId, old) new IncludeDeletions\\n , _command = Nothing\\n , _data_ = Nothing }]\\n (mapMaybe dsMsgToPmAlts -> []) -> error \\"wth?\\"\\n (mapMaybe dsMsgToPmAlts -> [_,_]) -> error \\"Two nested\\"\\n _ -> error \\"Oops, unexpected number of messages!\\"\\n\\n where\\n\\n dsMsgToPmAlts :: DsMessage -> Maybe [PmAltConApp]\\n dsMsgToPmAlts =\\n \\\\case DsNonExhaustivePatterns !(CaseAlt; LamAlt LamCase) _ _ ![ids] !nablas ->\\n trace (\\"length nablas = \\" ++ show (length nablas)) $\\n Just $ nablas >>=\\n (\\\\nabla -> let facts = ts_facts $ nabla_tm_st nabla\\n in case vi_pos <$> lookupUSDFM facts ids of\\n Just [x] -> [x]\\n Just [] -> error \\"Oops 0\\"\\n Just _ -> error \\"Oops 1\\"\\n _ -> error \\"Oops 2\\")\\n DsNonExhaustivePatterns (CaseAlt; LamAlt LamCase) _ _ _ _ -> error \\"Oops 3\\"\\n DsNonExhaustivePatterns _ _ _ ![_] _ -> error \\"Oops 4\\"\\n DsNonExhaustivePatterns _ _ _ _ _ -> error \\"Oops 5\\"\\n _ -> error \\"Oops Nothing\\"\\n\\n_DsMessage :: Fold GhcMessage DsMessage\\n_DsMessage = prism\' GhcDsMessage $ \\\\case\\n GhcDsMessage dsmsg -> Just dsmsg\\n _ -> Nothing\\n\\nmakeEditText :: Monad m => ParsedModule -> MissingPatterns -> Range -> MaybeT m (T.Text, T.Text)\\nmakeEditText pm missingPs range = do\\n\\n let ps = pm_parsed_source pm\\n !old = T.pack $ exactPrint ps\\n !ps\' = everywhere f ps\\n !new = T.pack $ exactPrint ps\'\\n\\n pure (old, new)\\n\\n where\\n f :: forall d. Data d => d -> d\\n f node = case typeOf node `eqTypeRep` typeRep @(HsExpr GhcPs) of\\n Nothing -> node\\n Just HRefl -> case node of\\n HsCase x@(EpAnnHsCase (EpTok caseTok) (EpTok ofTok)) e existingPs\\n | getHasLoc e `inRange` (traceWith ((\\"range = \\" ++) . show) range)\\n -- HsCase x e existingPs\\n -- | (traceWith ((\\"range = \\" ++) . show) range) `inSpan` getHasLoc e\\n -> HsCase x e $ addMissingPatterns (makeMatch <$> missingPs) existingPs\\n _ -> node\\n\\nisOnelined :: LocatedAn ann e -> LocatedAn ann e -> Bool\\nisOnelined = (==) `on` getStartLine\\n\\nisBraced :: EpAnn (AnnList a) -> Bool\\nisBraced (EpAnn _ (AnnList _ (ListBraces (EpTok (EpaSpan _)) _) _ _ _) _) = True\\nisBraced (EpAnn _ (AnnList _ ListNone _ _ _) _) = False\\nisBraced _ = error \\"Ooops\\"\\n\\ngetStartCol :: HasSrcSpan a => a -> Int\\ngetStartCol = srcSpanStartCol . realSrcSpan . getLoc\\n\\ngetStartLine :: HasSrcSpan a => a -> Int\\ngetStartLine = srcSpanStartLine . realSrcSpan . getLoc\\n\\nsetDP :: Int -> Int -> LocatedAn t a -> LocatedAn t a\\nsetDP = (flip setEntryDP .) . deltaPos\\n\\n-- Add semicolon, unless one is already present.\\naddSemiCol :: LocatedAn AnnListItem a -> LocatedAn AnnListItem a\\naddSemiCol (L l@(EpAnn _ ls _) e)\\n | none isSemiCol (lann_trailing ls)\\n = L (addTrailingAnnToA (AddSemiAnn (EpTok d0)) emptyComments l) e\\naddSemiCol l = l\\n\\naddMissingPatterns :: [LMatch GhcPs (LHsExpr GhcPs)] -> MatchGroup GhcPs (LHsExpr GhcPs) -> MatchGroup GhcPs (LHsExpr GhcPs)\\naddMissingPatterns missing mg@(MG { mg_alts = L l [] })\\n = mg { mg_alts = L l (fmt missing) }\\n where\\n fmt = if isBraced l\\n then zipWith3 (.)\\n (replicate (length missing - 1) addSemiCol ++ [id])\\n (repeat $ setDP 1 defaultIndent)\\n else zipWith ($)\\n (setDP 1 defaultIndent:repeat (setDP 1 0))\\n\\naddMissingPatterns missing mg@(MG { mg_alts = L altsLoc@(EpAnn _\\n (al_anchor &&& al_brackets -> (Just (getStartCol . getHasLoc -> foo), -- TODO: find a good name for foo\\n bracks))\\n _)\\n existings })\\n = mg { mg_alts = L altsLoc alts }\\n where\\n alts = let ptrnGrps = groupBy isOnelined existings\\n nGrps = length ptrnGrps\\n nLastGr = ptrnGrps -- length of the last group of \\u22651 patterns written on one line\\n & reverse\\n & take 1\\n & concat\\n & length\\n (indent, addSemiCols) = if isBraced altsLoc\\n then (foo - case bracks of\\n ListBraces (EpTok (getStartCol . getHasLoc -> col)) _ -> col\\n _ -> error \\"this is impossible\\"\\n ,zipWith ($) (replicate (nGrps - 1) id\\n ++ replicate (length missingGrps) (mapLast addSemiCol)\\n ++ [id]))\\n else (0, id)\\n missingGrps = chunksOf nLastGr missing\\n <&> \\\\case [] -> error \\"Impossible\\"\\n (m:ms) -> zipWith ($) (replicate (length ms) addSemiCol ++ [id])\\n (setDP 1 indent m:map (setDP 0 1) ms)\\n\\n in concat $ addSemiCols $ ptrnGrps ++ missingGrps\\n\\naddMissingPatterns _ _ = error \\"This should not be possible\\"\\n\\nmapLast :: (a -> a) -> [a] -> [a]\\nmapLast f [a] = [f a]\\nmapLast f (a:as) = a:mapLast f as\\nmapLast _ [] = error \\"nope\\"\\n\\nisSemiCol :: TrailingAnn -> Bool\\nisSemiCol (AddSemiAnn _) = True\\nisSemiCol _ = False\\n\\nmakeMatch :: PmAltConApp -> LMatch GhcPs (LHsExpr GhcPs)\\nmakeMatch PACA{ paca_con = PmAltConLike (RealDataCon ctor), .. }\\n = L noSrcSpanA\\n $ Match { m_ext = NoExtField\\n , m_ctxt = CaseAlt\\n , m_pats = L noSrcSpanA\\n $ [L noSrcSpanA ConPat { pat_con_ext = (Nothing, Nothing)\\n , pat_con = L noSrcSpanA $ nameRdrName $ getName ctor\\n , pat_args = PrefixCon $ map (const $ L noAnnSrcSpanDP1 $ WildPat NoExtField) paca_ids\\n }]\\n , m_grhss = GRHSs emptyComments\\n -- TODO: remember to respect unicode arrow of preceeding cases or the -XUnicodeSyntax (https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/unicode_syntax.html#extension-UnicodeSyntax)\\n -- TODO: check whether ga_sep default choice is really not printing anything.\\n (singleton $ L noSrcSpanA $ GRHS (EpAnn noSrcSpanA\\n (GrhsAnn{ ga_vbar = Nothing\\n , ga_sep = Right (EpUniTok d1 NormalSyntax) })\\n emptyComments) []\\n $ L noSrcSpanA $ HsHole $ HoleVar $ L noAnnSrcSpanDP1\\n $ unnamedHoleRdrName)\\n (EmptyLocalBinds NoExtField)\\n }\\nmakeMatch _ = error \\"boom\\"\\n\\ntype MissingPatterns = [PmAltConApp]\\n\\ndefaultIndent :: Int\\ndefaultIndent = 2\\n\\nnone :: Foldable t => (a -> Bool) -> t a -> Bool\\nnone = all . (not <$>)\\n"}],"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":14}}}'
127.0.0.1 - - [21/Jul/2026 12:38:11] "POST /event_notification HTTP/1.1" 200 2637
2026-07-21 12:38:11,944 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-top-binds"]},"message":"Defined but not used: \xe2\x80\x98inSpan\xe2\x80\x99","range":{"end":{"character":6,"line":88},"start":{"character":0,"line":88}},"severity":2,"source":"typecheck","tags":[1]}],"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":14}}'
127.0.0.1 - - [21/Jul/2026 12:38:11] "POST /receive_messages HTTP/1.1" 200 999
2026-07-21 12:38:13,248 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:13,249 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:13,250 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:13,258 - DEBUG - Event name: FileReadyToParse
2026-07-21 12:38:13,259 - INFO - Adding buffer identifiers for file: /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs
2026-07-21 12:38:13,263 - DEBUG - Refreshing file /home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs: State is Open -> Open/action Change
2026-07-21 12:38:13,264 - DEBUG - TX: Sending notification: b'Content-Length: 15832\r\n\r\n{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"text":"{-# LANGUAGE CPP #-}\\n{-# LANGUAGE DataKinds #-}\\n{-# LANGUAGE DuplicateRecordFields #-}\\n{-# LANGUAGE LambdaCase #-}\\n{-# LANGUAGE MultiWayIf #-}\\n{-# LANGUAGE OverloadedStrings #-}\\n{-# LANGUAGE PatternSynonyms #-}\\n{-# LANGUAGE ViewPatterns #-}\\n{-# LANGUAGE RecordWildCards #-}\\n{-# LANGUAGE ImpredicativeTypes #-}\\n{-# LANGUAGE TypeFamilies #-}\\n{-# LANGUAGE OrPatterns #-}\\n\\nmodule Ide.Plugin.CaseSplit\\n ( descriptor\\n , Log\\n ) where\\n\\nimport qualified Data.Text as T\\nimport Development.IDE.Core.PluginUtils (runActionE, useE, activeDiagnosticsInRange)\\nimport Ide.Plugin.Error\\n ( PluginError(PluginInternalError),\\n getNormalizedFilePathE,\\n handleMaybeM )\\nimport Ide.Types\\n ( defaultPluginDescriptor,\\n mkPluginHandler,\\n pluginGetClientCapabilities,\\n DynFlagsModifications(dynFlagsModifyGlobal),\\n PluginDescriptor(pluginModifyDynflags, pluginHandlers,\\n pluginPriority),\\n PluginId,\\n PluginMethodHandler )\\nimport qualified Language.LSP.Protocol.Message as LSP\\nimport Language.LSP.Protocol.Message (Method(Method_TextDocumentCodeAction))\\nimport qualified Development.IDE.Core.Shake as Shake\\nimport Language.LSP.Protocol.Types\\n ( Range,\\n CodeActionParams(_range, CodeActionParams, _textDocument),\\n CodeActionKind(CodeActionKind_QuickFix),\\n type (|?)(InR, InL),\\n CodeAction(_data_, CodeAction, _title, _kind, _diagnostics,\\n _isPreferred, _disabled, _edit, _command),\\n isSubrangeOf )\\nimport Development.IDE.Types.Diagnostics (_SomeStructuredMessage)\\nimport Development.IDE.GHC.Compat (GhcMessage (GhcDsMessage), HsMatchContext (CaseAlt), ConLike (RealDataCon), NamedThing (getName), HoleKind (HoleVar))\\nimport Development.IDE.GHC.Compat.Error (DsMessage(DsNonExhaustivePatterns), msgEnvelopeErrorL)\\nimport Data.Maybe (mapMaybe)\\nimport Control.Lens (Fold, prism\', (^?), (<&>), (^.))\\nimport GHC.HsToCore.Pmc.Solver.Types (PmAltConApp(..), PmAltCon(..), TmState (ts_facts), Nabla (nabla_tm_st), VarInfo (vi_pos))\\nimport GHC.Types.Unique.SDFM ( lookupUSDFM )\\nimport GHC.Types.Name.Reader (nameRdrName)\\nimport GHC (DynFlags(maxUncoveredPatterns), ParsedModule (pm_parsed_source), HasLoc (getHasLoc), realSrcSpan, EpToken (EpTok), EpaLocation\' (EpaSpan), AnnList (AnnList), AnnListBrackets (ListBraces, ListNone), LMatch)\\nimport Development.IDE.GHC.Compat (getLoc)\\nimport Control.Monad.IO.Class ( MonadIO(liftIO) )\\nimport Control.Monad.Trans.Maybe ( MaybeT(runMaybeT) )\\nimport Development.IDE.GHC.Compat.ExactPrint\\n ( exactPrint, d0, d1, noAnnSrcSpanDP1, setEntryDP )\\nimport Data.Data (Data())\\nimport Data.Generics.Schemes (everywhere)\\nimport Debug.Trace ( trace, traceWith )\\nimport Type.Reflection (eqTypeRep,\\n type (:~~:) (HRefl),\\n typeRep, typeOf)\\nimport GHC.Hs (GhcPs, deltaPos, unnamedHoleRdrName)\\nimport GHC.Types.SrcLoc (SrcSpan, GenLocated (L))\\nimport Language.Haskell.Syntax.Expr (HsExpr (HsCase, HsHole), Match (..), GRHSs (GRHSs), GRHS (GRHS))\\nimport Control.Monad.Trans (lift)\\nimport Ide.PluginUtils (diffText, WithDeletions (IncludeDeletions))\\nimport Development.IDE.Core.FileStore (getVersionedTextDoc)\\nimport qualified Language.LSP.Protocol.Lens as L\\nimport Language.Haskell.Syntax (MatchGroup (MG, mg_alts), LHsExpr, NoExtField (NoExtField), Pat (..), HsConDetails (PrefixCon), HsLocalBindsLR (EmptyLocalBinds))\\nimport GHC (EpAnn(EpAnn))\\nimport GHC.Parser.Annotation (noSrcSpanA, EpUniToken (EpUniTok), IsUnicodeSyntax (NormalSyntax), emptyComments, TrailingAnn (AddSemiAnn), addTrailingAnnToA, AnnList (al_brackets, al_anchor))\\nimport Data.List.NonEmpty.Extra (singleton)\\nimport Development.IDE.GHC.Compat.Core (GrhsAnn(..), HasSrcSpan, srcSpanStartLine, HsMatchContext (LamAlt), HsLamVariant (LamCase), LocatedAn, lann_trailing, AnnListItem, srcSpanStartCol, EpAnnHsCase (EpAnnHsCase))\\nimport Data.List.Extra (chunksOf)\\nimport Data.List (groupBy)\\nimport Data.Function (on, (&))\\nimport Control.Arrow ((&&&))\\nimport Development.IDE (Pretty (pretty), Recorder, WithPriority, IdeState (shakeExtras), FileDiagnostic (fdStructuredMessage), runAction, GetParsedModule (GetParsedModule), srcSpanToRange)\\nimport Ide.Logger ((<+>))\\n\\ninRange :: SrcSpan -> Range -> Bool\\ninRange s range = maybe False (`isSubrangeOf` range) (srcSpanToRange s)\\n\\ninSpan :: Range -> SrcSpan -> Bool\\ninSpan range s = maybe False (range `isSubrangeOf`) (srcSpanToRange s)\\n\\ndata Log\\n = LogShake Shake.Log\\n | LogWAEResponseError (LSP.TResponseError LSP.Method_WorkspaceApplyEdit)\\n | forall a. (Pretty a) => LogResolve a\\n\\ninstance Pretty Log where\\n pretty = \\\\case\\n LogShake logMsg -> pretty logMsg\\n LogWAEResponseError rspErr -> \\"RequestWorkspaceApplyEdit Failed with \\" <+> pretty rspErr\\n LogResolve msg -> pretty msg\\n\\ndescriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState\\ndescriptor _ plId = (defaultPluginDescriptor plId \\"Provides a code action to split case\\")\\n { pluginHandlers = mkPluginHandler LSP.SMethod_TextDocumentCodeAction suggestCaseSplitProvider\\n , pluginPriority = 1\\n , pluginModifyDynflags = mempty { dynFlagsModifyGlobal = \\\\dynFlags -> dynFlags { maxUncoveredPatterns = 30 } }\\n }\\n\\nsuggestCaseSplitProvider :: PluginMethodHandler IdeState \'Method_TextDocumentCodeAction\\nsuggestCaseSplitProvider\\n state\\n _\\n CodeActionParams{ _textDocument\\n , _range = range -- XXX: In the interactive usage, this is\\n -- the first _character of the token (?) the\\n -- cursor is on. In the test (at least with\\n -- the code as it is right now) it covers\\n -- the whole `case foo of` (until the char\\n -- past the f).\\n }\\n = do\\n nfp <- getNormalizedFilePathE $ _textDocument ^. L.uri\\n\\n verTxtDocId <- liftIO $ runAction \\"dfdaias\\" state $ getVersionedTextDoc _textDocument\\n\\n pm <- runActionE \\"not important, as long as unique\\" state\\n $ useE GetParsedModule nfp\\n\\n fdiags :: [FileDiagnostic] <- activeDiagnosticsInRange (shakeExtras state) nfp range\\n <&> \\\\case Nothing -> error \\"Oops, no diagnostics!\\"\\n Just fileDiags -> fileDiags\\n\\n case mapMaybe (\\\\d -> fdStructuredMessage d ^? _SomeStructuredMessage\\n . msgEnvelopeErrorL\\n . _DsMessage) fdiags of\\n (mapMaybe dsMsgToPmAlts -> [pmAltsConApp])\\n -- TODO: I need to filter for the diagnostic I want.\\n -- It might important to check the case of two nested `case`\\n -- expressions, both with non-exhaustive patterns.\\n -> do\\n\\n (old, new) <- handleMaybeM (PluginInternalError \\"Unable to makeEditText\\")\\n $ liftIO $ runMaybeT\\n $ makeEditText pm pmAltsConApp range\\n\\n caps <- lift pluginGetClientCapabilities\\n\\n pure $ InL [InR\\n $ CodeAction { _title = \\"Add placeholders for all missing patterns\\"\\n , _kind = Just CodeActionKind_QuickFix\\n , _diagnostics = Nothing -- TODO: I should probably encode here that it addresses the DsNonExhaustivePatterns diag\\n , _isPreferred = Nothing -- TODO: Just True?\\n , _disabled = Nothing\\n , _edit = Just $ diffText caps (verTxtDocId, old) new IncludeDeletions\\n , _command = Nothing\\n , _data_ = Nothing }]\\n (mapMaybe dsMsgToPmAlts -> []) -> error \\"wth?\\"\\n (mapMaybe dsMsgToPmAlts -> [_,_]) -> error \\"Two nested\\"\\n _ -> error \\"Oops, unexpected number of messages!\\"\\n\\n where\\n\\n dsMsgToPmAlts :: DsMessage -> Maybe [PmAltConApp]\\n dsMsgToPmAlts =\\n \\\\case DsNonExhaustivePatterns !(CaseAlt; LamAlt LamCase) _ _ ![ids] !nablas ->\\n trace (\\"length nablas = \\" ++ show (length nablas)) $\\n Just $ nablas >>=\\n (\\\\nabla -> let facts = ts_facts $ nabla_tm_st nabla\\n in case vi_pos <$> lookupUSDFM facts ids of\\n Just [x] -> [x]\\n Just [] -> error \\"Oops 0\\"\\n Just _ -> error \\"Oops 1\\"\\n _ -> error \\"Oops 2\\")\\n DsNonExhaustivePatterns (CaseAlt; LamAlt LamCase) _ _ _ _ -> error \\"Oops 3\\"\\n DsNonExhaustivePatterns _ _ _ ![_] _ -> error \\"Oops 4\\"\\n DsNonExhaustivePatterns _ _ _ _ _ -> error \\"Oops 5\\"\\n _ -> error \\"Oops Nothing\\"\\n\\n_DsMessage :: Fold GhcMessage DsMessage\\n_DsMessage = prism\' GhcDsMessage $ \\\\case\\n GhcDsMessage dsmsg -> Just dsmsg\\n _ -> Nothing\\n\\nmakeEditText :: Monad m => ParsedModule -> MissingPatterns -> Range -> MaybeT m (T.Text, T.Text)\\nmakeEditText pm missingPs range = do\\n\\n let ps = pm_parsed_source pm\\n !old = T.pack $ exactPrint ps\\n !ps\' = everywhere f ps\\n !new = T.pack $ exactPrint ps\'\\n\\n pure (old, new)\\n\\n where\\n f :: forall d. Data d => d -> d\\n f node = case typeOf node `eqTypeRep` typeRep @(HsExpr GhcPs) of\\n Nothing -> node\\n Just HRefl -> case node of\\n HsCase x@(EpAnnHsCase (EpTok caseTok) (EpTok ofTok)) e existingPs\\n | getHasLoc e `inRange` (traceWith ((\\"range = \\" ++) . show) range)\\n -- HsCase x e existingPs\\n -- | (traceWith ((\\"range = \\" ++) . show) range) `inSpan` getHasLoc e\\n -> HsCase x e $ addMissingPatterns (makeMatch <$> missingPs) existingPs\\n _ -> node\\n\\nisOnelined :: LocatedAn ann e -> LocatedAn ann e -> Bool\\nisOnelined = (==) `on` getStartLine\\n\\nisBraced :: EpAnn (AnnList a) -> Bool\\nisBraced (EpAnn _ (AnnList _ (ListBraces (EpTok (EpaSpan _)) _) _ _ _) _) = True\\nisBraced (EpAnn _ (AnnList _ ListNone _ _ _) _) = False\\nisBraced _ = error \\"Ooops\\"\\n\\ngetStartCol :: HasSrcSpan a => a -> Int\\ngetStartCol = srcSpanStartCol . realSrcSpan . getLoc\\n\\ngetStartLine :: HasSrcSpan a => a -> Int\\ngetStartLine = srcSpanStartLine . realSrcSpan . getLoc\\n\\nsetDP :: Int -> Int -> LocatedAn t a -> LocatedAn t a\\nsetDP = (flip setEntryDP .) . deltaPos\\n\\n-- Add semicolon, unless one is already present.\\naddSemiCol :: LocatedAn AnnListItem a -> LocatedAn AnnListItem a\\naddSemiCol (L l@(EpAnn _ ls _) e)\\n | none isSemiCol (lann_trailing ls)\\n = L (addTrailingAnnToA (AddSemiAnn (EpTok d0)) emptyComments l) e\\naddSemiCol l = l\\n\\naddMissingPatterns :: [LMatch GhcPs (LHsExpr GhcPs)] -> MatchGroup GhcPs (LHsExpr GhcPs) -> MatchGroup GhcPs (LHsExpr GhcPs)\\naddMissingPatterns missing mg@(MG { mg_alts = L l [] })\\n = mg { mg_alts = L l (fmt missing) }\\n where\\n fmt = if isBraced l\\n then zipWith3 (.)\\n (replicate (length missing - 1) addSemiCol ++ [id])\\n (repeat $ setDP 1 defaultIndent)\\n else zipWith ($)\\n (setDP 1 defaultIndent:repeat (setDP 1 0))\\n\\naddMissingPatterns missing mg@(MG { mg_alts = L altsLoc@(EpAnn _\\n (al_anchor &&& al_brackets -> (Just (getStartCol . getHasLoc -> foo), -- TODO: find a good name for foo\\n bracks))\\n _)\\n existings })\\n = mg { mg_alts = L altsLoc alts }\\n where\\n alts = let ptrnGrps = groupBy isOnelined existings\\n nGrps = length ptrnGrps\\n nLastGr = ptrnGrps -- length of the last group of \\u22651 patterns written on one line\\n & reverse\\n & take 1\\n & concat\\n & length\\n (indent, addSemiCols) = if isBraced altsLoc\\n then (foo - case bracks of\\n ListBraces (EpTok (getStartCol . getHasLoc -> col)) _ -> col\\n _ -> error \\"this is impossible\\"\\n ,zipWith ($) (replicate (nGrps - 1) id\\n ++ replicate (length missingGrps) (mapLast addSemiCol)\\n ++ [id]))\\n else (0, id)\\n missingGrps = chunksOf nLastGr missing\\n <&> \\\\case [] -> error \\"Impossible\\"\\n (m:ms) -> zipWith ($) (replicate (length ms) addSemiCol ++ [id])\\n (setDP 1 indent m:map (setDP 0 1) ms)\\n\\n in concat $ addSemiCols $ ptrnGrps ++ missingGrps\\n\\naddMissingPatterns _ _ = error \\"This should not be possible\\"\\n\\nmapLast :: (a -> a) -> [a] -> [a]\\nmapLast f [a] = [f a]\\nmapLast f (a:as) = a:mapLast f as\\nmapLast _ [] = error \\"nope\\"\\n\\nisSemiCol :: TrailingAnn -> Bool\\nisSemiCol (AddSemiAnn _) = True\\nisSemiCol _ = False\\n\\nmakeMatch :: PmAltConApp -> LMatch GhcPs (LHsExpr GhcPs)\\nmakeMatch PACA{ paca_con = PmAltConLike (RealDataCon ctor), .. }\\n = L noSrcSpanA\\n $ Match { m_ext = NoExtField\\n , m_ctxt = CaseAlt\\n , m_pats = L noSrcSpanA\\n $ [L noSrcSpanA ConPat { pat_con_ext = (Nothing, Nothing)\\n , pat_con = L noSrcSpanA $ nameRdrName $ getName ctor\\n , pat_args = PrefixCon $ map (const $ L noAnnSrcSpanDP1 $ WildPat NoExtField) paca_ids\\n }]\\n , m_grhss = GRHSs emptyComments\\n -- TODO: remember to respect unicode arrow of preceeding cases or the -XUnicodeSyntax (https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/unicode_syntax.html#extension-UnicodeSyntax)\\n -- TODO: check whether ga_sep default choice is really not printing anything.\\n (singleton $ L noSrcSpanA $ GRHS (EpAnn noSrcSpanA\\n (GrhsAnn{ ga_vbar = Nothing\\n , ga_sep = Right (EpUniTok d1 NormalSyntax) })\\n emptyComments) []\\n $ L noSrcSpanA $ HsHole $ HoleVar $ L noAnnSrcSpanDP1\\n $ unnamedHoleRdrName)\\n (EmptyLocalBinds NoExtField)\\n }\\nmakeMatch _ = error \\"boom\\"\\n\\ntype MissingPatterns = [PmAltConApp]\\n\\ndefaultIndent :: Int\\ndefaultIndent = 2\\n\\nnone :: Foldable t => (a -> Bool) -> t a -> Bool\\nnone = all . (not <$>)\\n"}],"textDocument":{"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":15}}}'
127.0.0.1 - - [21/Jul/2026 12:38:13] "POST /event_notification HTTP/1.1" 200 873
2026-07-21 12:38:13,386 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-top-binds"]},"message":"Defined but not used: \xe2\x80\x98inSpan\xe2\x80\x99","range":{"end":{"character":6,"line":87},"start":{"character":0,"line":87}},"severity":2,"source":"typecheck","tags":[1]},{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \xe2\x80\x98caseTok\xe2\x80\x99","range":{"end":{"character":54,"line":197},"start":{"character":47,"line":197}},"severity":2,"source":"typecheck","tags":[1]},{"code":"GHC-40910","codeDescription":{"href":"https://errors.haskell.org/messages/GHC-40910"},"data":{"attachedReason":["-Wunused-matches"]},"message":"Defined but not used: \xe2\x80\x98ofTok\xe2\x80\x99","range":{"end":{"character":68,"line":197},"start":{"character":63,"line":197}},"severity":2,"source":"typecheck","tags":[1]}],"uri":"file:///home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs","version":15}}'
127.0.0.1 - - [21/Jul/2026 12:38:13] "POST /receive_messages HTTP/1.1" 200 2763
2026-07-21 12:38:15,308 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,308 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:38:15,309 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,309 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,310 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:38:15,310 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,311 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,312 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,312 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,312 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,313 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,313 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,314 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,315 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,315 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:38:15,316 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,336 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:15,337 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:15,337 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:38:15,338 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:15,338 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:15,338 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:15,338 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:15,339 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:38:15,339 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,340 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:15,340 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:38:15,340 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:38:15,340 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,340 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:38:15,340 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:38:15,341 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:38:15,341 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:38:15,341 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:38:15,341 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,341 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:38:15,341 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:38:15,343 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:38:15,342 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:15,343 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:38:15,344 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:38:15,344 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,344 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:38:15,344 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:38:15,344 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:38:15,344 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:38:15,344 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:38:15,344 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,344 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:38:15,344 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:38:15,345 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:38:15,345 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:15,345 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:15,345 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:38:15,345 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:15,345 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:15,342 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:38:15,346 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:38:15,347 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:38:15,347 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:38:15,347 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:38:15,347 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:15,347 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:38:15,347 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:38:15,347 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:38:15,347 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:38:15,348 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:38:16,353 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:16,354 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:16,354 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:16,355 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:16,355 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:16,356 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/.CaseSplit.hs.swp', wd=739, mask=IN_MODIFY, cookie=0, name='.CaseSplit.hs.swp'>
2026-07-21 12:38:16,582 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:16,583 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:16,583 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:16,690 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:16,691 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:38:16,692 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
127.0.0.1 - - [21/Jul/2026 12:38:23] "POST /receive_messages HTTP/1.1" 200 4
2026-07-21 12:39:06,432 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,432 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,433 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,433 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:39:06,433 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,433 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,433 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,434 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,434 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:39:06,434 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,434 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,434 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,434 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,434 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,434 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,435 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:39:06,435 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,435 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,435 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,439 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,439 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,440 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,440 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,441 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,441 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,444 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:06,444 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:39:06,445 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:39:06,445 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:06,445 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:39:06,445 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,445 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:06,445 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:39:06,446 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:39:06,446 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:39:06,446 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,446 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:39:06,446 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:39:06,446 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:39:06,446 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:39:06,446 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:39:06,446 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:39:06,446 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:39:06,446 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,446 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:39:06,447 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:39:06,447 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:39:06,447 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:06,447 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:39:06,447 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:39:06,447 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:39:06,447 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:39:06,447 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,447 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:39:06,447 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:39:06,447 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:39:06,447 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:39:06,448 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:39:06,448 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,448 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:39:06,448 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:39:06,448 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:39:06,448 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:06,448 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:39:06,450 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:39:06,450 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:39:06,451 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:39:06,451 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:06,451 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:39:06,451 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:39:06,451 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:39:06,451 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:06,452 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:39:09,974 - ERROR - Error retrieving completer debug info
Traceback (most recent call last):
File "/home/enrico/.vim/plugged/YouCompleteMe/third_party/ycmd/ycmd/handlers.py", line 336, in DebugInfo
result[ 'completer' ] = _GetCompleterForRequestData(
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
request_data ).DebugInfo( request_data )
^^^^^^^^^^^^^^
File "/home/enrico/.vim/plugged/YouCompleteMe/third_party/ycmd/ycmd/handlers.py", line 402, in _GetCompleterForRequestData
return _server_state.GetFiletypeCompleter( request_data[ 'filetypes' ] )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/enrico/.vim/plugged/YouCompleteMe/third_party/ycmd/ycmd/server_state.py", line 96, in GetFiletypeCompleter
raise ValueError(
f'No semantic completer exists for filetypes: { current_filetypes }' )
ValueError: No semantic completer exists for filetypes: ['ycm_nofiletype']
127.0.0.1 - - [21/Jul/2026 12:39:09] "POST /debug_info HTTP/1.1" 200 198
2026-07-21 12:39:13,901 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:13,902 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:13,902 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:13,921 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:13,921 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:39:13,921 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:13,922 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:13,922 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:13,923 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:39:13,923 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:13,923 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:39:13,924 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:13,934 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:13,934 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:13,934 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:14,146 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:14,147 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:14,147 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
127.0.0.1 - - [21/Jul/2026 12:39:14] "POST /debug_info HTTP/1.1" 200 1052
127.0.0.1 - - [21/Jul/2026 12:39:24] "POST /receive_messages HTTP/1.1" 200 4
127.0.0.1 - - [21/Jul/2026 12:39:34] "POST /receive_messages HTTP/1.1" 200 4
127.0.0.1 - - [21/Jul/2026 12:39:44] "POST /receive_messages HTTP/1.1" 200 4
2026-07-21 12:39:48,698 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,698 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,699 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,699 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:39:48,699 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,699 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,699 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,699 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,699 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:39:48,699 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,699 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,699 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,699 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,700 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,700 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,700 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:39:48,700 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,700 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,703 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,703 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,704 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,704 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,704 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,705 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,708 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:48,708 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:48,708 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:39:48,709 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:39:48,709 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:39:48,709 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,709 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:39:48,709 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:39:48,709 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:39:48,709 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:39:48,709 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:39:48,709 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,709 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:39:48,709 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:39:48,709 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:39:48,710 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:48,710 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:39:48,710 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:39:48,710 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:39:48,710 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:39:48,710 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,710 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:39:48,710 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:39:48,710 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:39:48,710 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:39:48,710 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:39:48,710 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,710 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:39:48,710 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:39:48,711 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:39:48,711 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:39:48,711 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:39:48,711 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:48,711 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:39:48,712 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:48,712 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:39:48,713 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:39:48,712 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:39:48,713 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,713 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:39:48,713 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:39:48,713 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:39:48,713 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:39:48,713 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:39:48,713 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:48,713 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:39:48,713 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:39:48,713 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:39:48,713 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:48,713 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:39:50,077 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:50,079 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:50,079 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:39:50,995 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:50,996 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:50,996 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:51,099 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:51,100 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:39:51,101 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
127.0.0.1 - - [21/Jul/2026 12:39:54] "POST /receive_messages HTTP/1.1" 200 4
2026-07-21 12:40:02,203 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:02,204 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:02,204 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:02,205 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:02,205 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:02,206 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:02,206 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:02,207 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:02,207 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,856 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.expected.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.expected.hs'>
2026-07-21 12:40:24,857 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.expected.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.expected.hs'>
2026-07-21 12:40:24,858 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.expected.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.expected.hs'>
2026-07-21 12:40:24,863 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.hs'>
2026-07-21 12:40:24,863 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.hs'>
2026-07-21 12:40:24,864 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.hs'>
2026-07-21 12:40:24,869 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T18.hs', wd=737, mask=IN_OPEN, cookie=0, name='T18.hs'>
2026-07-21 12:40:24,869 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T18.hs', wd=737, mask=IN_OPEN, cookie=0, name='T18.hs'>
2026-07-21 12:40:24,869 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T18.hs', wd=737, mask=IN_OPEN, cookie=0, name='T18.hs'>
2026-07-21 12:40:24,870 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,870 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,870 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,870 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,870 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,870 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:24,870 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:24,870 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,871 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:24,871 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:24,871 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:24,871 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:24,871 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:24,871 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,871 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:24,871 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:24,871 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:24,872 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:24,872 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,872 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:24,872 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:24,872 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:24,872 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:24,873 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:24,873 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,873 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:24,873 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:24,873 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T18.expected.hs', wd=737, mask=IN_OPEN, cookie=0, name='T18.expected.hs'>
2026-07-21 12:40:24,873 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,874 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,874 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,874 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,874 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:24,874 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T18.expected.hs', wd=737, mask=IN_OPEN, cookie=0, name='T18.expected.hs'>
2026-07-21 12:40:24,874 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:24,874 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,874 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,875 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,875 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,875 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,875 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:24,875 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:24,875 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,875 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:24,875 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:24,875 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:24,875 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:24,875 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:24,875 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,875 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:24,875 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:24,873 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,875 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,876 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:24,876 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:24,876 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:24,876 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:24,876 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:24,876 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,876 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:24,876 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:24,876 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,876 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,876 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T18.expected.hs', wd=737, mask=IN_OPEN, cookie=0, name='T18.expected.hs'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:24,877 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:24,878 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,878 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:24,878 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:24,878 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:24,878 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:24,879 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:24,879 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,879 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:24,879 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:24,878 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,879 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,880 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,880 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,882 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,882 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:24,882 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:24,882 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,882 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:24,882 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:24,882 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:24,883 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:24,883 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:24,883 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,883 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:24,883 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:24,883 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,881 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,882 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,884 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,884 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,884 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:24,884 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:24,884 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,884 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:24,885 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:24,885 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:24,885 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:24,885 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:24,885 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,885 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:24,885 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:24,885 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,885 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,885 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,885 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,884 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,886 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,886 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,886 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:24,886 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:24,887 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:24,887 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,887 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:24,887 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:24,887 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:24,887 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:24,887 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:24,887 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,888 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:24,888 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:24,888 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,888 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,888 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:24,888 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,888 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:24,888 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:24,888 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:24,888 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:24,888 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:24,888 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,888 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:24,889 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:24,889 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,889 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,884 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,889 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,889 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:24,889 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:24,889 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,889 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:24,889 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:24,889 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:24,889 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:24,889 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:24,889 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,890 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:24,890 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:24,890 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,890 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,890 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,890 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,891 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:24,891 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:24,891 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:24,891 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,891 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:24,891 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:24,891 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:24,891 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:24,891 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:24,891 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:24,891 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:24,891 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:24,891 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:24,891 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,051 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.expected.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.expected.hs'>
2026-07-21 12:40:26,052 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.expected.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.expected.hs'>
2026-07-21 12:40:26,053 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.expected.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.expected.hs'>
2026-07-21 12:40:26,065 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.hs'>
2026-07-21 12:40:26,067 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.hs'>
2026-07-21 12:40:26,067 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.hs'>
2026-07-21 12:40:26,081 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,082 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:26,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T18.hs', wd=737, mask=IN_OPEN, cookie=0, name='T18.hs'>
2026-07-21 12:40:26,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,084 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:26,084 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,084 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:26,084 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:26,085 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:26,085 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:26,085 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:26,085 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,085 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:26,086 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:26,086 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,087 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,087 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:26,087 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T18.hs', wd=737, mask=IN_OPEN, cookie=0, name='T18.hs'>
2026-07-21 12:40:26,087 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:26,087 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,088 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:26,089 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:26,089 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:26,089 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:26,090 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:26,090 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,090 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:26,090 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:26,090 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,091 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,088 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,091 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:26,091 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T18.hs', wd=737, mask=IN_OPEN, cookie=0, name='T18.hs'>
2026-07-21 12:40:26,091 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:26,091 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,092 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:26,092 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:26,092 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:26,093 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:26,093 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:26,094 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,094 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:26,094 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:26,095 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,095 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,095 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T18.expected.hs', wd=737, mask=IN_OPEN, cookie=0, name='T18.expected.hs'>
2026-07-21 12:40:26,095 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,095 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,096 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:26,092 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T18.expected.hs', wd=737, mask=IN_OPEN, cookie=0, name='T18.expected.hs'>
2026-07-21 12:40:26,092 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,099 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,099 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,099 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:26,099 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:26,099 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,099 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:26,100 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:26,100 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:26,100 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:26,100 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:26,100 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,100 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:26,100 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:26,100 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,100 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,100 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,101 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T18.expected.hs', wd=737, mask=IN_OPEN, cookie=0, name='T18.expected.hs'>
2026-07-21 12:40:26,101 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,101 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,101 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:26,101 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:26,101 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,101 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:26,101 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:26,101 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:26,101 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:26,101 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:26,101 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,102 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:26,102 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:26,102 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:26,102 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,102 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:26,102 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:26,102 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:26,102 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:26,102 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:26,102 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,102 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:26,103 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:26,103 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,103 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,103 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,103 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,103 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:26,103 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:26,103 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,103 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:26,103 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:26,104 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:26,104 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:26,104 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:26,104 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,104 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,104 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,106 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:26,107 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:26,107 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,107 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,107 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,107 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:26,107 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:26,107 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,107 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:26,107 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:26,107 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:26,107 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:26,108 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,109 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,109 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,109 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,109 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,109 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,109 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:26,109 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:26,109 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,109 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:26,109 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:26,109 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:26,106 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,110 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,110 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,110 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:26,110 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:26,111 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,111 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:26,111 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:26,111 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:26,111 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:26,111 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:26,111 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,111 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:26,111 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:26,110 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:26,111 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:26,111 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,111 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:26,111 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:26,111 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,111 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:26,112 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.pack'>
2026-07-21 12:40:26,113 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:26,113 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:30,823 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.hs'>
2026-07-21 12:40:30,824 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.hs'>
2026-07-21 12:40:30,824 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.hs'>
2026-07-21 12:40:32,127 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.hs'>
2026-07-21 12:40:32,128 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.hs'>
2026-07-21 12:40:32,129 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/test/testdata/T17.hs', wd=737, mask=IN_OPEN, cookie=0, name='T17.hs'>
2026-07-21 12:40:33,614 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,614 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,614 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:40:33,614 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,614 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,615 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,615 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,615 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:40:33,615 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,615 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,615 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,615 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:40:33,616 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,616 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,617 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,618 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,618 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,618 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,621 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,621 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,621 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,621 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,621 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,621 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,625 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:33,625 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:33,625 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:33,625 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:33,625 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:33,625 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:33,625 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,625 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:33,626 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:33,626 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:33,626 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:33,626 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:33,626 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,626 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:33,626 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:40:33,626 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:40:33,626 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:33,626 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:33,626 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:33,627 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,627 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:33,627 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:33,627 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:33,627 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:33,627 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:33,627 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,627 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:33,627 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:40:33,627 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:40:33,627 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:40:33,627 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:33,627 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:33,628 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:33,628 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:33,628 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:33,628 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:33,628 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:33,628 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:33,628 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,628 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:33,629 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:33,629 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:33,629 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:33,629 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:33,629 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:33,629 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:33,629 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:40:33,629 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:40:33,629 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:33,629 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:42,183 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,183 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,183 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,183 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:40:42,183 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,183 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,184 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:40:42,184 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,184 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,184 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,184 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,184 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,184 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,185 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,185 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:40:42,185 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,188 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,188 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,188 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,188 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,189 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,189 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,192 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:42,192 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:42,192 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:42,193 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:42,193 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:42,193 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:42,193 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:42,193 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:42,193 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:42,194 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:42,195 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:42,195 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:42,195 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:42,195 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,195 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:42,195 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:40:42,195 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:40:42,195 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:42,195 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:42,195 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:42,195 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:42,193 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:42,195 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,195 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:42,196 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:42,196 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:42,196 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:42,196 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:42,196 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:42,196 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:42,196 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:40:42,196 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:40:42,196 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:42,196 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:51,013 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,014 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,014 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:40:51,014 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,015 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,016 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,017 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,018 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:40:51,018 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,018 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,019 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,019 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,019 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,020 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,021 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,022 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,022 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:40:51,022 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,023 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,028 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,029 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,029 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,030 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,030 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,031 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,043 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:51,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:51,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:51,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:51,045 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:51,045 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:51,045 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:51,045 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:51,045 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,045 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:51,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:51,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:51,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:51,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:51,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:51,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:40:51,047 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:40:51,047 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:40:51,047 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:51,047 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,047 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:51,048 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:51,048 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:51,048 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:51,048 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:51,049 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,049 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:51,049 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:40:51,050 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:40:51,050 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:51,050 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:51,049 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:51,051 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:51,051 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:51,048 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:51,052 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:51,052 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:51,052 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:51,052 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:51,052 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,053 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:51,053 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:51,053 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:51,053 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:51,053 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:51,053 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:51,053 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:51,053 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:40:51,054 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:40:51,054 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:51,054 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:54,473 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,474 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,474 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:40:54,474 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,474 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,474 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,474 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,474 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:40:54,474 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,474 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,474 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,474 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,475 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,475 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:40:54,475 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,475 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,475 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,475 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,477 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,477 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,478 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,478 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,478 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,478 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,482 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:54,482 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:54,482 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:54,482 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:54,483 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:54,483 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:54,484 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:54,484 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,484 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:54,484 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:54,485 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,485 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:54,485 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:54,485 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:54,485 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:54,485 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:54,485 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,485 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:54,484 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:54,486 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:40:54,486 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:40:54,486 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,486 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:54,486 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:54,486 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:54,486 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:54,486 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:54,486 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,486 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:54,487 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:40:54,487 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:40:54,487 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:40:54,487 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:54,487 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:54,486 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:40:54,487 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:40:54,487 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:40:54,487 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:40:54,486 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:40:54,487 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:40:54,487 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:40:54,488 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:40:54,488 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:40:54,488 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:40:54,488 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:40:54,488 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:54,488 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:40:54,488 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:40:54,489 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:00,025 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,025 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,026 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:41:00,026 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,026 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,026 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,026 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,026 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,026 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:41:00,026 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,026 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,027 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,026 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,027 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:41:00,027 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,027 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,026 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,027 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,029 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,029 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,030 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,030 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,030 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,030 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,037 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:00,037 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:00,037 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:41:00,037 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:41:00,037 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,037 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:41:00,037 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:41:00,038 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:41:00,038 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:41:00,038 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:41:00,038 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,038 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:41:00,038 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:41:00,038 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:41:00,038 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:41:00,038 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:00,039 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:00,039 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:00,039 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:00,039 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:41:00,039 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:41:00,039 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,039 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:41:00,039 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:41:00,039 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:41:00,039 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:41:00,039 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:41:00,039 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,040 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:41:00,040 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:41:00,040 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:41:00,040 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:00,040 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:41:00,040 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:41:00,040 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,040 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:41:00,040 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:41:00,040 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:41:00,040 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:41:00,040 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:41:00,040 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:00,041 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:41:00,041 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:41:00,041 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:41:00,041 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:00,041 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:00,041 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:00,041 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:00,042 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:00,042 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:05,241 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:05,242 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:05,242 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,012 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,013 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,014 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,014 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:41:11,014 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,015 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,015 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,016 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,017 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:41:11,017 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,018 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,019 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:41:11,019 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,020 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,022 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,023 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,024 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,024 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,031 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,032 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,032 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,034 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,035 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,036 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,047 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:11,049 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:11,049 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:41:11,049 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:41:11,050 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,050 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:41:11,050 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:41:11,050 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:41:11,051 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:41:11,051 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:41:11,051 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,051 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:41:11,052 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:41:11,052 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:41:11,048 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:11,052 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:11,048 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:11,054 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:11,055 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:11,055 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:41:11,055 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:41:11,055 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,055 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:41:11,055 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:41:11,056 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:41:11,056 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:41:11,056 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:41:11,056 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,056 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:41:11,056 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:41:11,056 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:41:11,057 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:11,057 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:11,057 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:11,057 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:11,058 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:41:11,058 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:41:11,058 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,058 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:41:11,058 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:41:11,058 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:41:11,058 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:41:11,058 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:41:11,060 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:11,060 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:41:11,060 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:41:11,060 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:41:11,060 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:11,060 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:11,059 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:20,032 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,033 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,033 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:41:20,033 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,033 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,033 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,033 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,033 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:41:20,033 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,033 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,034 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,034 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,034 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,034 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,035 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,035 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:41:20,035 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,035 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,035 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,037 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,037 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,038 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,038 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,038 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,038 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,041 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:20,042 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:20,042 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:20,042 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:41:20,042 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:20,042 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:20,043 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:41:20,043 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,043 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:41:20,043 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:41:20,043 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,043 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:41:20,043 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:41:20,043 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:41:20,043 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:41:20,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:41:20,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:41:20,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:41:20,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:41:20,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:20,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:20,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:41:20,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:41:20,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:41:20,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:41:20,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:41:20,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,045 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:41:20,045 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:41:20,045 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:41:20,045 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:20,045 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:20,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:41:20,045 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:41:20,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:41:20,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:41:20,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:41:20,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:41:20,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:41:20,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:41:20,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:41:20,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:41:20,047 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:41:20,047 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:41:20,047 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:41:20,047 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:41:20,047 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:04,672 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,672 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,672 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,672 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:42:04,672 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,673 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,673 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:42:04,673 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,673 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,673 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,673 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,673 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,673 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,673 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,674 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,674 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,674 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:42:04,674 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,676 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,676 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,676 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,676 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,676 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,676 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,680 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:04,680 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:04,680 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:42:04,680 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:04,681 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:04,681 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:04,681 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:04,681 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:04,682 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:42:04,682 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:04,682 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:42:04,683 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,683 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:42:04,684 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,684 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:42:04,684 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:42:04,684 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:42:04,684 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:42:04,684 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:42:04,684 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,684 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:42:04,685 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:42:04,685 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:42:04,685 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:04,685 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:04,683 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:42:04,685 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:42:04,685 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,685 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:42:04,685 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:42:04,686 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:42:04,686 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:42:04,686 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:42:04,686 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,686 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:42:04,686 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:42:04,687 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:42:04,686 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:42:04,687 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:42:04,687 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:42:04,687 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:42:04,687 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:42:04,687 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:04,687 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:42:04,687 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:42:04,687 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:42:04,687 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:04,687 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:04,687 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:04,688 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:08,037 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,038 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,039 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,040 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:42:08,040 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,041 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,038 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,042 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,042 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:42:08,043 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,043 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,044 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,045 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,046 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,047 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,047 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,048 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:42:08,048 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,048 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,055 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,056 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,056 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,057 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,058 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,058 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,070 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:08,070 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:08,071 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:42:08,071 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:08,071 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:08,072 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:08,072 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:08,073 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:42:08,073 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,074 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:42:08,074 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:42:08,074 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:42:08,074 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:42:08,075 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:42:08,075 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,075 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:42:08,075 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:42:08,075 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:42:08,076 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:08,076 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:08,076 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:08,078 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:42:08,078 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:42:08,078 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,079 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:42:08,080 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:42:08,080 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:42:08,080 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:42:08,080 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:42:08,080 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,080 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:42:08,078 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:08,081 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:42:08,081 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:42:08,081 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,081 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:42:08,081 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:42:08,081 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:42:08,081 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:42:08,081 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:42:08,081 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:08,081 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:42:08,080 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:42:08,082 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:42:08,082 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:42:08,082 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:08,082 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:08,081 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:42:08,082 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:42:08,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:08,083 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:26,563 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,563 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,563 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:42:26,563 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,563 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,563 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,563 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,563 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:42:26,563 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,563 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,564 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,564 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,564 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,564 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,565 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/plugins/hls-case-split-plugin/src/Ide/Plugin/CaseSplit.hs', wd=739, mask=IN_OPEN, cookie=0, name='CaseSplit.hs'>
2026-07-21 12:42:26,565 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,565 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,565 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,568 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,569 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,569 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,569 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,569 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,569 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,572 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:26,573 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:26,573 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:26,573 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:26,573 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:42:26,573 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:26,573 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:42:26,573 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:42:26,573 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,574 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:42:26,574 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:42:26,574 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:42:26,574 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:42:26,574 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:42:26,574 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,574 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:42:26,574 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:42:26,574 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:42:26,574 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:26,574 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:26,574 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:26,574 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/index', wd=2, mask=IN_OPEN, cookie=0, name='index'>
2026-07-21 12:42:26,575 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:42:26,575 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,575 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:42:26,575 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:42:26,575 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:42:26,575 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:42:26,575 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:42:26,575 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,575 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:42:26,575 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:42:26,575 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:42:26,575 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:26,575 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:26,575 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=2, mask=IN_ISDIR|IN_OPEN, cookie=0, name='refs'>
2026-07-21 12:42:26,576 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs', wd=24, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,576 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:26,576 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:26,576 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
2026-07-21 12:42:26,578 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/refs/stash', wd=24, mask=IN_OPEN, cookie=0, name='stash'>
2026-07-21 12:42:26,578 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/packed-refs', wd=2, mask=IN_OPEN, cookie=0, name='packed-refs'>
2026-07-21 12:42:26,578 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/commit-graph-chain', wd=71, mask=IN_OPEN, cookie=0, name='commit-graph-chain'>
2026-07-21 12:42:26,578 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/info/commit-graphs/graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph', wd=71, mask=IN_OPEN, cookie=0, name='graph-14204059315a4d9ae2fe4579b9a53ea31fcacef2.graph'>
2026-07-21 12:42:26,578 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=26, mask=IN_ISDIR|IN_OPEN, cookie=0, name='pack'>
2026-07-21 12:42:26,578 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack', wd=67, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
2026-07-21 12:42:26,578 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-93cecea26074b162c19e00a189bd9361c165b7e4.idx'>
2026-07-21 12:42:26,578 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/pack/pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx', wd=67, mask=IN_OPEN, cookie=0, name='pack-a14343531a082c3d5ce2ca1f5f86491363325063.idx'>
2026-07-21 12:42:26,578 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/objects/3c/ad21407c93d0f7af986cea5234d9f1c0c6d4bb', wd=61, mask=IN_OPEN, cookie=0, name='ad21407c93d0f7af986cea5234d9f1c0c6d4bb'>
2026-07-21 12:42:26,578 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/HEAD', wd=2, mask=IN_OPEN, cookie=0, name='HEAD'>
2026-07-21 12:42:26,578 - DEBUG - in-event <InotifyEvent: src_path=b'/home/enrico/haskell-language-server/.git/config', wd=2, mask=IN_OPEN, cookie=0, name='config'>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment