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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 1x 4x 1x 3x 2x 2x 1x 1x 1x 1x 1x | import * as vscode from 'vscode';
import { container } from 'tsyringe';
import { ServiceToken } from '@src/services/tokens';
import { SparqlQueryExecutionState } from '@src/languages/sparql/services/sparql-query-state';
import { SparqlResultsController } from '@src/views/webviews';
import { ISparqlConnectionService } from '@src/languages/sparql/services';
import { executeNotebookCell } from './execute-notebook-cell';
export const executeSparqlQuery = {
id: 'mentor.command.executeSparqlQuery',
handler: async (query: SparqlQueryExecutionState): Promise<void> => {
if (query.notebookIri && query.cellIndex !== undefined) {
executeNotebookCell.handler(query.notebookIri, query.cellIndex);
} else if (query.documentIri) {
const document = vscode.workspace.textDocuments.find(d => d.uri.toString() === query.documentIri);
if (document) {
const controller = container.resolve<SparqlResultsController>(ServiceToken.SparqlResultsController);
await controller.executeQueryFromTextDocument(document);
} else if (Iquery.connectionId && query.query) {
// Document was closed (e.g. an untitled doc opened via Edit on a background query).
// Fall back to re-running as a background query so the existing tab is reloaded.
const connectionService = container.resolve<ISparqlConnectionService>(ServiceToken.SparqlConnectionService);
const connection = connectionService.getConnection(query.connectionId);
if (!connection) {
throw new Error(`Connection with ID ${query.connectionId} not found.`);
}
const controller = container.resolve<SparqlResultsController>(ServiceToken.SparqlResultsController);
await controller.executeBackgroundQuery(connection, query.query, query.label ?? '');
} else {
throw new Error(`Document with IRI ${query.documentIri} not found.`);
}
} else if (Iquery.connectionId && query.query) {
const connectionService = container.resolve<ISparqlConnectionService>(ServiceToken.SparqlConnectionService);
const connection = connectionService.getConnection(query.connectionId);
if (!connection) {
throw new Error(`Connection with ID ${query.connectionId} not found.`);
}
const controller = container.resolve<SparqlResultsController>(ServiceToken.SparqlResultsController);
await controller.executeBackgroundQuery(connection, query.query, query.label ?? '');
}
}
}; |