summaryrefslogtreecommitdiff
path: root/extension/react-app/src/util/index.ts
blob: 458f9d954ffabf43d65f283738ffd85f37d73249 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import { RangeInFile } from "../../../src/client";

export function readRangeInVirtualFileSystem(
  rangeInFile: RangeInFile,
  filesystem: { [filepath: string]: string }
): string | undefined {
  const range = rangeInFile.range;

  let data = filesystem[rangeInFile.filepath];
  if (data === undefined) {
    console.log("File not found");
    return undefined;
  } else {
    let lines = data.toString().split("\n");
    if (range.start.line === range.end.line) {
      return lines[rangeInFile.range.start.line].slice(
        rangeInFile.range.start.character,
        rangeInFile.range.end.character
      );
    } else {
      let firstLine = lines[range.start.line].slice(range.start.character);
      let lastLine = lines[range.end.line].slice(0, range.end.character);
      let middleLines = lines.slice(range.start.line + 1, range.end.line);
      return [firstLine, ...middleLines, lastLine].join("\n");
    }
  }
}