mirror of
https://github.com/kristoferssolo/solorice.git
synced 2025-10-21 20:10:34 +00:00
53 lines
2.1 KiB
JavaScript
53 lines
2.1 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.extractExtension = exports.createContext = void 0;
|
|
const vscode = require("vscode");
|
|
function createContext(document, position) {
|
|
const textFullLine = document.getText(document.lineAt(position).range);
|
|
const fromString = getFromString(textFullLine, position.character);
|
|
const isImport = isImportExportOrRequire(textFullLine);
|
|
const importRange = importStringRange(textFullLine, position);
|
|
const documentExtension = extractExtension(document);
|
|
return {
|
|
textFullLine,
|
|
fromString,
|
|
isImport,
|
|
document,
|
|
importRange,
|
|
documentExtension,
|
|
};
|
|
}
|
|
exports.createContext = createContext;
|
|
function getFromString(textFullLine, position) {
|
|
const textToPosition = textFullLine.substring(0, position);
|
|
const quoatationPosition = Math.max(textToPosition.lastIndexOf('"'), textToPosition.lastIndexOf("'"), textToPosition.lastIndexOf("`"));
|
|
return quoatationPosition !== -1
|
|
? textToPosition.substring(quoatationPosition + 1, textToPosition.length)
|
|
: undefined;
|
|
}
|
|
function isImportExportOrRequire(textFullLine) {
|
|
let isImport = textFullLine.substring(0, 6) === "import";
|
|
let isExport = textFullLine.substring(0, 6) === "export";
|
|
let isRequire = textFullLine.indexOf("require(") !== -1;
|
|
return isImport || isExport || isRequire;
|
|
}
|
|
function importStringRange(line, position) {
|
|
const textToPosition = line.substring(0, position.character);
|
|
const slashPosition = textToPosition.lastIndexOf("/");
|
|
const startPosition = new vscode.Position(position.line, slashPosition + 1);
|
|
const endPosition = position;
|
|
return new vscode.Range(startPosition, endPosition);
|
|
}
|
|
function extractExtension(document) {
|
|
if (document.isUntitled) {
|
|
return undefined;
|
|
}
|
|
const fragments = document.fileName.split(".");
|
|
const extension = fragments[fragments.length - 1];
|
|
if (!extension || extension.length > 3) {
|
|
return undefined;
|
|
}
|
|
return extension;
|
|
}
|
|
exports.extractExtension = extractExtension;
|
|
//# sourceMappingURL=createContext.js.map
|