packages feed

hls-test-utils 1.1.0.2 → 1.2.0.0

raw patch · 3 files changed

+34/−9 lines, 3 filesdep ~ghcidedep ~hls-plugin-apidep ~lspPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: ghcide, hls-plugin-api, lsp, lsp-types

API changes (from Hackage documentation)

- Test.Hls: pattern SemanticTokensEdit :: () => Int -> Int -> Maybe (List Int) -> SemanticTokensEdit
+ Test.Hls: MarkdownClientCapabilities :: Text -> Maybe Text -> MarkdownClientCapabilities
+ Test.Hls: ShowDocumentParams :: Uri -> Maybe Bool -> Maybe Bool -> Maybe Range -> ShowDocumentParams
+ Test.Hls: ShowDocumentResult :: Bool -> ShowDocumentResult
+ Test.Hls: [$sel:_external:ShowDocumentParams] :: ShowDocumentParams -> Maybe Bool
+ Test.Hls: [$sel:_failedChange:ApplyWorkspaceEditResponseBody] :: ApplyWorkspaceEditResponseBody -> Maybe UInt
+ Test.Hls: [$sel:_parser:MarkdownClientCapabilities] :: MarkdownClientCapabilities -> Text
+ Test.Hls: [$sel:_selection:ShowDocumentParams] :: ShowDocumentParams -> Maybe Range
+ Test.Hls: [$sel:_success:ShowDocumentResult] :: ShowDocumentResult -> Bool
+ Test.Hls: [$sel:_takeFocus:ShowDocumentParams] :: ShowDocumentParams -> Maybe Bool
+ Test.Hls: [$sel:_uri:ShowDocumentParams] :: ShowDocumentParams -> Uri
+ Test.Hls: [$sel:_version:MarkdownClientCapabilities] :: MarkdownClientCapabilities -> Maybe Text
+ Test.Hls: [SWindowShowDocument] :: SMethod 'WindowShowDocument
+ Test.Hls: [WindowShowDocument] :: Method 'FromServer 'Request
+ Test.Hls: codeActionKindSubsumes :: CodeActionKind -> CodeActionKind -> Bool
+ Test.Hls: data Int32
+ Test.Hls: data MarkdownClientCapabilities
+ Test.Hls: data ShowDocumentParams
+ Test.Hls: data ShowDocumentResult
+ Test.Hls: data UInt
+ Test.Hls: fromHierarchicalString :: Text -> CodeActionKind
+ Test.Hls: pattern SemanticTokensEdit :: () => UInt -> UInt -> Maybe (List UInt) -> SemanticTokensEdit
+ Test.Hls: plainTextToMarkdown :: Text -> Text
+ Test.Hls: specCodeActionKinds :: [CodeActionKind]
+ Test.Hls: toHierarchicalString :: CodeActionKind -> Text
+ Test.Hls: waitForKickDone :: Session ()
+ Test.Hls: waitForKickStart :: Session ()
- Test.Hls: ($sel:_deleteCount:SemanticTokensEdit) :: SemanticTokensEdit -> Int
+ Test.Hls: ($sel:_deleteCount:SemanticTokensEdit) :: SemanticTokensEdit -> UInt
- Test.Hls: ($sel:_xdata:SemanticTokensEdit) :: SemanticTokensEdit -> Maybe (List Int)
+ Test.Hls: ($sel:_xdata:SemanticTokensEdit) :: SemanticTokensEdit -> Maybe (List UInt)
- Test.Hls: ($sel:deltaLine:SemanticTokenRelative) :: SemanticTokenRelative -> Int
+ Test.Hls: ($sel:deltaLine:SemanticTokenRelative) :: SemanticTokenRelative -> UInt
- Test.Hls: ($sel:deltaStartChar:SemanticTokenRelative) :: SemanticTokenRelative -> Int
+ Test.Hls: ($sel:deltaStartChar:SemanticTokenRelative) :: SemanticTokenRelative -> UInt
- Test.Hls: ($sel:startChar:SemanticTokenAbsolute) :: SemanticTokenAbsolute -> Int
+ Test.Hls: ($sel:startChar:SemanticTokenAbsolute) :: SemanticTokenAbsolute -> UInt
- Test.Hls: ApplyWorkspaceEditResponseBody :: Bool -> Maybe Text -> ApplyWorkspaceEditResponseBody
+ Test.Hls: ApplyWorkspaceEditResponseBody :: Bool -> Maybe Text -> Maybe UInt -> ApplyWorkspaceEditResponseBody
- Test.Hls: Color :: Int -> Int -> Int -> Int -> Color
+ Test.Hls: Color :: Float -> Float -> Float -> Float -> Color
- Test.Hls: Diagnostic :: Range -> Maybe DiagnosticSeverity -> Maybe (Int |? Text) -> Maybe DiagnosticSource -> Text -> Maybe (List DiagnosticTag) -> Maybe (List DiagnosticRelatedInformation) -> Diagnostic
+ Test.Hls: Diagnostic :: Range -> Maybe DiagnosticSeverity -> Maybe (Int32 |? Text) -> Maybe DiagnosticSource -> Text -> Maybe (List DiagnosticTag) -> Maybe (List DiagnosticRelatedInformation) -> Diagnostic
- Test.Hls: Edit :: Int -> Int -> [a] -> Edit a
+ Test.Hls: Edit :: UInt -> UInt -> [a] -> Edit a
- Test.Hls: FoldingRange :: Int -> Maybe Int -> Int -> Maybe Int -> Maybe FoldingRangeKind -> FoldingRange
+ Test.Hls: FoldingRange :: UInt -> Maybe UInt -> UInt -> Maybe UInt -> Maybe FoldingRangeKind -> FoldingRange
- Test.Hls: FoldingRangeClientCapabilities :: Maybe Bool -> Maybe Int -> Maybe Bool -> FoldingRangeClientCapabilities
+ Test.Hls: FoldingRangeClientCapabilities :: Maybe Bool -> Maybe UInt -> Maybe Bool -> FoldingRangeClientCapabilities
- Test.Hls: FormattingOptions :: Int -> Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> FormattingOptions
+ Test.Hls: FormattingOptions :: UInt -> Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> FormattingOptions
- Test.Hls: IdInt :: !Int -> LspId (m :: Method f 'Request)
+ Test.Hls: IdInt :: !Int32 -> LspId (m :: Method f 'Request)
- Test.Hls: InitializeParams :: Maybe ProgressToken -> Maybe Int -> Maybe ClientInfo -> Maybe Text -> Maybe Uri -> Maybe Value -> ClientCapabilities -> Maybe Trace -> Maybe (List WorkspaceFolder) -> InitializeParams
+ Test.Hls: InitializeParams :: Maybe ProgressToken -> Maybe Int32 -> Maybe ClientInfo -> Maybe Text -> Maybe Uri -> Maybe Value -> ClientCapabilities -> Maybe Trace -> Maybe (List WorkspaceFolder) -> InitializeParams
- Test.Hls: ParameterLabelOffset :: Int -> Int -> ParameterLabel
+ Test.Hls: ParameterLabelOffset :: UInt -> UInt -> ParameterLabel
- Test.Hls: Position :: Int -> Int -> Position
+ Test.Hls: Position :: UInt -> UInt -> Position
- Test.Hls: ProgressNumericToken :: Int -> ProgressToken
+ Test.Hls: ProgressNumericToken :: Int32 -> ProgressToken
- Test.Hls: PublishDiagnosticsParams :: Uri -> Maybe Int -> List Diagnostic -> PublishDiagnosticsParams
+ Test.Hls: PublishDiagnosticsParams :: Uri -> Maybe UInt -> List Diagnostic -> PublishDiagnosticsParams
- Test.Hls: SemanticTokens :: Maybe Text -> List Int -> SemanticTokens
+ Test.Hls: SemanticTokens :: Maybe Text -> List UInt -> SemanticTokens
- Test.Hls: SemanticTokensPartialResult :: List Int -> SemanticTokensPartialResult
+ Test.Hls: SemanticTokensPartialResult :: List UInt -> SemanticTokensPartialResult
- Test.Hls: SignatureHelp :: List SignatureInformation -> Maybe Int -> Maybe Int -> SignatureHelp
+ Test.Hls: SignatureHelp :: List SignatureInformation -> Maybe UInt -> Maybe UInt -> SignatureHelp
- Test.Hls: SignatureInformation :: Text -> Maybe SignatureHelpDoc -> Maybe (List ParameterInformation) -> Maybe Int -> SignatureInformation
+ Test.Hls: SignatureInformation :: Text -> Maybe SignatureHelpDoc -> Maybe (List ParameterInformation) -> Maybe UInt -> SignatureInformation
- Test.Hls: TextDocumentContentChangeEvent :: Maybe Range -> Maybe Int -> Text -> TextDocumentContentChangeEvent
+ Test.Hls: TextDocumentContentChangeEvent :: Maybe Range -> Maybe UInt -> Text -> TextDocumentContentChangeEvent
- Test.Hls: TextDocumentItem :: Uri -> Text -> Int -> Text -> TextDocumentItem
+ Test.Hls: TextDocumentItem :: Uri -> Text -> Int32 -> Text -> TextDocumentItem
- Test.Hls: WorkDoneProgressBeginParams :: Text -> Maybe Bool -> Maybe Text -> Maybe Double -> WorkDoneProgressBeginParams
+ Test.Hls: WorkDoneProgressBeginParams :: Text -> Maybe Bool -> Maybe Text -> Maybe UInt -> WorkDoneProgressBeginParams
- Test.Hls: WorkDoneProgressReportParams :: Maybe Bool -> Maybe Text -> Maybe Double -> WorkDoneProgressReportParams
+ Test.Hls: WorkDoneProgressReportParams :: Maybe Bool -> Maybe Text -> Maybe UInt -> WorkDoneProgressReportParams
- Test.Hls: [$sel:_activeParameter:SignatureHelp] :: SignatureHelp -> Maybe Int
+ Test.Hls: [$sel:_activeParameter:SignatureHelp] :: SignatureHelp -> Maybe UInt
- Test.Hls: [$sel:_activeParameter:SignatureInformation] :: SignatureInformation -> Maybe Int
+ Test.Hls: [$sel:_activeParameter:SignatureInformation] :: SignatureInformation -> Maybe UInt
- Test.Hls: [$sel:_activeSignature:SignatureHelp] :: SignatureHelp -> Maybe Int
+ Test.Hls: [$sel:_activeSignature:SignatureHelp] :: SignatureHelp -> Maybe UInt
- Test.Hls: [$sel:_alpha:Color] :: Color -> Int
+ Test.Hls: [$sel:_alpha:Color] :: Color -> Float
- Test.Hls: [$sel:_blue:Color] :: Color -> Int
+ Test.Hls: [$sel:_blue:Color] :: Color -> Float
- Test.Hls: [$sel:_code:Diagnostic] :: Diagnostic -> Maybe (Int |? Text)
+ Test.Hls: [$sel:_code:Diagnostic] :: Diagnostic -> Maybe (Int32 |? Text)
- Test.Hls: [$sel:_endCharacter:FoldingRange] :: FoldingRange -> Maybe Int
+ Test.Hls: [$sel:_endCharacter:FoldingRange] :: FoldingRange -> Maybe UInt
- Test.Hls: [$sel:_endLine:FoldingRange] :: FoldingRange -> Int
+ Test.Hls: [$sel:_endLine:FoldingRange] :: FoldingRange -> UInt
- Test.Hls: [$sel:_green:Color] :: Color -> Int
+ Test.Hls: [$sel:_green:Color] :: Color -> Float
- Test.Hls: [$sel:_percentage:WorkDoneProgressBeginParams] :: WorkDoneProgressBeginParams -> Maybe Double
+ Test.Hls: [$sel:_percentage:WorkDoneProgressBeginParams] :: WorkDoneProgressBeginParams -> Maybe UInt
- Test.Hls: [$sel:_percentage:WorkDoneProgressReportParams] :: WorkDoneProgressReportParams -> Maybe Double
+ Test.Hls: [$sel:_percentage:WorkDoneProgressReportParams] :: WorkDoneProgressReportParams -> Maybe UInt
- Test.Hls: [$sel:_processId:InitializeParams] :: InitializeParams -> Maybe Int
+ Test.Hls: [$sel:_processId:InitializeParams] :: InitializeParams -> Maybe Int32
- Test.Hls: [$sel:_rangeLength:TextDocumentContentChangeEvent] :: TextDocumentContentChangeEvent -> Maybe Int
+ Test.Hls: [$sel:_rangeLength:TextDocumentContentChangeEvent] :: TextDocumentContentChangeEvent -> Maybe UInt
- Test.Hls: [$sel:_rangeLimit:FoldingRangeClientCapabilities] :: FoldingRangeClientCapabilities -> Maybe Int
+ Test.Hls: [$sel:_rangeLimit:FoldingRangeClientCapabilities] :: FoldingRangeClientCapabilities -> Maybe UInt
- Test.Hls: [$sel:_red:Color] :: Color -> Int
+ Test.Hls: [$sel:_red:Color] :: Color -> Float
- Test.Hls: [$sel:_startCharacter:FoldingRange] :: FoldingRange -> Maybe Int
+ Test.Hls: [$sel:_startCharacter:FoldingRange] :: FoldingRange -> Maybe UInt
- Test.Hls: [$sel:_startLine:FoldingRange] :: FoldingRange -> Int
+ Test.Hls: [$sel:_startLine:FoldingRange] :: FoldingRange -> UInt
- Test.Hls: [$sel:_tabSize:FormattingOptions] :: FormattingOptions -> Int
+ Test.Hls: [$sel:_tabSize:FormattingOptions] :: FormattingOptions -> UInt
- Test.Hls: [$sel:_version:PublishDiagnosticsParams] :: PublishDiagnosticsParams -> Maybe Int
+ Test.Hls: [$sel:_version:PublishDiagnosticsParams] :: PublishDiagnosticsParams -> Maybe UInt
- Test.Hls: [$sel:_version:TextDocumentItem] :: TextDocumentItem -> Int
+ Test.Hls: [$sel:_version:TextDocumentItem] :: TextDocumentItem -> Int32
- Test.Hls: [$sel:_xdata:SemanticTokensPartialResult] :: SemanticTokensPartialResult -> List Int
+ Test.Hls: [$sel:_xdata:SemanticTokensPartialResult] :: SemanticTokensPartialResult -> List UInt
- Test.Hls: [$sel:_xdata:SemanticTokens] :: SemanticTokens -> List Int
+ Test.Hls: [$sel:_xdata:SemanticTokens] :: SemanticTokens -> List UInt
- Test.Hls: [$sel:editDeleteCount:Edit] :: Edit a -> Int
+ Test.Hls: [$sel:editDeleteCount:Edit] :: Edit a -> UInt
- Test.Hls: [$sel:editStart:Edit] :: Edit a -> Int
+ Test.Hls: [$sel:editStart:Edit] :: Edit a -> UInt
- Test.Hls: [_character] :: Position -> Int
+ Test.Hls: [_character] :: Position -> UInt
- Test.Hls: [_line] :: Position -> Int
+ Test.Hls: [_line] :: Position -> UInt
- Test.Hls: addNullField :: Text -> Value -> Value
+ Test.Hls: addNullField :: String -> Value -> Value
- Test.Hls: encodeTokens :: SemanticTokensLegend -> [SemanticTokenRelative] -> Either Text [Int]
+ Test.Hls: encodeTokens :: SemanticTokensLegend -> [SemanticTokenRelative] -> Either Text [UInt]
- Test.Hls: mkRange :: Int -> Int -> Int -> Int -> Range
+ Test.Hls: mkRange :: UInt -> UInt -> UInt -> UInt -> Range
- Test.Hls: type TextDocumentVersion = Maybe Int
+ Test.Hls: type TextDocumentVersion = Maybe Int32
- Test.Hls.Util: type SymbolLocation = (FilePath, Int, Int)
+ Test.Hls.Util: type SymbolLocation = (FilePath, UInt, UInt)

Files

hls-test-utils.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name:          hls-test-utils-version:       1.1.0.2+version:       1.2.0.0 synopsis:      Utilities used in the tests of Haskell Language Server description:   Please see the README on GitHub at <https://github.com/haskell/haskell-language-server#readme>@@ -41,15 +41,15 @@     , directory     , extra     , filepath-    , ghcide                  ^>=1.5.0+    , ghcide                  ^>=1.6     , hls-graph-    , hls-plugin-api          ^>=1.2+    , hls-plugin-api          ^>=1.3     , hspec                   <2.8     , hspec-core     , lens-    , lsp                     ^>=1.2+    , lsp                     ^>=1.4     , lsp-test                ^>=0.14-    , lsp-types               >=1.2  && <1.4+    , lsp-types               ^>=1.4.0.1     , tasty     , tasty-expected-failure     , tasty-golden
src/Test/Hls.hs view
@@ -2,6 +2,7 @@ {-# LANGUAGE LambdaCase        #-} {-# LANGUAGE NamedFieldPuns    #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PolyKinds         #-} {-# LANGUAGE RecordWildCards   #-} module Test.Hls   ( module Test.Tasty.HUnit,@@ -28,16 +29,21 @@     waitForTypecheck,     waitForAction,     sendConfigurationChanged,-    getLastBuildKeys)+    getLastBuildKeys,+    waitForKickDone,+    waitForKickStart,+    ) where  import           Control.Applicative.Combinators import           Control.Concurrent.Async        (async, cancel, wait) import           Control.Concurrent.Extra import           Control.Exception.Base-import           Control.Monad                   (unless, void)+import           Control.Monad                   (guard, unless, void) import           Control.Monad.IO.Class-import           Data.Aeson                      (Value (Null), toJSON)+import           Data.Aeson                      (Result (Success),+                                                  Value (Null), fromJSON,+                                                  toJSON) import qualified Data.Aeson                      as A import           Data.ByteString.Lazy            (ByteString) import           Data.Default                    (def)@@ -247,3 +253,22 @@ sendConfigurationChanged :: Value -> Session () sendConfigurationChanged config =   sendNotification SWorkspaceDidChangeConfiguration (DidChangeConfigurationParams config)++waitForKickDone :: Session ()+waitForKickDone = void $ skipManyTill anyMessage nonTrivialKickDone++waitForKickStart :: Session ()+waitForKickStart = void $ skipManyTill anyMessage nonTrivialKickStart++nonTrivialKickDone :: Session ()+nonTrivialKickDone = kick "done" >>= guard . not . null++nonTrivialKickStart :: Session ()+nonTrivialKickStart = kick "start" >>= guard . not . null++kick :: T.Text -> Session [FilePath]+kick msg = do+  NotMess NotificationMessage{_params} <- customNotification $ "kick/" <> msg+  case fromJSON _params of+    Success x -> return x+    other     -> error $ "Failed to parse kick/done details: " <> show other
src/Test/Hls/Util.hs view
@@ -433,7 +433,7 @@  -- | To locate a symbol, we provide a path to the file from the HLS root -- directory, the line number, and the column number. (0 indexed.)-type SymbolLocation = (FilePath, Int, Int)+type SymbolLocation = (FilePath, UInt, UInt)  expectSameLocations :: [Location] -> [SymbolLocation] -> Assertion actual `expectSameLocations` expected = do