Version: Qt Creator 4.10.0-beta2 (4.9.83) Based on Qt 5.13.0 (Clang 10.0 (Apple), 64 bit) Built on Jun 26 2019 12:19:18 From revision 63c4428287 macOS 10.14.5 (18F203) The first time I open a document Qt Creator does not send a textDocument/documentSymbol request to my language server, so no Ouline appears. If I close and once again open the document (in the same Qt Creator instance) the textDocument/documentSymbol is sent, and the Outline is filled in by Qt Creator with the information obtained from my language server. -bash$ QT_LOGGING_RULES=qtc.languageclient.*=true ~/Applications/qt-creator-opensource-mac-x86_64-4.10.0-beta2/Qt\ Creator.app/Contents/MacOS/Qt\ Creator | tee ~/qt_lsp.log qtc.languageclient.client: initializing language server "SPIDER Language Server" qtc.languageclient.messages: StdIOClient send data: qtc.languageclient.messages: Content-Length: 1140 {"id":"{bd9609dd-fe28-4430-bd75-c055ddb954ca}","jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"textDocument":{"codeAction":{"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["*"]}}},"completion":{"completionItem":{"commitCharacterSupport":true,"snippetSupport":false},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]},"dynamicRegistration":true},"definition":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentSymbol":{"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"hover":{"contentFormat":["plaintext"],"dynamicRegistration":true},"implementation":{"dynamicRegistration":true},"references":{"dynamicRegistration":true},"synchronization":{"didSave":true,"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":false},"typeDefinition":{"dynamicRegistration":true}},"workspace":{"applyEdit":true,"didChangeConfiguration":{"dynamicRegistration":true},"executeCommand":{"dynamicRegistration":true},"workspaceFolders":true}},"processId":10306,"rootUri":null,"trace":"off"}} qtc.languageclient.messages: StdIOClient std out: qtc.languageclient.messages: Content-Length: 627 {"jsonrpc":"2.0","id":"{bd9609dd-fe28-4430-bd75-c055ddb954ca}","result":{"capabilities":{"textDocumentSync":2,"hoverProvider":true,"completionProvider":{},"definitionProvider":true,"typeDefinitionProvider":false,"implementationProvider":false,"referencesProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"workspaceSymbolProvider":false,"codeActionProvider":false,"documentFormattingProvider":true,"documentRangeFormattingProvider":true,"renameProvider":true,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":true}},"typeHierarchyProvider":false,"callHierarchyProvider":false}}} qtc.languageclient.client: language server "SPIDER Language Server" initialized qtc.languageclient.messages: StdIOClient send data: qtc.languageclient.messages: Content-Length: 52 {"jsonrpc":"2.0","method":"initialized","params":{}} qtc.languageclient.messages: StdIOClient send data: qtc.languageclient.messages: Content-Length: 584 {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"perl","text":"/* -*- Mode:Prolog; coding:utf-8; indent-tabs-mode:nil; prolog-indent-width:8; prolog-paren-indent:4; tab-width:8; -*- */\n\n% M-x eglot\n\n:- ['blork'].\n\nbork(X) :-\n X == Y, % Should warn about certain failure.\n bork([X,Y,2], N),\n bork(41,N),\n append(X,YY,YY),\n Y = N, %\n % assert(bork(a,b)),\n Z is 3+2.\n\n% some documentation\nbork(A,B) :-\n B is A*2.\n","uri":"file:///Users/perm/MyQtProject/blipp.pl","version":1}}} #### No Outline appears (and no textDocument/documentSymbol was sent from Qt Creator). Now I close the document. qtc.languageclient.messages: StdIOClient send data: qtc.languageclient.messages: Content-Length: 126 {"jsonrpc":"2.0","method":"textDocument/didClose","params":{"textDocument":{"uri":"file:///Users/perm/MyQtProject/blipp.pl"}}} ### Now I open the document again qtc.languageclient.messages: StdIOClient send data: qtc.languageclient.messages: Content-Length: 584 {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"perl","text":"/* -*- Mode:Prolog; coding:utf-8; indent-tabs-mode:nil; prolog-indent-width:8; prolog-paren-indent:4; tab-width:8; -*- */\n\n% M-x eglot\n\n:- ['blork'].\n\nbork(X) :-\n X == Y, % Should warn about certain failure.\n bork([X,Y,2], N),\n bork(41,N),\n append(X,YY,YY),\n Y = N, %\n % assert(bork(a,b)),\n Z is 3+2.\n\n% some documentation\nbork(A,B) :-\n B is A*2.\n","uri":"file:///Users/perm/MyQtProject/blipp.pl","version":1}}} qtc.languageclient.messages: StdIOClient send data: qtc.languageclient.messages: Content-Length: 178 {"id":"{a7d5df93-edf0-432d-a023-0d2f5dcfcf9c}","jsonrpc":"2.0","method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///Users/perm/MyQtProject/blipp.pl"}}} qtc.languageclient.messages: StdIOClient send data: qtc.languageclient.messages: Content-Length: 178 {"id":"{5c8b6563-3e2d-42b8-a421-fc1dcd3f87b9}","jsonrpc":"2.0","method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///Users/perm/MyQtProject/blipp.pl"}}} qtc.languageclient.messages: StdIOClient std out: qtc.languageclient.messages: Content-Length: 405 {"jsonrpc":"2.0","id":"{a7d5df93-edf0-432d-a023-0d2f5dcfcf9c}","result":[{"name":"bork/1","kind":12,"location":{"uri":"file:///Users/perm/MyQtProject/blipp.pl","range":{"start":{"line":6,"character":0},"end":{"line":13,"character":17}}}},{"name":"bork/2","kind":12,"location":{"uri":"file:///Users/perm/MyQtProject/blipp.pl","range":{"start":{"line":16,"character":0},"end":{"line":17,"character":13}}}}]} qtc.languageclient.messages: StdIOClient std out: qtc.languageclient.messages: Content-Length: 405 {"jsonrpc":"2.0","id":"{5c8b6563-3e2d-42b8-a421-fc1dcd3f87b9}","result":[{"name":"bork/1","kind":12,"location":{"uri":"file:///Users/perm/MyQtProject/blipp.pl","range":{"start":{"line":6,"character":0},"end":{"line":13,"character":17}}}},{"name":"bork/2","kind":12,"location":{"uri":"file:///Users/perm/MyQtProject/blipp.pl","range":{"start":{"line":16,"character":0},"end":{"line":17,"character":13}}}}]} ### Now the Outline view is filled in with two entries corresponding to the textDocument/documentSymbol result