Team Ai
Apppublic

kxrkstudios/codevision-ide-next-generation-code-editor

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
script.js118 linesDownload Raw Back to root
1// CodeVision IDE - Main Script2document.addEventListener('DOMContentLoaded', () => {3    // Initialize Feather Icons4    feather.replace();5 6    // State management7    const state = {8        activeFile: 'app.tsx',9        openTabs: ['app.tsx', 'index.tsx', 'package.json'],10        activeTab: 0,11        terminalVisible: false,12        settingsVisible: false,13        commandPaletteVisible: false,14        activeSidebarView: 'explorer'15    };16 17    // DOM Elements18    const terminal = document.getElementById('terminal');19    const settingsModal = document.getElementById('settingsModal');20    const commandPalette = document.getElementById('commandPalette');21    const codeEditor = document.getElementById('codeEditor');22    const closeTerminal = document.getElementById('closeTerminal');23    const closeSettings = document.getElementById('closeSettings');24    const settingsBtn = document.getElementById('settingsBtn');25 26    // Terminal toggle27    function toggleTerminal() {28        state.terminalVisible = !state.terminalVisible;29        if (state.terminalVisible) {30            terminal.classList.remove('hidden');31        } else {32            terminal.classList.add('hidden');33        }34    }35 36    // Settings modal toggle37    function toggleSettings() {38        state.settingsVisible = !state.settingsVisible;39        if (state.settingsVisible) {40            settingsModal.classList.remove('hidden');41        } else {42            settingsModal.classList.add('hidden');43        }44    }45 46    // Command palette toggle47    function toggleCommandPalette() {48        state.commandPaletteVisible = !state.commandPaletteVisible;49        if (state.commandPaletteVisible) {50            commandPalette.classList.remove('hidden');51            commandPalette.querySelector('input').focus();52        } else {53            commandPalette.classList.add('hidden');54        }55    }56 57    // Tab switching58    function switchTab(index) {59        const tabs = document.querySelectorAll('.tab');60        tabs.forEach((tab, i) => {61            if (i === index) {62                tab.classList.add('active');63                tab.classList.remove('bg-vscode-sidebar');64                tab.classList.add('bg-vscode-editor');65            } else {66                tab.classList.remove('active');67                tab.classList.remove('bg-vscode-editor');68                tab.classList.add('bg-vscode-sidebar');69            }70        });71        state.activeTab = index;72    }73 74    // Activity bar navigation75    function switchView(view) {76        const buttons = document.querySelectorAll('.activity-btn');77        buttons.forEach(btn => {78            if (btn.dataset.view === view) {79                btn.classList.add('active');80            } else {81                btn.classList.remove('active');82            }83        });84        state.activeSidebarView = view;85    }86 87    // File tree navigation88    function selectFile(element) {89        const allFileItems = document.querySelectorAll('.file-item');90        allFileItems.forEach(item => item.classList.remove('active'));91        element.classList.add('active');92    }93 94    // Settings section switching95    function switchSettingsSection(section) {96        const sections = document.querySelectorAll('.settings-section');97        sections.forEach(sec => {98            if (sec.textContent.toLowerCase() === section.toLowerCase()) {99                sec.classList.add('active');100            } else {101                sec.classList.remove('active');102            }103        });104    }105 106    // Keyboard shortcuts107    document.addEventListener('keydown', (e) => {108        // Ctrl/Cmd + P for command palette109        if ((e.ctrlKey || e.metaKey) && e.key === 'p') {110            e.preventDefault();111            toggleCommandPalette();112        }113        114        // Ctrl/Cmd + ` for terminal115        if ((e.ctrlKey || e.metaKey) && e.key === '`') {116            e.preventDefault();117            toggleTerminal();118        }