MCPcopy Create free account
hub / github.com/Acode-Foundation/Acode / selectRuntimeProvider

Function selectRuntimeProvider

src/cm/lsp/runtimeProviders.ts:118–165  ·  view source on GitHub ↗
(
	server: LspServerDefinition,
	context: LspRuntimeContext = {},
)

Source from the content-addressed store, hash-verified

116}
117
118export async function selectRuntimeProvider(
119 server: LspServerDefinition,
120 context: LspRuntimeContext = {},
121): Promise<LspRuntimeProvider | null> {
122 const runtimeContext = withDerivedContext(server, context);
123 const configuredRuntimeId = getConfiguredRuntimeId(server, runtimeContext);
124 if (configuredRuntimeId) {
125 const configuredProvider = getRuntimeProvider(configuredRuntimeId);
126 if (!configuredProvider) {
127 console.warn(
128 `Configured LSP runtime provider ${configuredRuntimeId} is not registered`,
129 );
130 } else if (!canProviderRunServer(configuredProvider, server)) {
131 console.warn(
132 `Configured LSP runtime provider ${configuredRuntimeId} is not allowed for ${server.id}`,
133 );
134 } else {
135 try {
136 if (await configuredProvider.canHandle(server, runtimeContext)) {
137 return configuredProvider;
138 }
139 console.warn(
140 `Configured LSP runtime provider ${configuredRuntimeId} cannot handle ${server.id}`,
141 );
142 } catch (error) {
143 console.warn(
144 `Configured LSP runtime provider ${configuredRuntimeId} failed canHandle() for ${server.id}`,
145 error,
146 );
147 }
148 }
149 }
150
151 for (const provider of listRuntimeProviders()) {
152 if (!canProviderRunServer(provider, server)) continue;
153 try {
154 if (await provider.canHandle(server, runtimeContext)) {
155 return provider;
156 }
157 } catch (error) {
158 console.warn(
159 `LSP runtime provider ${provider.id} failed canHandle() for ${server.id}`,
160 error,
161 );
162 }
163 }
164 return null;
165}
166
167export function inferWorkspaceKind(
168 context: Pick<LspRuntimeContext, "uri" | "rootUri" | "file">,

Callers 3

#resolveRuntimeTargetMethod · 0.90
getProviderFunction · 0.90
selectFunction · 0.90

Calls 5

getConfiguredRuntimeIdFunction · 0.90
withDerivedContextFunction · 0.85
getRuntimeProviderFunction · 0.85
canProviderRunServerFunction · 0.85
listRuntimeProvidersFunction · 0.85

Tested by

no test coverage detected