Skip to content

Commit 5448664

Browse files
committed
feat: adding external api for running tactics at loc
1 parent f65b02b commit 5448664

File tree

3 files changed

+25
-3
lines changed

3 files changed

+25
-3
lines changed

client/src/extension.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ import {workspace, window, commands, languages, ExtensionContext, env,
99
extensions,
1010
StatusBarAlignment,
1111
MarkdownString,
12-
WorkspaceEdit
12+
WorkspaceEdit,
13+
Position
1314
} from 'vscode';
1415

1516
import {
@@ -27,6 +28,8 @@ import GoalPanel from './panels/GoalPanel';
2728
import SearchViewProvider from './panels/SearchViewProvider';
2829
import {
2930
CoqLogMessage,
31+
CoqPilotRequest,
32+
CoqPilotResponse,
3033
DocumentProofsRequest,
3134
DocumentProofsResponse,
3235
ErrorAlertNotification,
@@ -69,6 +72,14 @@ export function activate(context: ExtensionContext) {
6972
return client.sendRequest(req, params);
7073
};
7174

75+
const runTacticsAtLocContext = (uri: Uri, position: Position, text: string) => {
76+
const textDocument = TextDocumentIdentifier.create(uri.toString());
77+
const params: CoqPilotRequest = {textDocument, position, text};
78+
const req = new RequestType<CoqPilotRequest, CoqPilotResponse, void>("vscoq/coqPilot");
79+
Client.writeToVscoq2Channel("Trying running tactics: (" + text + ") for document: " + uri.toString());
80+
return client.sendRequest(req, params);
81+
};
82+
7283
// Watch for files being added or removed
7384
workspace.onDidCreateFiles(checkInCoqProject);
7485
workspace.onDidDeleteFiles(checkInCoqProject);
@@ -381,7 +392,8 @@ Path: \`${coqTM.getVsCoqTopPath()}\`
381392
}
382393

383394
const externalApi = {
384-
getDocumentProofs
395+
getDocumentProofs,
396+
runTacticsAtLocContext
385397
};
386398

387399
return externalApi;

client/src/protocol/types.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,3 +168,13 @@ type ProofBlock = {
168168
export interface DocumentProofsResponse {
169169
proofs: ProofBlock[];
170170
}
171+
172+
export interface CoqPilotRequest {
173+
textDocument: TextDocumentIdentifier;
174+
position: Position;
175+
text: string;
176+
}
177+
178+
export interface CoqPilotResponse {
179+
errors: string[];
180+
}

language-server/dm/document.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,7 @@ let handle_parse_more ({loc; synterp_state; stream; raw; parsed; parsed_comments
545545
let str = String.sub (RawDocument.text raw) begin_char (end_char - begin_char) in
546546
let sstr = Stream.of_string str in
547547
let lex = CLexer.Lexer.tok_func sstr in
548-
stream_tok 0 [] lex begin_line begin_char
548+
stream_tok 0 [] lex begin_line begin_char
549549
in
550550
begin
551551
try

0 commit comments

Comments
 (0)