Skip to content

Commit 5ab3da9

Browse files
committed
Support color schemes
1 parent 6d12f9b commit 5ab3da9

File tree

3 files changed

+19
-11
lines changed

3 files changed

+19
-11
lines changed

scripts/render-function.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@ import type Parser from "web-tree-sitter";
55
import type { SyntaxNode } from "web-tree-sitter";
66
import { type Language, supportedLanguages } from "../src/control-flow/cfg.ts";
77
import {
8-
deserializeColorList, getDarkColorList, getLightColorList,
9-
listToScheme
8+
deserializeColorList,
9+
getDarkColorList,
10+
getLightColorList,
11+
listToScheme,
1012
} from "../src/control-flow/colors.ts";
1113
import { graphToDot } from "../src/control-flow/render.ts";
1214
import { getLanguage, iterFunctions } from "../src/file-parsing/bun.ts";
@@ -36,14 +38,12 @@ function writeError(message: string): void {
3638
Bun.write(Bun.stderr, `${message}\n`);
3739
}
3840

39-
async function getColorScheme(
40-
colors?:string
41-
) {
41+
export async function getColorScheme(colors?: string) {
4242
if (!colors || colors === "dark") {
43-
return listToScheme(getDarkColorList())
43+
return listToScheme(getDarkColorList());
4444
}
4545
if (colors === "light") {
46-
return listToScheme(getLightColorList())
46+
return listToScheme(getLightColorList());
4747
}
4848
return colors
4949
? listToScheme(deserializeColorList(await Bun.file(colors).text()))
@@ -135,7 +135,7 @@ async function main() {
135135
const graphviz = await Graphviz.load();
136136
const cfg = buildCFG(func, language);
137137

138-
const colorScheme = await getColorScheme(values.colors)
138+
const colorScheme = await getColorScheme(values.colors);
139139

140140
const svg = graphviz.dot(graphToDot(cfg, false, undefined, colorScheme));
141141

scripts/render-graph.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,21 @@ import type {
77
GraphNode,
88
} from "../src/control-flow/cfg-defs.ts";
99
import { graphToDot } from "../src/control-flow/render.ts";
10+
import { getColorScheme } from "./render-function.ts";
1011

1112
async function main() {
1213
const {
14+
values,
1315
positionals: [_runtime, _this, gist_url],
1416
} = parseArgs({
1517
args: Bun.argv,
1618
strict: true,
1719
allowPositionals: true,
20+
options: {
21+
colors: {
22+
type: "string",
23+
},
24+
},
1825
});
1926

2027
if (!gist_url) {
@@ -39,9 +46,10 @@ async function main() {
3946
throw new Error("No entry found");
4047
}
4148
const cfg: CFG = { graph, entry, offsetToNode: [] };
42-
const dot = graphToDot(cfg);
49+
const colorScheme = await getColorScheme(values.colors);
50+
4351
const graphviz = await Graphviz.load();
44-
const svg = graphviz.dot(dot);
52+
const svg = graphviz.dot(graphToDot(cfg, false, undefined, colorScheme));
4553
console.log(svg);
4654
// console.log(dot);
4755
}

scripts/scan-codebase.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ async function* iterFunctionInfo(
4343
filenames: IterableIterator<string>,
4444
): AsyncIterableIterator<{
4545
node_count: number;
46-
start_position: { row:number, column:number };
46+
start_position: { row: number; column: number };
4747
funcdef: string;
4848
filename: string;
4949
}> {

0 commit comments

Comments
 (0)