-
Notifications
You must be signed in to change notification settings - Fork 0
feat: initial View Files #4
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
base: main
Are you sure you want to change the base?
Conversation
- Introduced IdeSettingsContext to manage theme and liquid glass settings across components. - Updated various components (e.g., ActivityBar, Sidebar, StatusBar) to support dynamic theming and glass effects. - Implemented scope color fetching and CSS variable updates for improved visual feedback. - Added a new IdeTitlebar component for a cohesive titlebar experience with search functionality. - Enhanced loading states and error handling in the IDE layout. - Refactored styles to align with Panager's design, ensuring a consistent user experience.
- Updated EditorTabs component to use a new layout with a fixed height and relative positioning. - Added a custom thin overlay scrollbar for better aesthetics and usability in the tabs. - Adjusted tab item widths for improved responsiveness and visual consistency.
- Added support for displaying left and right-aligned plugin status bar items in the StatusBar component. - Utilized useMemo for optimized rendering of status items based on their alignment. - Updated layout to accommodate new plugin items alongside existing file and Git information.
- Added functionality to convert preview tabs to permanent tabs on double-click in the EditorTabs component. - Implemented openFilePreview method in the file store to manage file previews. - Updated FileTreeNode to support single-click for previewing files and double-click for opening them permanently. - Enhanced file state management to track preview status and improve user experience with file interactions.
- Added Git blame support in the Monaco editor, displaying inline blame information for modified lines. - Implemented a commit input component for quick commits, allowing users to stage and amend commits directly from the UI. - Introduced a branch selector component for easier branch management within the IDE. - Enhanced the Git panel with stash management features, including stash pop, apply, and drop functionalities. - Updated the file tree and editor components to reflect Git status indicators for better visual feedback on file changes. - Integrated new hooks for managing Git blame and gutter decorations, improving the overall user experience with version control.
- Added support for Shiki syntax highlighting in the Monaco editor, improving code readability with TextMate-based themes. - Introduced a new hook for managing editor state, centralizing file content, blame data, and session information. - Updated editor components to utilize the new editor store for managing open tabs and file states. - Refactored existing components to streamline file handling and improve performance. - Enhanced the initialization process for Monaco to ensure a smooth user experience with reduced loading times.
- Added .yarnrc.yml to configure Yarn with nodeLinker set to node-modules. - Replaced npm commands with Yarn equivalents in Dockerfile, docker-compose.yml, and GitHub workflows for consistency. - Updated README.md to reflect Yarn usage for installation and build commands. - Introduced yarn.lock for dependency management. - Added patches for @monaco-editor/react to ensure compatibility with Yarn. - Enhanced build scripts to utilize Yarn for improved performance and reliability.
- Enhanced the openTab function to check both fileStates and openTabs for existing tabs, ensuring robustness in tab management. - Added logic to populate fileStates from openTabs after rehydration, improving state consistency. - Updated persistence logic to clarify that openTabs are managed separately to avoid restoration issues.
- Introduced a new hook, useRevealActiveFile, to automatically reveal the active file in the file tree when the active tab changes. - Enhanced FileTreePanel to utilize the new hook, improving user experience by ensuring the active file is visible. - Added a ref for the scrollable tree container to facilitate smooth scrolling to the active file. - Updated the file tree node to include a data attribute for file paths, aiding in the reveal functionality.
- Introduced a new GitChangeTree component to display staged, unstaged, and untracked changes in a hierarchical tree format. - Implemented diff tab functionality to view differences between file versions directly within the IDE. - Enhanced GitPanel to support toggling between list and tree views for better change management. - Updated editor store to manage diff tab states and integrate with existing file handling logic. - Improved file click handling to open diffs and manage file previews seamlessly.
- Updated EditorTabs component to manage both file and diff tabs using a unified TabState structure. - Introduced type guards for distinguishing between file and diff tabs, enhancing type safety. - Refactored state management in the editor store to streamline tab operations and improve performance. - Enhanced ContentArea and StatusBar components to utilize the new tab management logic. - Improved GitPanel to correctly derive selected file paths from active tabs, supporting both file and diff views.
… tabs - Introduced a new settings store to manage IDE settings with a three-tier hierarchy: user, scope, and workspace. - Added an IDE settings dialog for users to configure settings across different levels. - Implemented various settings tabs including General, Editor, Git, and Behavior settings for comprehensive configuration. - Enhanced file handling to support format-on-save functionality based on user-defined settings. - Integrated settings management into existing components, ensuring a seamless user experience with real-time updates. - Updated the Monaco editor and other components to utilize settings from the new store for improved customization.
- Introduced a comprehensive integration plan for the Agent Client Protocol (ACP) to enable AI-assisted coding features. - Added new components including ChatPanel, ChatMessage, ApprovalBanner, and DiffApprovalCard for enhanced user interaction. - Implemented state management for agent sessions, messages, and approvals using Zustand. - Developed a RightSidebar and RightActivityBar for seamless access to chat and task functionalities. - Created settings management for agent modes and approval workflows within the IDE settings dialog. - Integrated Tauri commands for ACP operations, facilitating communication with the backend. - Enhanced the IDE layout to accommodate new panels and improve user experience with real-time updates.
…new components - Introduced a unified entry architecture for chat sessions, allowing for consistent handling of messages, tool calls, and permission requests. - Added new components including MarkdownContent, ToolCallCard, ThoughtCard, PlanCard, and ModeChangeCard to improve user interaction and display of various entry types. - Implemented a PermissionDialog for managing user permissions on tool execution requests. - Enhanced ChatPanel and ChatMessage components to support the new entry structure and improve overall chat experience. - Updated state management in the agent store to accommodate new entry types and ensure seamless integration with the ACP backend. - Refactored existing components to align with the new architecture, improving maintainability and performance.
… file handling - Introduced a new ToolCallGroup component to render consecutive tool calls in a collapsible format, enhancing user interaction and organization of tool call entries. - Updated ChatMessage and ChatPanel components to support the new isTab prop, allowing for better display management in different contexts (tab vs sidebar). - Implemented debouncing for file modification events in useFileWatcher to improve performance and reduce unnecessary updates. - Enhanced file tree management in useFilesStore to ensure proper addition and removal of files, including handling of gitignored paths. - Added support for gitignore patterns in the file watcher to filter out events for ignored files, improving overall file management efficiency. - Refactored MarkdownContent styles to ensure proper overflow handling for tables, enhancing content display in the chat interface. - Introduced a new ide.db file for improved state management and persistence across sessions.
- Introduced a new inlay hints provider to display inline type and parameter hints in the Monaco editor. - Enhanced EditorSettingsTab to allow configuration of inlay hints, including toggles for parameter names, types, and more. - Implemented LSP commands for fetching inlay hints, integrating with the existing LSP infrastructure. - Updated settings management to include inlay hints options, ensuring user customization is preserved. - Added necessary types and interfaces for inlay hints in the LSP and settings modules. - Created a new ide.db file for improved state management and persistence across sessions.
- Add AI button in EditorTabs to open new chat tabs - Create ChatTabContent component with centered input for new sessions - Update ContentArea to render chat tabs - Add header with plan progress tracking in chat tab - Implement "type to start session" flow in both sidebar and tab - Generate session names from first user message - Sync tab names when session name changes
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.
Pull request overview
This PR introduces initial view files functionality for the IDE, including a Monaco editor wrapper, editor tabs system, diff viewer, dialog components for quick file access and navigation, and various agent/chat interface components. The changes also include CSS utility class syntax updates and package manager configuration changes.
Changes:
- Added Monaco editor integration with support for themes, language detection, and editor settings
- Implemented editor tabs with preview/permanent states, git status indicators, and diff/chat tab types
- Created dialog components for quick file opening and line navigation
- Added comprehensive agent/chat interface components for AI interactions
- Updated CSS utility classes syntax across multiple UI components
- Switched package manager references from npm to yarn
Reviewed changes
Copilot reviewed 107 out of 196 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| src/ide/components/editor/MonacoEditor.tsx | Monaco editor wrapper with theme support and settings integration |
| src/ide/components/editor/EditorTabs.tsx | Tab bar component with git status, preview tabs, and chat integration |
| src/ide/components/editor/DiffEditor.tsx | Side-by-side diff viewer for git changes |
| src/ide/components/dialogs/QuickOpenDialog.tsx | Cmd+P quick file search dialog |
| src/ide/components/dialogs/GoToLineDialog.tsx | Cmd+G line navigation dialog |
| src/ide/components/agent/*.tsx | Chat panel, message rendering, tool call cards, and AI interaction components |
| src/ide/IdeApp.tsx | IDE root component with project context and settings |
| src/components/ui/*.tsx | CSS utility class syntax updates (focus:outline-hidden, backdrop-blur-xs, etc.) |
| src/components/projects/*.tsx | Added onViewFiles prop and updated CSS classes |
| src/bindings/types.ts | Updated package manager reference to yarn |
| src-tauri/tauri.conf.json | Updated build commands to use yarn |
| src-tauri/src/plugins/*.rs | Plugin system implementation with TypeScript LSP support |
| src-tauri/src/ide/*.rs | IDE backend commands for file operations, git, and LSP |
| src-tauri/src/acp/*.rs | Agent Client Protocol implementation |
| postcss.config.js | Updated to use @tailwindcss/postcss plugin |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -86,7 +86,7 @@ export function CommandPalette({ | |||
| onOpenChange={onOpenChange} | |||
| label="Command Palette" | |||
| overlayClassName={ | |||
| useLiquidGlass ? "!bg-transparent" : "bg-black/40 backdrop-blur-sm" | |||
| useLiquidGlass ? "bg-transparent!" : "bg-black/40 backdrop-blur-xs" | |||
Copilot
AI
Jan 20, 2026
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.
Invalid Tailwind important modifier syntax. bg-transparent! should be !bg-transparent (important modifier comes before the class name).
| useLiquidGlass ? "bg-transparent!" : "bg-black/40 backdrop-blur-xs" | |
| useLiquidGlass ? "!bg-transparent" : "bg-black/40 backdrop-blur-xs" |
| "**:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5", | ||
| "**:[[cmdk-group-heading]]:text-[11px] **:[[cmdk-group-heading]]:font-medium", | ||
| "**:[[cmdk-group-heading]]:text-muted-foreground/60 **:[[cmdk-group-heading]]:uppercase", | ||
| "**:[[cmdk-group-heading]]:tracking-wide" |
Copilot
AI
Jan 20, 2026
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.
Invalid attribute selector syntax. **:[[cmdk-group-heading]] should be [&_[cmdk-group-heading]] for proper CSS descendant selection.
| "**:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5", | |
| "**:[[cmdk-group-heading]]:text-[11px] **:[[cmdk-group-heading]]:font-medium", | |
| "**:[[cmdk-group-heading]]:text-muted-foreground/60 **:[[cmdk-group-heading]]:uppercase", | |
| "**:[[cmdk-group-heading]]:tracking-wide" | |
| "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5", | |
| "[&_[cmdk-group-heading]]:text-[11px] [&_[cmdk-group-heading]]:font-medium", | |
| "[&_[cmdk-group-heading]]:text-muted-foreground/60 [&_[cmdk-group-heading]]:uppercase", | |
| "[&_[cmdk-group-heading]]:tracking-wide" |
| @@ -46,7 +46,7 @@ const DropdownMenuSubContent = React.forwardRef< | |||
| <DropdownMenuPrimitive.SubContent | |||
| ref={ref} | |||
| className={cn( | |||
| "z-50 min-w-[8rem] overflow-hidden p-1", | |||
| "z-50 min-w-32 overflow-hidden p-1", | |||
Copilot
AI
Jan 20, 2026
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.
Invalid Tailwind class. min-w-32 should be min-w-[8rem] (arbitrary value) since Tailwind doesn't have a min-w-32 utility by default.
| "z-50 min-w-32 overflow-hidden p-1", | |
| "z-50 min-w-[8rem] overflow-hidden p-1", |
| "focus:bg-black/5 dark:focus:bg-white/10", | ||
| "data-[disabled]:pointer-events-none data-[disabled]:opacity-50", | ||
| "data-disabled:pointer-events-none data-disabled:opacity-50", |
Copilot
AI
Jan 20, 2026
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.
Invalid data attribute syntax. data-disabled: should be data-[disabled]: (data attributes require square brackets in Tailwind).
| "focus:bg-black/5 dark:focus:bg-white/10", | ||
| "data-[disabled]:pointer-events-none data-[disabled]:opacity-50", | ||
| "data-disabled:pointer-events-none data-disabled:opacity-50", |
Copilot
AI
Jan 20, 2026
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.
Invalid data attribute syntax. data-disabled: should be data-[disabled]: (data attributes require square brackets in Tailwind).
| "focus:bg-black/5 dark:focus:bg-white/10", | ||
| "data-[disabled]:pointer-events-none data-[disabled]:opacity-50", | ||
| "data-disabled:pointer-events-none data-disabled:opacity-50", |
Copilot
AI
Jan 20, 2026
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.
Invalid data attribute syntax. data-disabled: should be data-[disabled]: (data attributes require square brackets in Tailwind).
| @@ -22,7 +22,7 @@ const DialogOverlay = React.forwardRef< | |||
| ref={ref} | |||
| className={cn( | |||
| "fixed inset-0 z-50", | |||
| useLiquidGlass ? "bg-transparent" : "bg-black/40 backdrop-blur-sm", | |||
| useLiquidGlass ? "bg-transparent" : "bg-black/40 backdrop-blur-xs", | |||
Copilot
AI
Jan 20, 2026
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.
Invalid Tailwind utility class. backdrop-blur-xs does not exist in Tailwind CSS. Should be backdrop-blur-sm or a custom arbitrary value like backdrop-blur-[2px].
| useLiquidGlass ? "bg-transparent" : "bg-black/40 backdrop-blur-xs", | |
| useLiquidGlass ? "bg-transparent" : "bg-black/40 backdrop-blur-sm", |
| @@ -271,7 +271,7 @@ function TabTrigger({ | |||
| ); | |||
|
|
|||
| const activeStyles = useLiquidGlass | |||
| ? "py-1.5 font-medium data-[state=active]:bg-[color-mix(in_srgb,_var(--scope-color)_10%,_transparent)] data-[state=active]:text-[var(--scope-color)]" | |||
| ? "py-1.5 font-medium data-[state=active]:bg-[color-mix(in_srgb,var(--scope-color)_10%,transparent)] data-[state=active]:text-(--scope-color)" | |||
Copilot
AI
Jan 20, 2026
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.
Invalid CSS variable syntax. text-(--scope-color) should be text-[var(--scope-color)] (CSS variables in Tailwind require var() function and square brackets).
| ? "py-1.5 font-medium data-[state=active]:bg-[color-mix(in_srgb,var(--scope-color)_10%,transparent)] data-[state=active]:text-(--scope-color)" | |
| ? "py-1.5 font-medium data-[state=active]:bg-[color-mix(in_srgb,var(--scope-color)_10%,transparent)] data-[state=active]:text-[var(--scope-color)]" |
| @@ -24,7 +24,7 @@ export function TabTrigger({ | |||
| variant === "danger" | |||
| ? dangerClasses | |||
| : liquidGlass | |||
| ? "data-[state=active]:bg-[color-mix(in_srgb,_var(--scope-color)_10%,_transparent)] data-[state=active]:text-[var(--scope-color)]" | |||
| ? "data-[state=active]:bg-[color-mix(in_srgb,var(--scope-color)_10%,transparent)] data-[state=active]:text-(--scope-color)" | |||
Copilot
AI
Jan 20, 2026
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.
Invalid CSS variable syntax. text-(--scope-color) should be text-[var(--scope-color)] (CSS variables in Tailwind require var() function and square brackets).
| ? "data-[state=active]:bg-[color-mix(in_srgb,var(--scope-color)_10%,transparent)] data-[state=active]:text-(--scope-color)" | |
| ? "data-[state=active]:bg-[color-mix(in_srgb,var(--scope-color)_10%,transparent)] data-[state=active]:text-[var(--scope-color)]" |
- Implemented logic to prevent grouping of important tool calls (Task, Bash, Write, Edit, ExitPlanMode) for better visibility. - Updated ToolCallCard to support expanded display for key tools, showing relevant markdown and diff content. - Enhanced ModelSelector and ModeSelector components to send commands to the backend, improving session management. - Added deduplication logic for tool call entries in the backend, ensuring updates to existing calls instead of creating duplicates. - Updated ENTRY_PROCESSING_RULES documentation to reflect new fields and deduplication process for tool calls.
…ting, and more - Implemented new LSP commands for document highlighting, signature help, document formatting, range formatting, and on-type formatting. - Added providers for document highlights, signature help, formatting, folding ranges, selection ranges, and linked editing ranges in the Monaco editor. - Enhanced the LSP types to include new structures for document highlights, signature help, formatting options, and folding ranges. - Updated the backend to handle new LSP commands and integrate them with the existing plugin architecture. - Improved the IDE's capabilities for code navigation and editing, enhancing the overall developer experience.
…ation and tab management - Introduced a Breadcrumb component to display the file path as clickable segments, enhancing navigation within the editor. - Added a TabContextMenu component for right-click actions on editor tabs, allowing users to close, pin, copy paths, and reveal files in the sidebar. - Enhanced EditorTabs to support tab pinning and navigation history, improving user experience when managing multiple tabs. - Implemented lazy loading for tab content to optimize performance and reduce flickering when switching between tabs. - Updated ContentArea to integrate the Breadcrumb component and handle loading states for active tabs.
…tMenu components for enhanced file management - Introduced ClipboardIndicator to visually indicate clipboard operations (copy/cut) in the file tree. - Added FileOperationDialog for reusable confirmation dialogs when deleting or moving files/folders. - Implemented FileTreeContextMenu for right-click actions on file tree items, supporting create, rename, delete, copy, cut, paste, and reveal in finder functionalities. - Enhanced FileTreePanel to integrate new components, improving user experience for file operations and context actions.
Extract the IDE module from Panager into a standalone app called "Glide", an AI-powered code editor that can run independently. Changes: - Create monorepo structure with apps/panager and apps/glide - Set up Cargo and Yarn workspaces for both apps - Extract IDE, ACP, and plugins modules to Glide - Add welcome screen with recent projects tracking (last 10) - Implement proper window decorations with macOS title bar overlay - Add Liquid Glass theme support with settings toggle - Remove all IDE-related code from Panager (now lightweight project manager) Glide features: - Standalone editor launchable via `glide <path>` - Welcome screen when opened without project - Recent projects grid with relative timestamps - LSP support via TypeScript plugin - Agent/Plan mode for AI assistance
- Modified the active state classes in the TabTrigger component to use the correct accent color for better visual consistency. - Ensured that the component maintains its intended styling across different variants.
- Updated the EditorTabs component to ensure proper layout with flex properties for better responsiveness. - Modified the ACP state initialization in the Tauri backend to wrap it in an Arc for improved command handling. - Enhanced session management by emitting status updates even when the current session is already active.
- Deleted the acp_get_current_session function and its references from the Tauri backend, streamlining the ACP command set. - Removed the current_session_id field from the AcpProcess struct, simplifying session management logic. - Cleaned up related code to enhance maintainability and reduce complexity in session handling.
- Removed the IdeSettingsContext and its references throughout the codebase, simplifying the theme and liquid glass management. - Introduced the useEffectiveTheme hook to provide theme and liquid glass state directly, enhancing component performance and reducing complexity. - Updated components to utilize the new hook, ensuring consistent theme application across the application. - Cleaned up related code and comments for improved maintainability and clarity.
- Introduced GoToSymbolDialog for navigating to symbols within the current file, improving code navigation capabilities. - Updated GoToLineDialog to utilize cmdk for a more streamlined user experience. - Enhanced QuickOpenDialog to include options for navigating to lines and symbols, integrating new commands for better accessibility. - Refactored dialog components to accept open state and change handlers, ensuring consistent dialog management across the application. - Improved IDE layout to accommodate new dialogs and maintain a cohesive user interface.
- Added BranchSwitchDialog component to facilitate branch switching with autocomplete, new branch creation, and handling of uncommitted changes. - Integrated the dialog into the IDE layout and QuickOpenDialog for improved accessibility. - Updated BranchSelector to open the BranchSwitchDialog, enhancing the user experience for branch management. - Implemented keyboard shortcuts for quick access to the branch switching functionality.
… provider - Introduced a custom context menu for the Monaco editor, replacing the default implementation with a React-based component for improved user experience. - Added a file content provider to enable on-demand loading of file content for features like peek widgets and go-to definition previews. - Updated various Monaco editor components to integrate the new context menu and file content provider, enhancing navigation and interaction capabilities. - Refactored related components and hooks to support the new context menu functionality, ensuring a cohesive user interface across the editor.
- Added functionality to open new windows with a welcome screen or specific project context, improving user experience for multi-project workflows. - Introduced window lifecycle management to determine whether to spawn a new welcome window or allow the app to exit when the last project window is closed. - Enhanced the application menu with options for creating and closing windows, streamlining navigation and window management. - Refactored window management commands to support the new multi-window capabilities, ensuring a cohesive application lifecycle.
…nagement - Enhanced the Vite configuration to support a multi-page application structure, introducing a dedicated welcome.html for project selection. - Refactored the GlideApp component to separate project window management from the welcome screen, improving clarity and functionality. - Introduced the WelcomeApp component for lightweight project selection, ensuring a streamlined user experience without loading heavy IDE components. - Implemented window geometry tracking to persist window states across sessions, enhancing user experience by restoring previous window layouts. - Updated session management to handle window states, allowing for better project context handling and improved application lifecycle management.
…ions - Introduced a MAX_DEPTH constant in FileTreePanel and useRevealActiveFile hooks to prevent excessive directory traversal. - Updated getUniqueNameInDir function to use a MAX_COPIES constant for limiting the number of file copies, enhancing stability and preventing potential infinite loops. - Refactored various file handling functions to improve readability and maintainability by simplifying loop structures.
…esource management - Updated the useEditor hook to manage event listeners more effectively by utilizing a disposables reference, ensuring proper cleanup of resources. - Introduced a mechanism in the file content provider to prevent duplicate model creations by tracking in-flight promises, enhancing performance and stability during concurrent file loading operations. - Refactored model creation logic to include deduplication, improving the efficiency of loading file content in the Monaco editor.
…stency - Introduced a new constants file to centralize application-wide constants, including debounce timings and limits for directory depth and file copies. - Updated various components and hooks to utilize the new constants, enhancing code readability and maintainability. - Replaced hardcoded values with constants in the DiffApprovalCard, FileTreePanel, SearchPanel, useFileWatcher, useRevealActiveFile, and getUniqueNameInDir functions.
…lity - Introduced a new tab management system that supports tab groups, allowing for split view functionality and improved organization of open files. - Implemented a resolver-based approach for handling different tab types, including file, diff, chat, and markdown tabs, enhancing flexibility and usability. - Added database-backed persistence for tabs and tab groups, ensuring state is maintained across sessions. - Refactored existing components and hooks to integrate with the new tabs store, improving overall code structure and maintainability. - Updated the Vite configuration and various components to support the new tab management features, enhancing user experience and navigation.
…performance - Removed the Monaco editor plugin from the Vite configuration to simplify setup and reduce initial load time. - Introduced a new workers.ts file to manage Monaco editor workers, improving modularity and performance. - Updated the EditorGroup and EditorGroupTabs components to utilize shallow comparisons for state management, reducing unnecessary re-renders and enhancing responsiveness. - Refactored tab management logic to improve efficiency and maintainability within the editor components.
…unctionality - Added Content Security Policy headers to the Vite configuration to enhance security. - Updated the WelcomeScreen component to utilize a new hideWindow function for better window management. - Refactored editor components (FileTabContent, MarkdownEditor, MonacoEditor) to support groupId, enabling better session management and state persistence. - Improved the useEditor hook to manage editor metadata and line diffs more effectively, ensuring accurate tracking of file changes. - Enhanced the GoToSymbolDialog to utilize updated editor metadata for improved symbol navigation.
- Introduced new language support for JSON, CSS, HTML, and YAML in the LSP client. - Enhanced the TypeScript and JavaScript language handling to include additional file extensions. - Implemented dedicated plugins for CSS, HTML, JSON, and YAML, providing language-specific features via LSP. - Updated the LSP configuration to accommodate new language capabilities and improve overall functionality. - Refactored existing code to streamline the integration of new language servers and enhance maintainability.
No description provided.