We are building an LSP client using omnisharp-roslyn server in python using BaseLanguageClient from pygls.
Once I start the server, using client.start_io
which utilizes stdin version of omnisharp-roslyn. We are unable to get any response even the initialization request in async version doesn’t get the response and awaits forever.
Here is csharp_lsp_client.py
:
import asyncio
import logging
from lsprotocol.types import InitializeParams, DidOpenTextDocumentParams, TextDocumentItem, ClientCapabilities, CallHierarchyOutgoingCallsParams, CallHierarchyItem, SymbolKind, Range, Position, DefinitionParams, DocumentSymbolParams, TextDocumentIdentifier, DocumentHighlightParams
from pygls.lsp.client import BaseLanguageClient
# Configure logging
# logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# logging.basicConfig(level=logging.DEBUG)
async def main():
client = BaseLanguageClient('C Sharp', '2.0')
await client.start_io(
"omnisharp",
"-lsp",
"-s",
r"bloop_in_pythonomnisharp-roslyn", # complete path, this is just for sample
)
print('started')
# Initialize the client
initialize_result = await client.initialize_async(InitializeParams(ClientCapabilities()))
print(initialize_result)
if __name__ == '__main__':
asyncio.run(main())