MCPcopy Create free account
hub / github.com/modelscope/ms-agent / _init_lsp_servers

Method _init_lsp_servers

projects/code_genesis/workflow/coding.py:542–600  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

540 self.shared_lsp_context = {}
541
542 async def _init_lsp_servers(self):
543 framework_file = os.path.join(self.output_dir, 'framework.txt')
544 if not os.path.exists(framework_file):
545 logger.info('framework.txt not found, skipping LSP initialization')
546 return
547
548 with open(framework_file, 'r') as f:
549 framework = f.read().lower()
550
551 # Detect all languages in the project
552 detected_languages = set()
553
554 if any(kw in framework for kw in
555 ['typescript', 'javascript', 'react', 'node', 'npm', 'html']):
556 detected_languages.add('typescript')
557
558 if any(kw in framework
559 for kw in ['python', 'django', 'flask', 'fastapi']):
560 detected_languages.add('python')
561
562 if any(kw in framework
563 for kw in ['java ', 'java\n', 'spring', 'maven', 'gradle']):
564 detected_languages.add('java')
565
566 if not detected_languages:
567 logger.info('No supported languages detected in framework.txt')
568 return
569
570 logger.info(
571 f"Initializing LSP servers for languages: {', '.join(detected_languages)}"
572 )
573
574 # Initialize LSP server for each detected language
575 lsp_config = DictConfig({
576 'workspace_dir': self.output_dir,
577 'output_dir': self.output_dir
578 })
579
580 lsp_servers = {}
581 for lang in detected_languages:
582 lsp_server = LSPCodeServer(lsp_config)
583 await lsp_server.connect()
584 lsp_servers[lang] = lsp_server
585 logger.info(f'LSP Code Server created for {lang}')
586
587 for lang, lsp_server in lsp_servers.items():
588 logger.info(f'Building LSP index for {lang}...')
589 await lsp_server.call_tool(
590 'lsp_code_server',
591 tool_name='check_directory',
592 tool_args={
593 'directory': '',
594 'language': lang
595 })
596 logger.info(f'LSP index built for {lang}')
597
598 self.shared_lsp_context['lsp_servers'] = lsp_servers
599 self.shared_lsp_context['project_languages'] = detected_languages

Callers 1

execute_codeMethod · 0.95

Calls 4

connectMethod · 0.95
call_toolMethod · 0.95
LSPCodeServerClass · 0.90
addMethod · 0.80

Tested by

no test coverage detected