summaryrefslogtreecommitdiff
path: root/extension/react-app/src/util/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'extension/react-app/src/util/index.ts')
-rw-r--r--extension/react-app/src/util/index.ts27
1 files changed, 27 insertions, 0 deletions
diff --git a/extension/react-app/src/util/index.ts b/extension/react-app/src/util/index.ts
new file mode 100644
index 00000000..458f9d95
--- /dev/null
+++ b/extension/react-app/src/util/index.ts
@@ -0,0 +1,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");
+ }
+ }
+}