summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src/components
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-10-28 12:15:46 -0500
committerAdam <[email protected]>2025-10-28 15:29:16 -0500
commit77ae0b527e4b1a8277b0391d0acbc7d82b08e4ea (patch)
treee3365685a4ca201b4e0d16e59648dcba2a5773ad /packages/desktop/src/components
parentc1278109c9600ded4ab937686d4c7288fda2524d (diff)
downloadopencode-77ae0b527e4b1a8277b0391d0acbc7d82b08e4ea.tar.gz
opencode-77ae0b527e4b1a8277b0391d0acbc7d82b08e4ea.zip
wip: desktop work
Diffstat (limited to 'packages/desktop/src/components')
-rw-r--r--packages/desktop/src/components/assistant-message.tsx1
-rw-r--r--packages/desktop/src/components/diff.tsx176
2 files changed, 0 insertions, 177 deletions
diff --git a/packages/desktop/src/components/assistant-message.tsx b/packages/desktop/src/components/assistant-message.tsx
index cfc9d1a49..738293405 100644
--- a/packages/desktop/src/components/assistant-message.tsx
+++ b/packages/desktop/src/components/assistant-message.tsx
@@ -394,7 +394,6 @@ ToolRegistry.register<typeof WriteTool>({
ToolRegistry.register<typeof TodoWriteTool>({
name: "todowrite",
render(props) {
- console.log(props.input.todos)
return (
<BasicTool
icon="checklist"
diff --git a/packages/desktop/src/components/diff.tsx b/packages/desktop/src/components/diff.tsx
deleted file mode 100644
index c39ad852e..000000000
--- a/packages/desktop/src/components/diff.tsx
+++ /dev/null
@@ -1,176 +0,0 @@
-import {
- type FileContents,
- FileDiff,
- type DiffLineAnnotation,
- type HunkData,
- DiffFileRendererOptions,
- // registerCustomTheme,
-} from "@pierre/precision-diffs"
-import { ComponentProps, createEffect, splitProps } from "solid-js"
-
-export type DiffProps<T = {}> = Omit<DiffFileRendererOptions<T>, "themes"> & {
- before: FileContents
- after: FileContents
- annotations?: DiffLineAnnotation<T>[]
- class?: string
- classList?: ComponentProps<"div">["classList"]
-}
-
-// registerCustomTheme("opencode", () => import("./theme.json"))
-
-// interface ThreadMetadata {
-// threadId: string
-// }
-
-export function Diff<T>(props: DiffProps<T>) {
- let container!: HTMLDivElement
- const [local, others] = splitProps(props, ["before", "after", "class", "classList", "annotations"])
-
- // const lineAnnotations: DiffLineAnnotation<ThreadMetadata>[] = [
- // {
- // side: "additions",
- // // The line number specified for an annotation is the visual line number
- // // you see in the number column of a diff
- // lineNumber: 16,
- // metadata: { threadId: "68b329da9893e34099c7d8ad5cb9c940" },
- // },
- // ]
-
- // If you ever want to update the options for an instance, simple call
- // 'setOptions' with the new options. Bear in mind, this does NOT merge
- // existing properties, it's a full replace
- // instance.setOptions({
- // ...instance.options,
- // theme: "pierre-dark",
- // themes: undefined,
- // })
-
- // When ready to render, simply call .render with old/new file, optional
- // annotations and a container element to hold the diff
- createEffect(() => {
- const instance = new FileDiff<T>({
- theme: "pierre-light",
- // Or can also provide a 'themes' prop, which allows the code to adapt
- // to your OS light or dark theme
- // themes: { dark: 'pierre-night', light: 'pierre-light' },
- // When using the 'themes' prop, 'themeType' allows you to force 'dark'
- // or 'light' theme, or inherit from the OS ('system') theme.
- themeType: "system",
- // Disable the line numbers for your diffs, generally not recommended
- disableLineNumbers: false,
- // Whether code should 'wrap' with long lines or 'scroll'.
- overflow: "scroll",
- // Normally you shouldn't need this prop, but if you don't provide a
- // valid filename or your file doesn't have an extension you may want to
- // override the automatic detection. You can specify that language here:
- // https://shiki.style/languages
- // lang?: SupportedLanguages;
- // 'diffStyle' controls whether the diff is presented side by side or
- // in a unified (single column) view
- diffStyle: "unified",
- // Line decorators to help highlight changes.
- // 'bars' (default):
- // Shows some red-ish or green-ish (theme dependent) bars on the left
- // edge of relevant lines
- //
- // 'classic':
- // shows '+' characters on additions and '-' characters on deletions
- //
- // 'none':
- // No special diff indicators are shown
- diffIndicators: "bars",
- // By default green-ish or red-ish background are shown on added and
- // deleted lines respectively. Disable that feature here
- disableBackground: false,
- // Diffs are split up into hunks, this setting customizes what to show
- // between each hunk.
- //
- // 'line-info' (default):
- // Shows a bar that tells you how many lines are collapsed. If you are
- // using the oldFile/newFile API then you can click those bars to
- // expand the content between them
- //
- // 'metadata':
- // Shows the content you'd see in a normal patch file, usually in some
- // format like '@@ -60,6 +60,22 @@'. You cannot use these to expand
- // hidden content
- //
- // 'simple':
- // Just a subtle bar separator between each hunk
- hunkSeparators: "line-info",
- // hunkSeparators(hunkData: HunkData) {
- // const fragment = document.createDocumentFragment()
- // const numCol = document.createElement("div")
- // numCol.textContent = `${hunkData.lines}`
- // numCol.style.position = "sticky"
- // numCol.style.left = "0"
- // numCol.style.backgroundColor = "var(--pjs-bg)"
- // numCol.style.zIndex = "2"
- // fragment.appendChild(numCol)
- // const contentCol = document.createElement("div")
- // contentCol.textContent = "unmodified lines"
- // contentCol.style.position = "sticky"
- // contentCol.style.width = "var(--pjs-column-content-width)"
- // contentCol.style.left = "var(--pjs-column-number-width)"
- // fragment.appendChild(contentCol)
- // return fragment
- // },
- // On lines that have both additions and deletions, we can run a
- // separate diff check to mark parts of the lines that change.
- // 'none':
- // Do not show these secondary highlights
- //
- // 'char':
- // Show changes at a per character granularity
- //
- // 'word':
- // Show changes but rounded up to word boundaries
- //
- // 'word-alt' (default):
- // Similar to 'word', however we attempt to minimize single character
- // gaps between highlighted changes
- lineDiffType: "word-alt",
- // If lines exceed these character lengths then we won't perform the
- // line lineDiffType check
- maxLineDiffLength: 1000,
- // If any line in the diff exceeds this value then we won't attempt to
- // syntax highlight the diff
- maxLineLengthForHighlighting: 1000,
- // Enabling this property will hide the file header with file name and
- // diff stats.
- disableFileHeader: true,
- // You can optionally pass a render function for rendering out line
- // annotations. Just return the dom node to render
- // renderAnnotation(annotation: DiffLineAnnotation<T>): HTMLElement {
- // // Despite the diff itself being rendered in the shadow dom,
- // // annotations are inserted via the web components 'slots' api and you
- // // can use all your normal normal css and styling for them
- // const element = document.createElement("div")
- // element.innerText = annotation.metadata.threadId
- // return element
- // },
- ...others,
- })
-
- instance.render({
- oldFile: local.before,
- newFile: local.after,
- lineAnnotations: local.annotations,
- containerWrapper: container,
- })
- })
-
- return (
- <div
- style={{
- "--pjs-font-family": "var(--font-family-mono)",
- "--pjs-font-size": "var(--font-size-small)",
- "--pjs-line-height": "24px",
- "--pjs-tab-size": 4,
- "--pjs-font-features": "var(--font-family-mono--font-feature-settings)",
- "--pjs-header-font-family": "var(--font-family-sans)",
- }}
- ref={container}
- />
- )
-}