All files / commands toggle-sparql-connection-inference.ts

100% Statements 13/13
100% Branches 8/8
100% Functions 1/1
100% Lines 13/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32            1x     4x     4x 4x   4x 1x 1x     3x 1x 1x     2x   2x 4x      
import * as vscode from 'vscode';
import { container } from 'tsyringe';
import { ServiceToken } from '@src/services/tokens';
import { ISparqlConnectionService } from '@src/languages/sparql/services';
import { SparqlConnection } from '@src/languages/sparql/services/sparql-connection';
 
export const toggleSparqlConnectionInference = {
	id: 'mentor.command.toggleSparqlConnectionInference',
	handler: async (connection?: SparqlConnection) => {
		const connectionService = container.resolve<ISparqlConnectionService>(ServiceToken.SparqlConnectionService);
		
		// If no connection provided, use workspace store
		const connectionId = connection?.id ?? 'workspace';
		const targetConnection = connectionService.getConnection(connectionId);
		
		if (!targetConnection) {
			vscode.window.showErrorMessage(`Connection not found: ${connectionId}`);
			return;
		}
		
		if (!connectionService.supportsInference(targetConnection)) {
			vscode.window.showErrorMessage(`This connection does not support inference toggling.`);
			return;
		}
		
		const newValue = await connectionService.toggleInferenceEnabled(connectionId);
		
		const statusText = newValue ? 'enabled' : 'disabled';
		vscode.window.setStatusBarMessage(`Inference ${statusText} for ${targetConnection.endpointUrl}`, 5000);
	}
};