From 3cd2c1ef741e89369ff0f9bf083d5f639ab50f99 Mon Sep 17 00:00:00 2001 From: Ryan Rosello Date: Sat, 29 Jun 2024 18:55:09 +1000 Subject: [PATCH] chore(trace-viewer) move copy filename to clipboard directly inline with the source tab file name --- packages/trace-viewer/src/ui/sourceTab.css | 10 ++++++++++ packages/trace-viewer/src/ui/sourceTab.tsx | 18 +++++++++++++++++- packages/trace-viewer/src/ui/stackTrace.css | 17 ----------------- packages/trace-viewer/src/ui/stackTrace.tsx | 13 ++----------- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/packages/trace-viewer/src/ui/sourceTab.css b/packages/trace-viewer/src/ui/sourceTab.css index 17e66460f4..61045135a3 100644 --- a/packages/trace-viewer/src/ui/sourceTab.css +++ b/packages/trace-viewer/src/ui/sourceTab.css @@ -31,3 +31,13 @@ box-shadow: var(--vscode-scrollbar-shadow) 0 6px 6px -6px; z-index: 10; } + +.copy-icon.codicon { + display: block; + cursor: pointer; +} + +.source-copy-to-clipboard { + display: block; + padding-left: 4px; +} \ No newline at end of file diff --git a/packages/trace-viewer/src/ui/sourceTab.tsx b/packages/trace-viewer/src/ui/sourceTab.tsx index a3acad64a2..2601f9b6ac 100644 --- a/packages/trace-viewer/src/ui/sourceTab.tsx +++ b/packages/trace-viewer/src/ui/sourceTab.tsx @@ -23,6 +23,7 @@ import { CodeMirrorWrapper } from '@web/components/codeMirrorWrapper'; import type { SourceHighlight } from '@web/components/codeMirrorWrapper'; import type { SourceLocation, SourceModel } from './modelUtil'; import type { StackFrame } from '@protocol/channels'; +import { CopyToClipboard } from './copyToClipboard'; export const SourceTab: React.FunctionComponent<{ stack: StackFrame[] | undefined, @@ -80,9 +81,24 @@ export const SourceTab: React.FunctionComponent<{ const showStackFrames = (stack?.length ?? 0) > 1; + const getFileName = (fullPath?: string, lineNum?: number) => { + if (!fullPath) + return ''; + const pathSep = fullPath?.includes('/') ? '/' : '\\'; + const fileName = fullPath?.split(pathSep).pop() ?? ''; + return lineNum ? `${fileName}:${lineNum}` : fileName; + }; + return
- {fileName &&
{fileName}
} + {fileName && ( +
+ {fileName} + + + +
+ )}
diff --git a/packages/trace-viewer/src/ui/stackTrace.css b/packages/trace-viewer/src/ui/stackTrace.css index d4edfc8ed7..cfeda241bf 100644 --- a/packages/trace-viewer/src/ui/stackTrace.css +++ b/packages/trace-viewer/src/ui/stackTrace.css @@ -29,21 +29,4 @@ .stack-trace-frame-line { flex: none; -} - -.stack-trace-copy-to-clipboard { - display: block; - width: 20px; - margin-right: 4px; - padding: 0 2px; -} - -.copy-icon { - display: none; - margin-right: 2px; -} - -.list-view-entry:hover .copy-icon { - display: block; - cursor: pointer; } \ No newline at end of file diff --git a/packages/trace-viewer/src/ui/stackTrace.tsx b/packages/trace-viewer/src/ui/stackTrace.tsx index 3b2a9122ec..3683192b44 100644 --- a/packages/trace-viewer/src/ui/stackTrace.tsx +++ b/packages/trace-viewer/src/ui/stackTrace.tsx @@ -18,7 +18,6 @@ import * as React from 'react'; import './stackTrace.css'; import { ListView } from '@web/components/listView'; import type { StackFrame } from '@protocol/channels'; -import { CopyToClipboard } from './copyToClipboard'; const StackFrameListView = ListView; @@ -28,30 +27,22 @@ export const StackTraceView: React.FunctionComponent<{ setSelectedFrame: (index: number) => void }> = ({ stack, setSelectedFrame, selectedFrame }) => { const frames = stack || []; - const getFileName = (frame: StackFrame) => { - const pathSep = frame.file[1] === ':' ? '\\' : '/'; - const fileName = frame.file.split(pathSep).pop(); - return fileName; - }; - return { + const pathSep = frame.file[1] === ':' ? '\\' : '/'; return <> {frame.function || '(anonymous)'} - {getFileName(frame)} + {frame.file.split(pathSep).pop()} {':' + frame.line} - - - ; }} onSelected={frame => setSelectedFrame(frames.indexOf(frame))} />;