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 +5/−5
- src/Test/Hls.hs +28/−3
- src/Test/Hls/Util.hs +1/−1
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