Skip to content

Releases: cocodestudio/VCode

v5.0.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 13:41

VCode v5.0.0 Release Notes 🚀

VCode v5.0.0 is one of our biggest updates yet. We overhauled the Git engine, added a fully customizable keybinding system, upgraded JavaScript/TypeScript language features, introduced live CSS gradient previews, and cleaned up performance under the hood.


🚀 Git & Version Control

  • Full-Screen Diff Viewer: Replaced the cramped bottom-sheet diffs with a full-screen viewer featuring word-level change highlighting, inline commit stats, and a one-tap "Go to file" shortcut.
  • Pre-Merge Inspection: Added a fetch review drawer to inspect incoming commits, author details, and file diffs before running a merge or pull.
  • Smarter Branching & Author Info:
    • Automatically checks out local branches to keep you out of a detached HEAD state.
    • Cleans up stale remote-tracking branches during fetches.
    • Auto-detects author credentials from your linked GitHub account or local .gitconfig.
  • Draft Saving & Clean Dialogs: Automatically saves commit message drafts per project so you never lose your notes, and updated all conflict/uncommitted change prompts to clean Material 3 dialogs.

⌨️ Custom Keybindings & Editor Improvements

  • Fully Configurable Shortcuts: Built a new keybindings manager with support for 37 customizable commands, visual keycap badges, conflict alerts, and keybindings.json import/export.
  • Hardware Keyboard Recording: Detects and binds physical key presses directly from external keyboards.
  • Desktop-Style Editing Shortcuts: Added standard shortcuts for moving lines (Alt+Up/Down), duplicating lines (Shift+Alt+Up/Down), deleting lines (Ctrl+Shift+K), and toggling read-only mode (Alt+R).
  • Touch-Friendly Overflow Menu: Added a quick-action menu to the selection toolbar so you can run line operations without a physical keyboard.
  • Smart Session Memory: Keeps track of your exact cursor position and scroll state across tab switches, project reloads, and file tree clicks.

