MCPcopy
hub / github.com/oraios/serena / _start_server

Method _start_server

src/solidlsp/language_servers/marksman.py:238–273  ·  view source on GitHub ↗

Starts the Marksman Language Server and waits for it to be ready.

(self)

Source from the content-addressed store, hash-verified

236 return initialize_params
237
238 def _start_server(self) -> None:
239 """
240 Starts the Marksman Language Server and waits for it to be ready.
241 """
242
243 def register_capability_handler(_params: dict) -> None:
244 return
245
246 def window_log_message(msg: dict) -> None:
247 log.info(f"LSP: window/logMessage: {msg}")
248
249 def do_nothing(_params: dict) -> None:
250 return
251
252 self.server.on_request("client/registerCapability", register_capability_handler)
253 self.server.on_notification("window/logMessage", window_log_message)
254 self.server.on_notification("$/progress", do_nothing)
255 self.server.on_notification("textDocument/publishDiagnostics", do_nothing)
256
257 log.info("Starting marksman server process")
258 self.server.start()
259 initialize_params = self._get_initialize_params(self.repository_root_path)
260
261 log.info("Sending initialize request from LSP client to marksman server and awaiting response")
262 init_response = self.server.send.initialize(initialize_params)
263 log.debug(f"Received initialize response from marksman server: {init_response}")
264
265 # Verify server capabilities
266 assert "textDocumentSync" in init_response["capabilities"]
267 assert "completionProvider" in init_response["capabilities"]
268 assert "definitionProvider" in init_response["capabilities"]
269
270 self.server.notify.initialized({})
271
272 # marksman is typically ready immediately after initialization
273 log.info("Marksman server initialization complete")

Callers

nothing calls this directly

Calls 6

on_requestMethod · 0.80
on_notificationMethod · 0.80
initializedMethod · 0.80
startMethod · 0.45
initializeMethod · 0.45

Tested by

no test coverage detected