-
-
Notifications
You must be signed in to change notification settings - Fork 8
refactor(vscode): apply devup-ui and extract webview as separate package #161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
erun1012
wants to merge
56
commits into
dev-five-git:main
Choose a base branch
from
erun1012:vsExtension/gahui
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
56 commits
Select commit
Hold shift + click to select a range
cde18d4
feat(vscode): add extension manifest and build config
eunseo9311 00798d0
feat(vscode): add extension host source files
eunseo9311 faf8776
feat(vscode): add webview React app scaffold
eunseo9311 53ede7e
feat(vscode): add webview React tab components
eunseo9311 93c42b1
feat(vscode): add launch and tasks config for F5 debugging
eunseo9311 16eb7d1
feat(vscode): redesign ORM Editor as visual node graph
eunseo9311 4cb61f6
feat(vscode): pre-fill ORM Editor with default sample schemas
eunseo9311 3e71e09
fix(vscode): ORM Editor UX overhaul
eunseo9311 6e61a0a
feat(vscode): add bottom navigation bar to ORM Editor canvas
eunseo9311 1887577
Fix light mode, edge routing, trackpad zoom/pan, migration pre-populate
eunseo9311 9b9f048
Fix edge rendering: use style attr for CSS vars, connect from field rows
eunseo9311 6502461
feat(vscode): redesign Migration tab as VS Code-style diff viewer
eunseo9311 16e870d
feat(vscode): migration diff viewer UX polish + export tab preview re…
eunseo9311 9f0dd2f
fix(vscode): migration tab always shows dummy data on load
eunseo9311 0e3c606
fix: F5 now builds both extension host and webview
eunseo9311 da41a1d
fix(vscode): migration tab goes blank after stub response
eunseo9311 02a69fd
ORM Relation 추가, ORM 내부에서 Relation 추가버튼, 삭제버튼
erun1012 43ee296
add Relation and can set FK
erun1012 51208ac
modify move mode
erun1012 8c8e182
Add sorting function
erun1012 74f99f5
adding to modify relation and to move location relation end point
erun1012 7e0617e
adding drag and multi-select
erun1012 1258b83
modify design
erun1012 8001f37
Modify connection arrow design
erun1012 a053226
Merge vsExtension/gahui: Relation editing, layout presets, edge rerou…
eunseo9311 41aae88
feat(vscode): ORM Editor — multi-select, layout presets, edge editing…
eunseo9311 3a207a5
Change font color
erun1012 427fa5b
code remove_(-)/red test
erun1012 0c8745a
fix(vscode): restore gahui's OrmEditor (rebase --theirs was inverted)
eunseo9311 3efcf28
Modify ORM Editor code design, Add row number
erun1012 476d1cf
Merge branch 'vsExtension/eunseo' into vsExtension/gahui
erun1012 e812f07
feat(vscode): Export tab redesign — Connections sidebar + AI Agent chat
eunseo9311 85db7f5
fix(vscode): save dialog uses workspace folder + AI chat always enabled
eunseo9311 33c108b
fix(vscode): remove Gemini-style ✦ from AI chat, enlarge AI Agent button
eunseo9311 c095cae
add row number in ORM Editor(code, JSON export)
erun1012 c951350
Merge branch 'vsExtension/eunseo' into vsExtension/gahui
erun1012 07b7b78
Modify letter design
erun1012 b1e0bea
Change Dark Mode button Go directly to the top
erun1012 a93a845
Modify letter ORMEditor
erun1012 f47a8ee
Add AI Tab (API Key Authentication Method)
erun1012 56a8c8f
feat(vscode): VS Code extension — ORM Editor, Migration, Export + AI …
eunseo9311 8b06d77
Merge remote-tracking branch 'upstream/pr/eunseo-main' into vsExtensi…
erun1012 8474072
Resolve merge conflict: restore AI features in Export tab
erun1012 d01b262
Revert Export.tsx to eunseo version (remove AI features)
erun1012 744a0d9
Converting to devup-ui
erun1012 7199974
refactor: move vscode webview to apps/extension-webview package
erun1012 7f6c790
Merge pull request #2 from erun1012/vsExtension/gahui
eunseo9311 c710c9a
chore: add .gitignore for extension-webview package
erun1012 e7e1dbc
Merge remote-tracking branch 'upstream/main' into vsExtension/gahui
erun1012 4be48ee
Merge remote-tracking branch 'upstream/main' into vsExtension/gahui
erun1012 83a30bf
refactor(webview): apply devup-ui and remove global.css
erun1012 ce6f3f8
refactor(extension-webview): use $ token syntax and VStack throughout
erun1012 bfb2e21
refactor(extension-webview): delete global.css
erun1012 194f516
refactor(extension-webview): replace remaining var(--vscode-*) with $…
erun1012 715513c
fix(ai-agent): fix connector UX bugs, add free Ollama connector
erun1012 8377326
feat(ai-agent): add tool-calling schema/migration file access to AI chat
erun1012 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| { | ||
| "version": "0.2.0", | ||
| "configurations": [ | ||
| { | ||
| "name": "Run VS Code Extension", | ||
| "type": "extensionHost", | ||
| "request": "launch", | ||
| "args": ["--extensionDevelopmentPath=${workspaceFolder}/apps/vscode"], | ||
| "outFiles": ["${workspaceFolder}/apps/vscode/dist/**/*.js"], | ||
| "preLaunchTask": "build:vscode" | ||
| } | ||
| ] | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| { | ||
| "version": "2.0.0", | ||
| "tasks": [ | ||
| { | ||
| "label": "build:vscode", | ||
| "type": "shell", | ||
| "command": "npm run build", | ||
| "options": { "cwd": "${workspaceFolder}/apps/vscode" }, | ||
| "group": { "kind": "build", "isDefault": true }, | ||
| "presentation": { "reveal": "always" }, | ||
| "problemMatcher": [] | ||
| } | ||
| ] | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| node_modules/ | ||
| dist/ | ||
| df/ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| <!DOCTYPE html> | ||
| <html lang="ko"> | ||
| <head> | ||
| <meta charset="UTF-8" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>Vespertide AI Agent</title> | ||
| <style> | ||
| *, *::before, *::after { box-sizing: border-box; } | ||
| html, body, #root { height: 100%; margin: 0; padding: 0; } | ||
| :root { | ||
| --fg: var(--vscode-foreground, #cccccc); | ||
| --sidebarBg: var(--vscode-sideBar-background, #252526); | ||
| --editorBg: var(--vscode-editor-background, #1e1e1e); | ||
| --tabsBg: var(--vscode-editorGroupHeader-tabsBackground, #2d2d2d); | ||
| --border: var(--vscode-panel-border, rgba(255,255,255,0.1)); | ||
| --focusBorder:var(--vscode-focusBorder, #007acc); | ||
| --inactiveFg: var(--vscode-tab-inactiveForeground, #8e8e8e); | ||
| --errBg: var(--vscode-inputValidation-errorBackground, rgba(90,29,29,0.9)); | ||
| --errFg: var(--vscode-inputValidation-errorForeground, #f48771); | ||
| --btnBg: var(--vscode-button-background, #0e639c); | ||
| --btnFg: var(--vscode-button-foreground, #fff); | ||
| --inputBg: var(--vscode-input-background, rgba(255,255,255,0.06)); | ||
| --inputBorder:var(--vscode-input-border, rgba(255,255,255,0.15)); | ||
| --widgetBg: var(--vscode-editorWidget-background, rgba(255,255,255,0.05)); | ||
| --appFont: var(--vscode-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif); | ||
| } | ||
| body { | ||
| font-family: var(--vscode-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif); | ||
| font-size: var(--vscode-font-size, 13px); | ||
| font-weight: var(--vscode-font-weight, normal); | ||
| color: var(--vscode-foreground, #cccccc); | ||
| background: var(--vscode-sideBar-background, #252526); | ||
| overflow: hidden; | ||
| } | ||
| button { cursor: pointer; font-family: inherit; font-size: inherit; } | ||
| textarea, input { font-family: inherit; font-size: inherit; } | ||
| ::-webkit-scrollbar { width: 6px; height: 6px; } | ||
| ::-webkit-scrollbar-track { background: transparent; } | ||
| ::-webkit-scrollbar-thumb { | ||
| background: var(--vscode-scrollbarSlider-background, rgba(121,121,121,0.4)); | ||
| border-radius: 3px; | ||
| } | ||
| ::-webkit-scrollbar-thumb:hover { | ||
| background: var(--vscode-scrollbarSlider-hoverBackground, rgba(121,121,121,0.7)); | ||
| } | ||
| </style> | ||
| </head> | ||
| <body> | ||
| <div id="root"></div> | ||
| <script type="module" src="/src/ai-agent.tsx"></script> | ||
| </body> | ||
| </html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,136 @@ | ||
| <!DOCTYPE html> | ||
| <html lang="ko"> | ||
| <head> | ||
| <meta charset="UTF-8" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>Vespertide</title> | ||
| <style> | ||
| *, *::before, *::after { box-sizing: border-box; } | ||
| html, body, #root { height: 100%; margin: 0; padding: 0; } | ||
| body { | ||
| font-family: var(--vscode-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif); | ||
| font-size: var(--vscode-font-size, 13px); | ||
| font-weight: var(--vscode-font-weight, normal); | ||
| color: var(--vscode-foreground, #cccccc); | ||
| background: var(--vscode-sideBar-background, #252526); | ||
| overflow: hidden; | ||
| } | ||
| button { cursor: pointer; font-family: inherit; font-size: inherit; } | ||
| textarea, input { font-family: inherit; font-size: inherit; } | ||
|
|
||
| :root { | ||
| --fg: var(--vscode-foreground, #cccccc); | ||
| --sidebarBg: var(--vscode-sideBar-background, #252526); | ||
| --editorBg: var(--vscode-editor-background, #1e1e1e); | ||
| --tabsBg: var(--vscode-editorGroupHeader-tabsBackground, #2d2d2d); | ||
| --border: var(--vscode-panel-border, rgba(255,255,255,0.1)); | ||
| --focusBorder:var(--vscode-focusBorder, #007acc); | ||
| --inactiveFg: var(--vscode-tab-inactiveForeground, #8e8e8e); | ||
| --errBg: var(--vscode-inputValidation-errorBackground, rgba(90,29,29,0.9)); | ||
| --errFg: var(--vscode-inputValidation-errorForeground, #f48771); | ||
| --btnBg: var(--vscode-button-background, #0e639c); | ||
| --btnFg: var(--vscode-button-foreground, #fff); | ||
| --inputBg: var(--vscode-input-background, rgba(255,255,255,0.06)); | ||
| --inputBorder:var(--vscode-input-border, rgba(255,255,255,0.15)); | ||
| --widgetBg: var(--vscode-editorWidget-background, rgba(255,255,255,0.05)); | ||
| --editorFg: var(--vscode-editor-foreground, #d4d4d4); | ||
| --editorFont: var(--vscode-editor-font-family, Consolas, 'Courier New', monospace); | ||
| --chartsGreen:var(--vscode-charts-green, #4caf50); | ||
| --btnSecBg: var(--vscode-button-secondaryBackground, #3a3a3a); | ||
| --diff-bg: #1e1e1e; | ||
| --diff-text: rgba(212, 212, 212, 0.93); | ||
| --diff-linenum: rgba(255, 255, 255, 0.25); | ||
| --diff-add-bg: rgba(34, 197, 94, 0.1); | ||
| --diff-add-border: rgba(34, 197, 94, 0.55); | ||
| --diff-add-text: #86efac; | ||
| --diff-add-sign: #4ade80; | ||
| --diff-rm-bg: rgba(239, 68, 68, 0.1); | ||
| --diff-rm-border: rgba(239, 68, 68, 0.55); | ||
| --diff-rm-text: #fca5a5; | ||
| --diff-rm-sign: #f87171; | ||
| --diff-sidebar-bg: #252526; | ||
| --diff-sidebar-text:#cccccc; | ||
| --diff-header-bg: #2d2d2d; | ||
| --diff-header-text: #cccccc; | ||
| --node-bg: #1a1b2e; | ||
| --node-border: rgba(255, 255, 255, 0.11); | ||
| --node-field-divider: rgba(255, 255, 255, 0.055); | ||
| --node-shadow: 0 4px 20px rgba(0, 0, 0, 0.5), 0 0 0 0.5px rgba(255, 255, 255, 0.07); | ||
| --node-type-color: rgba(180, 185, 220, 0.5); | ||
| --node-text: rgba(220, 222, 240, 0.92); | ||
| --node-text-dim: rgba(180, 185, 220, 0.5); | ||
| --canvas-dot: rgba(255, 255, 255, 0.055); | ||
| --edge-color: rgba(99, 102, 241, 0.7); | ||
| --edge-arrow: rgba(99, 102, 241, 0.85); | ||
| --navbar-bg: rgba(18, 18, 30, 0.94); | ||
| --navbar-border: rgba(255, 255, 255, 0.1); | ||
| } | ||
| [data-theme="light"] { | ||
| --vscode-editor-background: #f1f2f7; | ||
| --vscode-editor-foreground: #1a1a2e; | ||
| --vscode-foreground: #1a1a2e; | ||
| --vscode-sideBar-background: #e9eaf2; | ||
| --vscode-editorWidget-background: #e1e3ef; | ||
| --vscode-editorGroupHeader-tabsBackground: #d8daea; | ||
| --vscode-panel-border: rgba(0, 0, 0, 0.12); | ||
| --vscode-tab-inactiveForeground: #5a5c72; | ||
| --vscode-button-background: #4f46e5; | ||
| --vscode-button-foreground: #ffffff; | ||
| --vscode-focusBorder: #4f46e5; | ||
| --vscode-input-border: rgba(0, 0, 0, 0.18); | ||
| --vscode-scrollbarSlider-background: rgba(0, 0, 0, 0.18); | ||
| --vscode-scrollbarSlider-hoverBackground: rgba(0, 0, 0, 0.32); | ||
| --vscode-inputValidation-errorBackground: rgba(180, 30, 30, 0.08); | ||
| --vscode-inputValidation-errorForeground: #a80000; | ||
| --node-bg: #ffffff; | ||
| --node-border: rgba(0, 0, 0, 0.1); | ||
| --node-field-divider: rgba(0, 0, 0, 0.065); | ||
| --node-shadow: 0 2px 16px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.07); | ||
| --node-type-color: rgba(80, 85, 115, 0.6); | ||
| --node-text: #111827; | ||
| --node-text-dim: rgba(55, 60, 90, 0.68); | ||
| --canvas-dot: rgba(0, 0, 0, 0.075); | ||
| --edge-color: rgba(79, 70, 229, 0.6); | ||
| --edge-arrow: rgba(79, 70, 229, 0.8); | ||
| --navbar-bg: rgba(255, 255, 255, 0.96); | ||
| --navbar-border: rgba(0, 0, 0, 0.1); | ||
| --diff-bg: #f8f9fc; | ||
| --diff-text: #1a1a2e; | ||
| --diff-linenum: rgba(0, 0, 0, 0.3); | ||
| --diff-add-bg: rgba(22, 163, 74, 0.08); | ||
| --diff-add-border: rgba(22, 163, 74, 0.5); | ||
| --diff-add-text: #14532d; | ||
| --diff-add-sign: #16a34a; | ||
| --diff-rm-bg: rgba(220, 38, 38, 0.07); | ||
| --diff-rm-border: rgba(220, 38, 38, 0.45); | ||
| --diff-rm-text: #7f1d1d; | ||
| --diff-rm-sign: #dc2626; | ||
| --diff-sidebar-bg: #e9eaf2; | ||
| --diff-sidebar-text:#1a1a2e; | ||
| --diff-header-bg: #d8daea; | ||
| --diff-header-text: #1a1a2e; | ||
| } | ||
| @keyframes slideInRight { | ||
| from { transform: translateX(20px); opacity: 0; } | ||
| to { transform: translateX(0); opacity: 1; } | ||
| } | ||
| @keyframes slideInUp { | ||
| from { transform: translateY(10px); opacity: 0; } | ||
| to { transform: translateY(0); opacity: 1; } | ||
| } | ||
| ::-webkit-scrollbar { width: 6px; height: 6px; } | ||
| ::-webkit-scrollbar-track { background: transparent; } | ||
| ::-webkit-scrollbar-thumb { | ||
| background: var(--vscode-scrollbarSlider-background, rgba(121,121,121,0.4)); | ||
| border-radius: 3px; | ||
| } | ||
| ::-webkit-scrollbar-thumb:hover { | ||
| background: var(--vscode-scrollbarSlider-hoverBackground, rgba(121,121,121,0.7)); | ||
| } | ||
| </style> | ||
| </head> | ||
| <body> | ||
| <div id="root"></div> | ||
| <script type="module" src="/src/main.tsx"></script> | ||
| </body> | ||
| </html> | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| { | ||
| "name": "extension-webview", | ||
| "private": true, | ||
| "version": "0.1.61", | ||
| "type": "module", | ||
| "scripts": { | ||
| "dev": "vite", | ||
| "build": "tsc && vite build", | ||
| "preview": "vite preview" | ||
| }, | ||
| "dependencies": { | ||
| "@devup-ui/react": "^1.0.36", | ||
| "@devup-ui/vite-plugin": "^1.0.59", | ||
| "react": "^18.3.0", | ||
| "react-dom": "^18.3.0" | ||
| }, | ||
| "devDependencies": { | ||
| "@types/react": "^18.3.0", | ||
| "@types/react-dom": "^18.3.0", | ||
| "@vitejs/plugin-react": "^4.3.0", | ||
| "typescript": "^5.3.0", | ||
| "vite": "^5.4.0" | ||
| } | ||
| } |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
관 련 inline css 작성을 금합니다