Files
languageservices/languageservice/src/utils/rel-char-pos.ts
T

16 lines
652 B
TypeScript
Raw Normal View History

2023-02-24 08:53:51 -08:00
import {TokenRange} from "@actions/workflow-parser/templates/tokens/token-range";
2023-02-02 08:53:01 -08:00
import {Position} from "vscode-languageserver-textdocument";
import {mapRange} from "./range";
export function getRelCharOffset(tokenRange: TokenRange, currentInput: string, pos: Position): number {
const range = mapRange(tokenRange);
if (range.start.line !== range.end.line) {
const lines = currentInput.split("\n");
const lineDiff = pos.line - range.start.line - 1;
const linesBeforeCusor = lines.slice(0, lineDiff);
return linesBeforeCusor.join("\n").length + pos.character + 1;
} else {
return pos.character - range.start.character;
}
}