+++ /dev/null
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.extractFunctionName = exports.toogleTests = exports.generateTestsFunction = exports.generateTestsExported = exports.generateTestsAll = void 0;
-const coc_nvim_1 = require("coc.nvim");
-const vscode_uri_1 = require("vscode-uri");
-const tools_1 = require("./tools");
-const binaries_1 = require("../binaries");
-////////////////////////////////////////////////////////////////////////////////
-async function generateTestsAll(document) {
- if (isTest(document)) {
- coc_nvim_1.workspace.showMessage("Document is a test file", "error");
- return;
- }
- await runGotests(document, ["-all"]) && await openTests(document);
-}
-exports.generateTestsAll = generateTestsAll;
-async function generateTestsExported(document) {
- if (isTest(document)) {
- coc_nvim_1.workspace.showMessage("Document is a test file", "error");
- return;
- }
- await runGotests(document, ["-exported"]) && await openTests(document);
-}
-exports.generateTestsExported = generateTestsExported;
-async function generateTestsFunction(document) {
- if (isTest(document)) {
- coc_nvim_1.workspace.showMessage("Document is a test file", "error");
- return;
- }
- const { line } = await coc_nvim_1.workspace.getCursorPosition();
- const text = await document.getText({
- start: { line, character: 0 },
- end: { line, character: Infinity },
- });
- coc_nvim_1.workspace.showMessage(text);
- const funcName = extractFunctionName(text);
- if (!funcName) {
- coc_nvim_1.workspace.showMessage("No function found", "error");
- return;
- }
- await runGotests(document, ["-only", `^${funcName}$`]) && await openTests(document);
-}
-exports.generateTestsFunction = generateTestsFunction;
-async function toogleTests(document) {
- const targetURI = isTest(document)
- ? sourceURI(document)
- : testURI(document);
- return coc_nvim_1.workspace.openResource(targetURI);
-}
-exports.toogleTests = toogleTests;
-////////////////////////////////////////////////////////////////////////////////
-async function openTests(document) {
- return coc_nvim_1.workspace.openResource(testURI(document));
-}
-function isTest(document) {
- return document.uri.endsWith('_test.go');
-}
-function testURI(document) {
- return document.uri.replace(/(_test)?\.go$/, '_test.go');
-}
-function sourceURI(document) {
- return document.uri.replace(/(_test)?\.go$/, '.go');
-}
-async function runGotests(document, args) {
- const config = coc_nvim_1.workspace.getConfiguration().get('go.tests', {});
- args.push(...(config.generateFlags || []), '-w', vscode_uri_1.URI.parse(document.uri).fsPath);
- try {
- const stdout = await tools_1.execTool(binaries_1.GOTESTS, args);
- coc_nvim_1.workspace.showMessage(stdout || "");
- return true;
- }
- catch (err) {
- coc_nvim_1.workspace.showMessage(`Error: ${err}`, "error");
- return false;
- }
-}
-////////////////////////////////////////////////////////////////////////////////
-function extractFunctionName(line) {
- const m = /^func +(\([^)]+\) +)?([^\s(]+)/.exec(line);
- if (m) {
- return m[2];
- }
-}
-exports.extractFunctionName = extractFunctionName;
-//# sourceMappingURL=tests.js.map
\ No newline at end of file