Archived
Add syntax highlighting for git diffs
This commit is contained in:
Generated
+10
@@ -16,6 +16,7 @@
|
|||||||
"@codemirror/lang-markdown": "^6.5.0",
|
"@codemirror/lang-markdown": "^6.5.0",
|
||||||
"@codemirror/lang-python": "^6.2.1",
|
"@codemirror/lang-python": "^6.2.1",
|
||||||
"@codemirror/lang-rust": "^6.0.2",
|
"@codemirror/lang-rust": "^6.0.2",
|
||||||
|
"@codemirror/legacy-modes": "^6.5.2",
|
||||||
"@earendil-works/pi-coding-agent": "^0.74.0",
|
"@earendil-works/pi-coding-agent": "^0.74.0",
|
||||||
"@fastify/static": "^8.3.0",
|
"@fastify/static": "^8.3.0",
|
||||||
"@fastify/websocket": "^11.2.0",
|
"@fastify/websocket": "^11.2.0",
|
||||||
@@ -991,6 +992,15 @@
|
|||||||
"style-mod": "^4.0.0"
|
"style-mod": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@codemirror/legacy-modes": {
|
||||||
|
"version": "6.5.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.5.2.tgz",
|
||||||
|
"integrity": "sha512-/jJbwSTazlQEDOQw2FJ8LEEKVS72pU0lx6oM54kGpL8t/NJ2Jda3CZ4pcltiKTdqYSRk3ug1B3pil1gsjA6+8Q==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@codemirror/language": "^6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@codemirror/lint": {
|
"node_modules/@codemirror/lint": {
|
||||||
"version": "6.9.6",
|
"version": "6.9.6",
|
||||||
"resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.6.tgz",
|
"resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.6.tgz",
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
"@codemirror/lang-markdown": "^6.5.0",
|
"@codemirror/lang-markdown": "^6.5.0",
|
||||||
"@codemirror/lang-python": "^6.2.1",
|
"@codemirror/lang-python": "^6.2.1",
|
||||||
"@codemirror/lang-rust": "^6.0.2",
|
"@codemirror/lang-rust": "^6.0.2",
|
||||||
|
"@codemirror/legacy-modes": "^6.5.2",
|
||||||
"@earendil-works/pi-coding-agent": "^0.74.0",
|
"@earendil-works/pi-coding-agent": "^0.74.0",
|
||||||
"@fastify/static": "^8.3.0",
|
"@fastify/static": "^8.3.0",
|
||||||
"@fastify/websocket": "^11.2.0",
|
"@fastify/websocket": "^11.2.0",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { EditorState, type Extension } from "@codemirror/state";
|
import { EditorState, type Extension } from "@codemirror/state";
|
||||||
import { EditorView, keymap, lineNumbers } from "@codemirror/view";
|
import { EditorView, keymap, lineNumbers } from "@codemirror/view";
|
||||||
import { defaultKeymap } from "@codemirror/commands";
|
import { defaultKeymap } from "@codemirror/commands";
|
||||||
import { syntaxHighlighting, defaultHighlightStyle } from "@codemirror/language";
|
import { syntaxHighlighting, defaultHighlightStyle, StreamLanguage } from "@codemirror/language";
|
||||||
import { javascript } from "@codemirror/lang-javascript";
|
import { javascript } from "@codemirror/lang-javascript";
|
||||||
import { json } from "@codemirror/lang-json";
|
import { json } from "@codemirror/lang-json";
|
||||||
import { markdown } from "@codemirror/lang-markdown";
|
import { markdown } from "@codemirror/lang-markdown";
|
||||||
@@ -10,6 +10,7 @@ import { html as htmlLang } from "@codemirror/lang-html";
|
|||||||
import { python } from "@codemirror/lang-python";
|
import { python } from "@codemirror/lang-python";
|
||||||
import { rust } from "@codemirror/lang-rust";
|
import { rust } from "@codemirror/lang-rust";
|
||||||
import { go } from "@codemirror/lang-go";
|
import { go } from "@codemirror/lang-go";
|
||||||
|
import { diff } from "@codemirror/legacy-modes/mode/diff";
|
||||||
import { LitElement, css, html } from "lit";
|
import { LitElement, css, html } from "lit";
|
||||||
import { customElement, property, query } from "lit/decorators.js";
|
import { customElement, property, query } from "lit/decorators.js";
|
||||||
|
|
||||||
@@ -108,6 +109,7 @@ function languageExtensions(language: string | undefined): Extension[] {
|
|||||||
case "python": return [python()];
|
case "python": return [python()];
|
||||||
case "rust": return [rust()];
|
case "rust": return [rust()];
|
||||||
case "go": return [go()];
|
case "go": return [go()];
|
||||||
|
case "diff": return [StreamLanguage.define(diff)];
|
||||||
default: return [];
|
default: return [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ export class WorkspacePanel extends LitElement {
|
|||||||
if (diff === undefined) return html`<p class="muted">Loading diff…</p>`;
|
if (diff === undefined) return html`<p class="muted">Loading diff…</p>`;
|
||||||
return html`
|
return html`
|
||||||
<div class="viewer-header"><strong>${diff.path ?? "diff"}</strong><small>${diff.staged ? "staged" : "unstaged"}${diff.truncated ? " · truncated" : ""}</small></div>
|
<div class="viewer-header"><strong>${diff.path ?? "diff"}</strong><small>${diff.staged ? "staged" : "unstaged"}${diff.truncated ? " · truncated" : ""}</small></div>
|
||||||
<code-viewer .content=${diff.diff !== "" ? diff.diff : "No unstaged diff."}></code-viewer>
|
<code-viewer .content=${diff.diff !== "" ? diff.diff : "No unstaged diff."} .language=${"diff"}></code-viewer>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user