Overview
This issue tracks the planned migration of ArcadeDB Studio from CodeMirror v5.65.19 to CodeMirror v6.x. This is a major version upgrade that requires significant code changes and should be treated as a dedicated project, not a simple dependency update.
Background
Why we're staying on v5 for now:
- CodeMirror v5.65.19 is secure for our use case (we don't use the vulnerable Markdown mode affected by CVE-2025-6493)
- v6 requires a complete API rewrite (~8-10 hours of development effort)
- v5 meets all current Studio requirements
Why we need v6 eventually:
- v5 is in maintenance mode (legacy software)
- v6 is more accessible, mobile-friendly, and actively maintained
- Better performance and modern architecture
- Future security updates will only target v6
Related:
Current CodeMirror Usage in Studio
Files affected:
studio/src/main/js/studio-main.js (imports and initialization)
studio/src/main/js/components/QueryEditor.js (or similar - TBD during migration)
- CSS files using CodeMirror classes
- Webpack configuration for mode/addon bundling
Current features used:
- SQL mode (
codemirror/mode/sql/sql)
- JavaScript mode (
codemirror/mode/javascript/javascript)
- Show-hint addon (
codemirror/addon/hint/show-hint)
- SQL-hint addon (
codemirror/addon/hint/sql-hint)
- Custom Cypher mode (needs investigation - likely custom implementation)
Migration Requirements
1. Package Changes
Remove:
Add:
"codemirror": "^6.0.0",
"@codemirror/lang-sql": "^6.0.0",
"@codemirror/lang-javascript": "^6.0.0",
"@codemirror/autocomplete": "^6.0.0",
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
"@codemirror/commands": "^6.0.0",
"@codemirror/language": "^6.0.0"
2. API Migration
v5 initialization:
import CodeMirror from 'codemirror';
import 'codemirror/mode/sql/sql';
import 'codemirror/addon/hint/show-hint';
const editor = CodeMirror(element, {
mode: 'text/x-sql',
lineNumbers: true,
// ...options
});
v6 initialization:
import { EditorView, basicSetup } from 'codemirror';
import { sql } from '@codemirror/lang-sql';
import { autocompletion } from '@codemirror/autocomplete';
const editor = new EditorView({
doc: '',
extensions: [
basicSetup,
sql(),
autocompletion()
],
parent: element
});
3. Custom Cypher Mode
Challenge: CodeMirror v6 does NOT have an official Cypher language mode.
Options:
- Port the v5 Cypher mode to v6 Lezer grammar (high effort)
- Use a community Cypher mode if available
- Temporarily use generic syntax highlighting as fallback
Investigation needed: Determine if ArcadeDB has a custom Cypher mode in v5.
4. CSS Updates
- v6 uses different CSS class names (
.cm-editor instead of .CodeMirror)
- Theme system is different (JavaScript-based instead of CSS-based)
- All custom Studio styles need updating
5. Webpack Configuration
- v6 has modular ES6 packages (no separate mode files to copy)
- Update webpack rules for CodeMirror assets
- Remove v5-specific file copying
Migration Plan
Phase 1: Investigation & Planning (2 hours)
Phase 2: Development (4-6 hours)
Phase 3: Testing (2-3 hours)
Phase 4: Deployment & Monitoring (1 hour)
Estimated Effort
Total: 8-12 hours of development + testing
Skills required:
- Frontend development (JavaScript/ES6)
- CodeMirror v6 API knowledge
- Webpack configuration
- CSS/styling
Success Criteria
References
Timeline
Suggested: Q2 2026 (non-urgent, planned migration)
This should be scheduled when:
- Dedicated frontend resource is available
- Studio has no other high-priority changes in progress
- Adequate testing time is available
Labels: enhancement, studio, technical-debt
Priority: Medium (not urgent, but important for long-term maintenance)
Overview
This issue tracks the planned migration of ArcadeDB Studio from CodeMirror v5.65.19 to CodeMirror v6.x. This is a major version upgrade that requires significant code changes and should be treated as a dedicated project, not a simple dependency update.
Background
Why we're staying on v5 for now:
Why we need v6 eventually:
Related:
Current CodeMirror Usage in Studio
Files affected:
studio/src/main/js/studio-main.js(imports and initialization)studio/src/main/js/components/QueryEditor.js(or similar - TBD during migration)Current features used:
codemirror/mode/sql/sql)codemirror/mode/javascript/javascript)codemirror/addon/hint/show-hint)codemirror/addon/hint/sql-hint)Migration Requirements
1. Package Changes
Remove:
Add:
2. API Migration
v5 initialization:
v6 initialization:
3. Custom Cypher Mode
Challenge: CodeMirror v6 does NOT have an official Cypher language mode.
Options:
Investigation needed: Determine if ArcadeDB has a custom Cypher mode in v5.
4. CSS Updates
.cm-editorinstead of.CodeMirror)5. Webpack Configuration
Migration Plan
Phase 1: Investigation & Planning (2 hours)
Phase 2: Development (4-6 hours)
Phase 3: Testing (2-3 hours)
Phase 4: Deployment & Monitoring (1 hour)
Estimated Effort
Total: 8-12 hours of development + testing
Skills required:
Success Criteria
References
Timeline
Suggested: Q2 2026 (non-urgent, planned migration)
This should be scheduled when:
Labels:
enhancement,studio,technical-debtPriority: Medium (not urgent, but important for long-term maintenance)