⚡ JS/TS Intelligence & Language Server

  • Smarter Autocomplete: Better control-flow type narrowing (typeof, instanceof), plus contextual completions for tuples, multiline arrays, inline objects, DOM events, and for..of/forEach loops.
  • Safe Symbol Renaming: Refactor class properties (this.prop), constructor parameters, methods, and TypeScript types (interface, enum, type) cleanly across your project.
  • Unobtrusive LSP Toolbar: The navigation toolbar now waits until you pause typing before showing popups, keeping clutter out of your way while writing code.
  • Parser Fixes & Support:
    • Fixed loop AST corruption bugs and false "variable not defined" lint warnings.
    • Solidified support for ES2022 private fields (#field), arrow function scopes, and complex TypeScript generics.

📁 File System & Automatic Refactoring

  • Custom File Templates: Create project templates using dynamic placeholders like {fileName} and {projectName}, complete with live code previews and safety rules for binary files.
  • Automatic Import Updating: Renaming or moving a file automatically updates relative imports, assets, and links across JS, TS, HTML, CSS, Markdown, and PHP files.
  • Cleaner Single-File Editing: Opening standalone files from an external manager no longer generates unwanted .vcode/ workspace folders.
  • Improved Tree Navigation: Added right-click context menu positioning, hardware key support (Shift+F10 / KEYCODE_MENU), and paste actions for root directories.

🎨 UI, Visual Tools & Diagnostics

  • New VCodeSnackbar: Toast and snackbar notifications now match your active Material 3 color palette.
  • Live CSS Shader Previews: Render CSS gradient shader previews right inside the editor gutter.
  • Cleaner Emmet Aliases: Fixed shortcut collisions for short Emmet triggers (posa, df, db).
  • Visual Toggles: Added toggles for rainbow bracket pairs, boundary bracket highlights, custom accent cursors, and selection handles.
  • Precise Error Navigation: Tapping an error or warning in the Problems panel jumps your caret directly to the exact line and character column.

🛠️ Performance & System Optimizations

  • Memory & String Tuning: Lowered memory overhead and sped up file reading with optimized string buffers and improved font caching.
  • Resource Cleanup: Ensured background Git tasks release file handles properly to avoid memory leaks.
  • Smarter Indexing: Heavy dependency folders (node_modules, build, .gradle, dist) are now ignored during file counts and linter indexing to keep things snappy.

Full Commit Changelog: v4.3.5...v5.0.0

v4.4.6

Choose a tag to compare

@github-actions github-actions released this 15 Sep 11:18

v4.3.5 Release Notes

🚀 Highlights

  • Intelligent Word Wrap: Text now wraps cleanly at natural word boundaries instead of breaking mid-word.
  • Smarter Code Intelligence: Enhanced cross-file diagnostics, class method parsing, and real-time signature hints.
  • New Editor Diagnostic Toggles: Easily toggle error squiggles, auto-close rules, and large file performance modes.
  • Settings Backup & UI Redesign: Import and export your entire configuration via JSON, navigated through a revamped 2-level settings menu.
  • Linter & Emmet Polish: Reduced false-positive warnings, smoother bracket overtyping, and cleaner Emmet HTML expansions.
  • Performance Optimizations: Faster cold startup speed and improved memory optimization during extended coding sessions.

🛠️ Detailed Breakdown

✏️ Editor & Text Formatting

  • Implemented natural word-boundary wrapping to prevent awkward mid-word line splits when word wrap is enabled.
  • Added soft-overtyping for closing brackets and quotes to avoid duplicate syntax entry.
  • Introduced a dedicated Large File Mode toggle that disables non-critical visual decorations on heavy files to maintain 60 FPS scrolling.

🧠 Code Analysis & Language Features

  • Upgraded cross-file symbol resolution for improved class method and variable tracking across complex workspace trees.
  • Refined function signature tooltips and parameter hints with better context accuracy.
  • Upgraded the Emmet expansion engine for faster and cleaner HTML snippet generation.
  • Reduced false-positive linter warnings across active language servers.

⚙️ Settings & Customization

  • Redesigned settings menu into an intuitive 2-level hierarchical navigation structure for quicker discoverability.
  • Added JSON Backup & Restore actions (Import / Export Settings) to simplify machine migration and environment syncing.
  • Added granular toggles for inline diagnostic squiggly lines and auto-closing behaviors.

⚡ Performance & Core Engine

  • Reduced initial application launch time by deferring non-essential module initialization.
  • Resolved memory retention issues during prolonged editor sessions with active language server connections.

v3.3.5

Choose a tag to compare

@github-actions github-actions released this 25 Aug 15:47
  • Signature Help for JS/TS: Added a floating signature hint tooltip (SignatureHintPopup) that appears above the cursor when typing function arguments in JavaScript and TypeScript files. This feature highlights the active parameter and parses local signatures without requiring heavy AST analysis.
  • LSP Refactoring & Performance:
    • Unified project indexers (ProjectIndex and ProjectSymbolIndex) to eliminate redundant disk I/O and inconsistent file scanning. ProjectSymbolIndex now uses the ProjectIndex document cache as the single source of truth.
    • Optimized the diagnostic pipeline by removing the legacy LspDiagnostic conversion layer, allowing LSP servers to return Problem objects directly to the editor.
  • Floating LSP Toolbar: Added a context-aware popup toolbar that automatically appears when the cursor is idle on a symbol, providing quick access to "Go to Definition" and "Find References". It intelligently avoids overlapping with other popups (like autocomplete or signature hints) and automatically hides upon editor focus loss or tab switching.
  • LSP Bug Fixes:
    • Fixed a context loss bug where autocomplete popup would disappear when typing inside arrow function callbacks (e.g., map(x => { ... })).
    • Cross-File Symbol Resolution Fix: Constructors and exports added to a file are now immediately visible to the LSP engine in other files without requiring an app restart. This was achieved by introducing a real-time incremental project indexer that properly flushes all open files' states to ProjectIndex when switching tabs, completely decoupling LSP features from the disk auto-save mechanism. Also fixed a cache-miss issue when paths contained relative notations (like ./mathUtils.js) and prevented the editor from wiping the live index on every tab switch.
    • LSP Index Desync Fix: Fixed a lifecycle bug where discarding unsaved changes by closing a tab (with Auto-Save off) would leave the discarded changes trapped in the LSP index. The index now immediately reverts to the disk state when a tab is closed, ensuring autocomplete and diagnostics remain perfectly synced.
    • Scroll Restoration Bug: Fixed an annoying UI bug where the editor's scroll position would reset to line 1, character 1 every time you switched tabs or reopened a file. The restoration logic now waits for the async text loader to safely finish before restoring bounds.
    • Critical Data Corruption on Tab Switch: Fixed two severe race conditions where rapidly switching tabs could cause the editor to silently overwrite a file on disk with the contents of a different file. The diagnostic engine and the tab-flush mechanism now both strictly abort their snapshot routines if the editor is currently engaged in background text loading, guaranteeing that a file's data model is never cross-contaminated with transitional text from another tab.
    • Thread Race Condition on Fast Typing: Fixed a subtle data corruption bug where rapidly typing could cause older background diagnostic threads to overwrite the file's data model with stale keystrokes, permanently reverting recent changes right before an auto-save. Model updates are now strictly processed synchronously on the main thread.
    • Cursor Drift on Identical Files: Fixed an edge case where switching between two files containing the exact same text (or two empty files) would skip the async loading phase but completely fail to restore the cursor and scroll position for the new tab.
    • Diagnostic Bar Performance Fix: Fixed an extreme performance regression where the "Analyzing..." progress bar would spin for minutes even for a single line of code. Root cause: diagnostics were queued behind all other I/O work (auto-saves, project indexing, symbol extraction) on a single-threaded executor. Fix: added a dedicated diagnosticExecutor in ExecutorProvider so linting/LSP diagnostics always run immediately, isolated from disk I/O. Additionally moved the "Analyzing..." UI indicator inside the debounce runnable so it only appears after the user stops typing, not on every keystroke.
    • Diagnostic UI Freezing: Fixed an infinite "Analyzing..." loading bar bug that occurred when the LSP server rejected a diagnostic request or threw an internal error. The diagnostic engine now properly informs the UI to clear its loading state upon failure.
    • Multi-Import Completion Fix: Added support for properly completing multiple exports inside a single import block (e.g., import { a, b }).
    • Diagnostic Listener Memory Leak Fix: Fixed a critical UI bug where the diagnostic loading bar would repeatedly spin and hang due to duplicate listener registrations piling up during asynchronous file loads.
    • Undo/Redo Atomic Depth Fix: Fixed a subtle bug in the undo history where mismatched key types (e.g. typing a bracket after deleting a character) would prematurely close atomic edit groups, causing subsequent keystrokes to fragment the undo stack.
    • Tab Switch UX Improvements: Fixed annoying behavior when switching between tabs. The soft keyboard now instantly dismisses so it doesn't block the new file, and any leftover signature popups are correctly hidden. Additionally, the editor no longer attempts to forcefully save and restore the text cursor position across session reloads and tab switches, which felt unnatural; it now only persists the scroll viewport.
    • Hardware Keyboard Atomicity Fix: Brought the hardware keyboard Enter key path into parity with the software keyboard by properly wrapping its auto-indent operations inside an atomic undo group, ensuring the entire insertion can be undone in a single step.
    • Undo/Redo Critical Regression Fix: Fixed a severe logic bug where handleAutoClose and handleAutoIndent were opening redundant inner atomic groups. This double-nesting caused the undo group tracker to permanently leak, which silently disabled the Undo function entirely after typing brackets or newlines.
    • Git Diff Viewer Improvements: Added a vertical ScrollView to the bottom_sheet_diff_viewer to ensure proper vertical scrolling for large diffs.
  • ProjectsActivity Crash Fix: Fixed a fatal crash (IllegalArgumentException: Receiver not registered) occurring on Android 12 when users interacted with the system permission dialog before the broadcast receiver was fully registered.

v2.2.4-patch1

Choose a tag to compare

@github-actions github-actions released this 21 Aug 14:15
  • ProjectsActivity Crash Fix: Fixed a fatal crash (IllegalArgumentException: Receiver not registered) occurring on Android 12 when users interacted with the system permission dialog before the broadcast receiver was fully registered.

v2.2.4

Choose a tag to compare

@github-actions github-actions released this 20 Aug 15:04
  • Run without Save Issue: Fixed a bug where running an unsaved file would lose recent changes. The editor now silently auto-saves all unsaved files right before launching the local web server preview.
  • Preview UI Bug: Fixed a bug where the URL bar and viewport toggle controls in PreviewActivity would randomly inherit incorrect background colors from code completions.

v2.2.3

Choose a tag to compare

@github-actions github-actions released this 19 Aug 13:33
  • Find in Files: Long-clicking a folder in the File Tree now allows for a directory-scoped search with multi-file Replace All capabilities (with confirmation dialog).
  • Find Usages: Long-clicking a file in the File Tree now allows finding its usages across the project.
  • Markdown Linting: Added diagnostic engine support for Markdown files to detect empty links and missing image alt texts, and expanded rules to detect improper heading sequences, list inconsistencies, trailing whitespace, useless alt text, raw URLs, unclosed code blocks, and hard tabs.
  • Markdown Completions via LSP: Re-architected Markdown completion to run through MarkdownLspServer. Path autocomplete suggestions for .md now trigger flawlessly. Additionally, added snippet completions for common markdown structures (e.g. link, image, codeblock, bold, etc).
  • Emmet Lorem Support: Typing lorem followed by an optional number (e.g., lorem20) and triggering Emmet now automatically generates standard Lorem Ipsum dummy text of that exact word length.
  • API Tester Headers: The API Tester now provides real-time, dictionary-backed intelligent autocomplete suggestions for standard HTTP header keys and valid values as you type.
  • Smart Web Linting: Expanded the diagnostic engine with smarter web development rules:
    • HTML: Warns on missing/empty <title> and <head>, <button> without type, deprecated tags (e.g. <center>, <marquee>), and target="_blank" without rel="noopener noreferrer".
    • CSS: Warns on duplicate properties, ID selectors #id, !important usage, and pt units for screen layouts.
    • JS: Warns on legacy var declarations, eval(), string-based setTimeout(), and new Object()/new Array() constructors.
    • JSON: Warns on duplicate object keys and enforces strict RFC-8259 compliance (no comments, trailing commas, or single quotes).
  • Extract Inline Tags: Editor Overflow menu in HTML files now provides an option to extract inline <style> and <script> blocks into standalone files. The extracted code is saved to a new file, the original inline blocks are removed, and the corresponding <link rel="stylesheet"> or <script src="..."> tags are automatically injected!
  • Scalable Project Architecture: Migrated IDE metadata (project_meta.json and session.json) from the workspace root into a hidden .vcode nested directory (.vcode/meta/project.json and .vcode/state/session.json). The IDE performs a silent, bulletproof migration on startup without touching user-created files. This cleans up the workspace and provides a scalable foundation for future IDE configurations.
  • Search UI Refactor & Strings: Completely revamped the ProjectSearchBottomSheet UI (rounded input fields, colorSurfaceContainerHigh background, and consistent paddings). Migrated generic Material dialogs to a tailored, transparent dialog_replace_all_confirm.xml for replace-all confirmation, aligning with other custom dialogs. Also transferred hardcoded strings from new features into strings.xml.
  • Responsive UI Refactor: Refactored all BottomSheets to inherit from a new BaseBottomSheetDialogFragment enforcing max width limits on tablets (sw600dp). Dialogs also restrict max width. Added androidx.window dependency and set resizeableActivity="true" to fully support multi-window and large screens.

v1.2.3

Choose a tag to compare

@github-actions github-actions released this 09 Aug 05:54

What's New in v1.2.3:
• Universal 'Go to Definition' & 'Find References' for JS/TS and all LSP languages.
• Fixed code formatting race condition & TabBar dirty dot auto-save bug.
• Improved HTML Emmet tag completion and cursor positioning.
• Fixed Git Revert credentials issue and conflict clearing.
• Enhanced Undo/Redo

v1.2.2

Choose a tag to compare

@github-actions github-actions released this 05 Aug 12:35

VCode 1.2.2 🚀

• OAuth Device Flow: Sign in to GitHub faster and more securely using OAuth Device Flow. Legacy PAT sessions persist until logout.
• New Bottom Sheets: Streamlined UI bottom sheets for GitHub Login and Clone Repository functionalities.
• Language Servers: Full Language Server Protocol (LSP) support for HTML, CSS/SCSS, JavaScript, TypeScript, JSON, Markdown.
• IDE-Grade Features: Go to Definition and Find References.

VCode v1.0.0-alpha-4

Choose a tag to compare

@cocodestudio cocodestudio released this 31 May 11:55

VCode IDE - Release Notes

Welcome to the latest update for VCode IDE! This release focuses on bringing a true desktop-grade development experience to your mobile device. We've introduced a built-in Emmet engine, a highly context-aware dynamic UI, advanced autocomplete intelligence, and a completely revamped clipboard and file management system.

🚀 What's New

  • Premium File Tree Menu: We've replaced the old inline edit/delete buttons with a stunning, animated custom popup menu that triggers on long-press in the file explorer.
  • Full Clipboard Support: You can now seamlessly Copy, Cut, and Paste files and folders across your workspace!
  • Desktop-Grade UX: When you "Cut" a file or folder, its icon and text will now dim to 70% opacity in the file tree, exactly like it behaves on macOS or Windows.
  • Advanced Path Extraction: Need to grab a path quickly? Long-press any file and select "Copy Path" to instantly copy its Absolute or Relative path to your clipboard.
  • Embedded Intelligence: HTML files now feature full context-aware autocomplete! Get CSS suggestions inside <style> tags and style="..." attributes, and JavaScript suggestions inside <script> blocks.
  • Lazy Tab Loading: Project loading is now significantly faster! The active editor tab is loaded instantly while background tabs are silently loaded in parallel.
  • Asynchronous File Operations: Heavy directory imports and pasting (like assets) now run seamlessly in the background.
  • Progress & Cancellation: Long-running file operations now feature progressive Android notifications showing file-wise status with an instant "Cancel" button.
  • File Suggestion Icons & Recursive Search: Autocomplete now displays actual file/folder icons (using ic_file_lines, ic_folder, and other FileType icons) and supports project‑wide filename lookup with relative path suggestions.
  • Material Progress UI: Replaced generic ProgressBar with Material CircularProgressIndicator in the editor overlay.
  • Loading State Fix: Editor now correctly shows loading indicator while tabs load, preventing empty-state view.
  • Glide Crash Prevention: ImageFileViewer now clears images using the application context to avoid IllegalArgumentException on activity destroy.
  • Server Preview Engine: The "Run" button now intelligently previews the currently active HTML file instead of always defaulting to the project root.
  • Dynamic Run UI: The Run button is now context-aware and animated, appearing only when the server is active or when an HTML file is focused.
  • File Lifecycle Fixes: Deleting a file or folder from the explorer will now automatically close any related open tabs in the editor. Project mainFile routing is now dynamically maintained as well.

📦 Improvements

  • JS Autocomplete Enhancements: Fixed dot completion for console, Math, etc., and added document-wide variable/function suggestions with proper type classification.
  • CSS Autocomplete Context: The CSS engine now intelligently suggests base HTML tags (like div or span) when typing selectors outside of curly braces, and perfectly handles inline style parsing.
  • Cursor Preservation on Formatting: All formatters (JS, CSS, HTML, JSON) now retain cursor position after formatting.
  • Formatter Refinements:
    • JsFormatter no longer inserts duplicate newlines at block start/end.
    • CssFormatter removed forced newlines after properties and now avoids extra blank lines at block openings.
    • HtmlFormatter preserves intentional blank lines (max two) and prevents extra newline after tags.
    • Post‑processing now collapses >2 consecutive newlines across all formatters.
  • UI Tweaks: Updated formatting actions to provide smoother UX and maintain scroll position.
  • Context-Aware Editor UI: The Editor's toolbar and overflow menu now dynamically adapt to your active file. Undo, Redo, and text-editing tools automatically hide when no file is open, when viewing images, or when reading Markdown/CSV/SVG files in preview mode.
  • Smart Formatting Option: The "Format Code" menu action now only appears if the active file actually supports auto-formatting.
  • Emmet Support: Added a built-in Emmet expansion engine! You can now use popular Emmet abbreviations in HTML (e.g., ul>li.item*3) and CSS (e.g., m10, jcc, df).
  • Custom HTML Boilerplate: Using the Emmet ! abbreviation now automatically injects your personalized template_blank.html with perfectly preserved indentation, placing your cursor right where you need it to start typing.

Thank you for coding with VCode! If you encounter any bugs, please open an issue.

VCode v1.0.0 alpha-3

Choose a tag to compare

@cocodestudio cocodestudio released this 28 May 04:19

VCode IDE - Release Notes

We are thrilled to announce the latest update for VCode IDE! This release brings massive performance improvements to the editor, new file preview capabilities, and critical fixes for Git operations.

🚀 What's New

  • Zero-Lag Tab Switching: We've completely overhauled the editor's architecture to use a dedicated, plugin-style Strategy Pattern (ViewerManager). The IDE now keeps active tabs in memory, completely eliminating UI flickering and lag when switching between open files!
  • Markdown Support: You can now view beautiful, formatted inline previews of Markdown (.md) files directly inside the editor using our new integrated marked.js engine. We've also added rich syntax highlighting for raw Markdown text.
  • Smart Previews: Supported file types like CSV, SVG, and Markdown will now automatically open in preview mode by default, getting you straight to the visual representation faster.
  • Unsaved Changes Protection: Accidentally swiping back or closing a tab? VCode will now detect unsaved changes and warn you before you navigate away, preventing accidental data loss.

🛠️ Improvements & Fixes

  • Git Clone UI Freeze Fixed: We optimized the JGit ProgressMonitor to throttle background updates, completely resolving the UI freezes and spam during large repository clones.
  • Project List Syncing: Fixed an issue where the ProjectsActivity wouldn't automatically refresh to show newly cloned repositories.
  • Modernized Navigation: Replaced the deprecated Android back-press handling with the modern AndroidX OnBackPressedDispatcher for a more consistent and predictable navigation experience.
  • Memory & UI Refactoring: Drastically reduced the size of the editor layout file and isolated UI viewers into their own lightweight classes (CodeFileViewer, WebPreviewViewer, etc.), paving the way for future format support like Audio and Video.

Thank you for coding with VCode! If you encounter any bugs, please open an issue.