- git init
- git remote add origin https://github.com/haskell/haskell-ide-engine.git
- git pull origin master
- - git checkout 890ca3f2f3bd3bfe74e1f38a426b383a847763bb
+ - git checkout 89988b66a7b2d305740a9a085009a21fd4c80adf
- git submodule init
- git submodule sync
- git submodule update --init
- - stack --no-terminal --skip-ghc-check -j2 install --stack-yaml=stack-8.6.2.yaml
- - stack exec hoogle generate --stack-yaml=stack-8.6.2.yaml
+ - stack --no-terminal --skip-ghc-check -j2 install
+ - stack exec hoogle generate
- cd $TRAVIS_BUILD_DIR
- npm update
- npm i -g javascript-typescript-langserver
, getReferences
-- ** Definitions
, getDefinitions
+ , getTypeDefinitions
-- ** Renaming
, rename
-- ** Hover
let params = TextDocumentPositionParams doc pos
in getResponseResult <$> request TextDocumentDefinition params
+-- | Returns the type definition(s) for the term at the specified position.
+getTypeDefinitions :: TextDocumentIdentifier -- ^ The document the term is in.
+ -> Position -- ^ The position the term is at.
+ -> Session [Location] -- ^ The location(s) of the definitions
+getTypeDefinitions doc pos =
+ let params = TextDocumentPositionParams doc pos
+ in getResponseResult <$> request TextDocumentTypeDefinition params
+
-- | Renames the term at the specified position.
rename :: TextDocumentIdentifier -> Position -> String -> Session ()
rename doc pos newName = do
(ReqCompletionItemResolve val) -> insert val acc
(ReqSignatureHelp val) -> insert val acc
(ReqDefinition val) -> insert val acc
+ (ReqTypeDefinition val) -> insert val acc
(ReqFindReferences val) -> insert val acc
(ReqDocumentHighlights val) -> insert val acc
(ReqDocumentSymbols val) -> insert val acc
CompletionItemResolve -> RspCompletionItemResolve . decoded
TextDocumentSignatureHelp -> RspSignatureHelp . decoded
TextDocumentDefinition -> RspDefinition . decoded
+ TextDocumentTypeDefinition -> RspTypeDefinition . decoded
TextDocumentReferences -> RspFindReferences . decoded
TextDocumentDocumentHighlight -> RspDocumentHighlights . decoded
TextDocumentDocumentSymbol -> RspDocumentSymbols . decoded
isServerResponse (RspCompletionItemResolve _) = True
isServerResponse (RspSignatureHelp _) = True
isServerResponse (RspDefinition _) = True
+isServerResponse (RspTypeDefinition _) = True
isServerResponse (RspFindReferences _) = True
isServerResponse (RspDocumentHighlights _) = True
isServerResponse (RspDocumentSymbols _) = True
-resolver: nightly-2018-12-01
+resolver: lts-13.9
packages:
- .
-extra-deps:
- - haskell-lsp-0.8.0.1
- - haskell-lsp-types-0.8.0.1
defs <- getDefinitions doc pos
liftIO $ defs `shouldBe` [Location (doc ^. uri) (mkRange 28 0 28 7)]
+ -- describe "getTypeDefinitions" $
+ -- it "works" $ runSession "hie" fullCaps "test/data/renamePass" $ do
+ -- doc <- openDoc "Desktop/simple.hs" "haskell"
+ -- let pos = Position 20 23 -- Quit value
+ -- defs <- getTypeDefinitions doc pos
+ -- liftIO $ defs `shouldBe` [Location (doc ^. uri) (mkRange 10 5 10 12)] -- Type definition
+
describe "waitForDiagnosticsSource" $
it "works" $ runSession "hie" fullCaps "test/data" $ do
openDoc "Error.hs" "haskell"