Skip to content

chore: ace to codemirror migration#1879

Open
bajrangCoder wants to merge 155 commits intomainfrom
codemirror
Open

chore: ace to codemirror migration#1879
bajrangCoder wants to merge 155 commits intomainfrom
codemirror

Conversation

@bajrangCoder
Copy link
Member

@bajrangCoder bajrangCoder commented Feb 17, 2026

  • core ace to codemirror
  • all good stuffs which wasn't available in ace like rainbow brackets etc
  • new apis for editor
  • builtin lsp
  • more...

bajrangCoder and others added 30 commits August 22, 2025 21:52
- a minimal function editor
- color view
- modelist and supported mode stuff
- emmet support
- extension for editor to take neccesary stuff and not disturb scrolling and editor behaviour
- add builtin editor themes
- plugin api for themes
- default themes and all editor theme related fixes
- dynamic readonly through compartment
- cursor and selection
- folds saving and restore
- scroll related stuff(for editor state)
- use codemirror api in insert command

- improve goto command
…and plugin API

- Replace curated supported modes with auto-registration from @codemirror/language-data (keeps Plain Text fallback; supports extensions and anchored filenames).
- Add languageCompartment and async loader handling so modes load non-blockingly and reconfigure on resolve.
- migrate global search from ace to codemirror
- add few visual improvements
- by default exclude binary files, image files, etc
…servers, including status, logs, and controls.
@github-actions github-actions bot added the docs label Feb 17, 2026
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Feb 17, 2026

Too many files changed for review. (400 files found, 100 file limit)

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the editor stack from Ace to CodeMirror, introducing new editor APIs, built-in LSP support, and new UI components (references panel, LSP status bar) alongside updated build/configuration.

Changes:

  • Replaced key editor interactions (go-to-line, blur/focus, select-all, formatting cursor restore) to use CodeMirror APIs.
  • Added CodeMirror infrastructure: themes, modelist/supported modes, base extensions, editor utilities, and editor plugins (rainbow brackets, color view).
  • Introduced LSP features and UI: workspace integration, rename/references/inlay hints/diagnostics/document highlights/symbols, plus references panel and LSP status bar.

Reviewed changes

Copilot reviewed 68 out of 400 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
src/lib/commands.js Updates core commands to CodeMirror editor APIs; adds lsp-info command.
src/lib/checkFiles.js Adjusts file-check logic to read CodeMirror doc content and cursor restore.
src/lib/applySettings.js Ensures native context menu stays enabled globally with CodeMirror-focused scoping.
src/handlers/quickToolsInit.js Temporarily disables editor focus hook pending CodeMirror integration.
src/handlers/quickTools.js Migrates quick tools search/replace and command execution to CodeMirror search/commands.
src/handlers/keyboard.js Redirects keyboard shortcuts to CodeMirror’s contentDOM and avoids redispatch loops.
src/handlers/editorFileTab.js Updates drag-drop insert detection/insertion for CodeMirror editor.
src/dialogs/prompt.js Removes Ace command-shortcut disabling approach; aligns prompt lifecycle with CodeMirror.
src/components/sidebar/index.js Removes Ace resize call; leaves TODO placeholder for CodeMirror resize behavior.
src/components/referencesPanel/utils.js Adds utilities for building/rendering/navigating LSP reference results with CodeMirror selection/scrolling.
src/components/referencesPanel/styles.scss Styles for the new references panel and tab view.
src/components/referencesPanel/referencesTab.js Adds a tab-based references viewer (flat list, grouping, navigation).
src/components/referencesPanel/index.js Adds bottom-sheet references panel with drag/expand/collapse behavior.
src/components/lspStatusBar/style.scss Styles for new LSP status/progress toast bar.
src/components/lspStatusBar/index.js Implements LSP status bar with aggregated progress display and auto-hide logic.
src/cm/themes/vscodeDark.js Adds VS Code Dark CodeMirror theme + highlight style.
src/cm/themes/tokyoNightDay.js Adds Tokyo Night Day CodeMirror theme + highlight style.
src/cm/themes/tokyoNight.js Adds Tokyo Night CodeMirror theme + highlight style.
src/cm/themes/solarizedLight.js Adds Solarized Light CodeMirror theme + highlight style.
src/cm/themes/solarizedDark.js Adds Solarized Dark CodeMirror theme + highlight style.
src/cm/themes/noctisLilac.js Adds Noctis Lilac CodeMirror theme + highlight style.
src/cm/themes/monokai.js Adds Monokai CodeMirror theme + highlight style.
src/cm/themes/index.js Adds theme registry (validation, fallback handling, theme config lookup).
src/cm/themes/githubLight.js Adds GitHub Light CodeMirror theme + highlight style.
src/cm/themes/githubDark.js Adds GitHub Dark CodeMirror theme + highlight style.
src/cm/themes/dracula.js Adds Dracula CodeMirror theme + highlight style.
src/cm/themes/aura.js Adds Aura CodeMirror theme + highlight style.
src/cm/supportedModes.ts Registers supported languages from @codemirror/language-data into the app’s modelist.
src/cm/rainbowBrackets.ts Adds a rainbow brackets CodeMirror view plugin (viewport-scoped).
src/cm/modelist.ts Replaces Ace modelist with CodeMirror-compatible model registry and matching logic.
src/cm/lsp/workspace.ts Adds CodeMirror LSP workspace implementation (open/close/sync/update + workspace folders).
src/cm/lsp/types.ts Introduces shared TypeScript types for LSP transport, registry, diagnostics, and workspace.
src/cm/lsp/rename.ts Adds LSP rename support with optional prepareRename flow + keybinding.
src/cm/lsp/references.ts Adds LSP find-references with references panel/tab UIs and line context fetching.
src/cm/lsp/inlayHints.ts Adds LSP inlay hints extension (state field + widgets + debounced fetching).
src/cm/lsp/index.ts Exports LSP modules and types from a single entry point.
src/cm/lsp/formatter.ts Registers “Language Server” formatter for supported languages and dispatches LSP formatting.
src/cm/lsp/documentSymbols.ts Adds document symbol fetching/flattening and navigation.
src/cm/lsp/documentHighlights.ts Adds document highlight-on-cursor extension with read/write distinction.
src/cm/lsp/diagnostics.ts Adds diagnostics plumbing (publishDiagnostics handler + CodeMirror lint integration).
src/cm/editorUtils.ts Adds CodeMirror utilities for folds, selections, scroll restore, and clearing DOM selection.
src/cm/colorView.ts Adds CodeMirror color chip widgets with click-to-pick-and-replace behavior.
src/cm/baseExtensions.ts Introduces a base extension set approximating CodeMirror basicSetup.
src/ace/supportedModes.js Removes Ace-specific supported modes list (replaced by CodeMirror language-data registration).
src/ace/modelist.js Removes Ace-specific modelist implementation (replaced by src/cm/modelist.ts).
src/ace/commands.js Removes Ace command registration and keybinding setup (replaced by app/CM command handling).
src/ace/colorView.js Removes Ace color view implementation (replaced by src/cm/colorView.ts).
rspack.config.js Adds Rspack build config for TS/JS, custom JSX loader, assets, and CSS/SCSS.
res/android/values/themes.xml Updates Android post-splash theme and accent/control activation colors.
res/android/values/colors.xml Adds teardrop color resource used by the Android theme.
readme.md Renames project heading to “Acode2”.
package.json Adds typecheck script, CodeMirror/LSP deps, and build/toolchain dependency updates.
.vscode/settings.json Sets Biome as default formatter for JavaScript in VS Code.
.babelrc Adds @babel/preset-typescript to Babel presets.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments