MCPcopy Index your code
hub / github.com/codeaashu/claude-code / initialize

Function initialize

src/services/lsp/LSPServerManager.ts:71–148  ·  view source on GitHub ↗

* Initialize the manager by loading all configured LSP servers. * * @throws {Error} If configuration loading fails

()

Source from the content-addressed store, hash-verified

69 * @throws {Error} If configuration loading fails
70 */
71 async function initialize(): Promise<void> {
72 let serverConfigs: Record<string, ScopedLspServerConfig>
73
74 try {
75 const result = await getAllLspServers()
76 serverConfigs = result.servers
77 logForDebugging(
78 `[LSP SERVER MANAGER] getAllLspServers returned ${Object.keys(serverConfigs).length} server(s)`,
79 )
80 } catch (error) {
81 const err = error as Error
82 logError(
83 new Error(`Failed to load LSP server configuration: ${err.message}`),
84 )
85 throw error
86 }
87
88 // Build extension → server mapping
89 for (const [serverName, config] of Object.entries(serverConfigs)) {
90 try {
91 // Validate config before using it
92 if (!config.command) {
93 throw new Error(
94 `Server ${serverName} missing required 'command' field`,
95 )
96 }
97 if (
98 !config.extensionToLanguage ||
99 Object.keys(config.extensionToLanguage).length === 0
100 ) {
101 throw new Error(
102 `Server ${serverName} missing required 'extensionToLanguage' field`,
103 )
104 }
105
106 // Map file extensions to this server (derive from extensionToLanguage)
107 const fileExtensions = Object.keys(config.extensionToLanguage)
108 for (const ext of fileExtensions) {
109 const normalized = ext.toLowerCase()
110 if (!extensionMap.has(normalized)) {
111 extensionMap.set(normalized, [])
112 }
113 const serverList = extensionMap.get(normalized)
114 if (serverList) {
115 serverList.push(serverName)
116 }
117 }
118
119 // Create server instance
120 const instance = createLSPServerInstance(serverName, config)
121 servers.set(serverName, instance)
122
123 // Register handler for workspace/configuration requests from the server
124 // Some servers (like TypeScript) send these even when we say we don't support them
125 instance.onRequest(
126 'workspace/configuration',
127 (params: { items: Array<{ section?: string }> }) => {
128 logForDebugging(

Callers

nothing calls this directly

Calls 10

getAllLspServersFunction · 0.85
logForDebuggingFunction · 0.85
createLSPServerInstanceFunction · 0.85
keysMethod · 0.80
entriesMethod · 0.80
getMethod · 0.65
logErrorFunction · 0.50
hasMethod · 0.45
setMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected