import * as vscode from 'vscode';
import { launchEditor } from './editor';

export function selectCode(
  file: string,
  anchor: { line: number; character: number },
  active: { line: number; character: number },
) {
  let uri = vscode.Uri.file(file);
  launchEditor(file);
  vscode.workspace.openTextDocument(uri).then(
    (doc: vscode.TextDocument) => {
      // Show open document and set focus
      vscode.window.showTextDocument(doc, 1, false).then(
        (editor: vscode.TextEditor) => {
          editor.selection = new vscode.Selection(
            new vscode.Position(anchor.line, anchor.character),
            new vscode.Position(active.line, active.character),
          );
          editor.revealRange(
            new vscode.Range(active.line, active.character, anchor.line, anchor.character),
            vscode.TextEditorRevealType.Default,
          );
        },
        (error: any) => {
          vscode.window.showErrorMessage('SculptUI could not select code lines:\n' + error);
        },
      );
    },
    (error: any) => {
      vscode.window.showErrorMessage('Error opening document for SculptUI: ' + error.toString());
    },
  );
}
