코드 에디터: 터미널 버튼 아래에 에뮬레이터 버튼 추가

.ino 파일이 열려 있으면 자동 컴파일 후 에뮬레이터 탭 열기,
아니면 에뮬레이터 창만 열기. 컴파일 중 버튼 텍스트로 상태 표시.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
kim
2026-06-11 22:54:23 +09:00
co-authored by Claude Sonnet 4.6
parent e69606dc31
commit e3920dd157
2 changed files with 348 additions and 3 deletions
+50 -2
View File
@@ -192,8 +192,9 @@
<div id="sidebar-code" style="display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden">
<!-- 상단 탭: 파일 | 설정 -->
<div class="csb-tab-bar">
<button class="code-sb-tab active" id="csb-tab-files" onclick="setCodeSbTab('files')">📄 파일</button>
<button class="code-sb-tab" id="csb-tab-settings"onclick="setCodeSbTab('settings')">⚙️ 설정</button>
<button class="code-sb-tab active" id="csb-tab-files" onclick="setCodeSbTab('files')">📄 파일</button>
<button class="code-sb-tab" id="csb-tab-libraries" onclick="setCodeSbTab('libraries')">📦</button>
<button class="code-sb-tab" id="csb-tab-settings" onclick="setCodeSbTab('settings')">⚙️</button>
</div>
<!-- 파일 탭: 상하 분할 -->
@@ -254,10 +255,57 @@
<div class="csb-term-row">
<button id="code-preview-toggle-btn" class="csb-term-btn" onclick="toggleCodePreview()" title="브라우저 미리보기 패널">🌐 미리보기</button>
</div>
<!-- Arduino 에뮬레이터 -->
<div class="csb-term-row">
<button id="code-emu-btn" class="csb-term-btn" onclick="openArduinoEmulator()" title="Arduino 에뮬레이터 열기">🔌 에뮬레이터</button>
</div>
</div>
</div>
</div>
<!-- 라이브러리/보드 탭 -->
<div id="csb-libraries" style="display:none;flex-direction:column;flex:1;min-height:0">
<!-- 상단 섹션 탭: 라이브러리 | 보드 -->
<div style="display:flex;border-bottom:2px solid var(--line);flex-shrink:0;background:var(--panel-2)">
<button class="code-sb-tab active" id="csb-ardsec-lib" onclick="csbArdSection('lib')" style="flex:1;font-size:11px;padding:7px 0">📦 라이브러리</button>
<button class="code-sb-tab" id="csb-ardsec-board" onclick="csbArdSection('board')" style="flex:1;font-size:11px;padding:7px 0">🔌 보드</button>
</div>
<!-- ── 라이브러리 패널 ── -->
<div id="csb-ard-lib" style="display:flex;flex-direction:column;flex:1;min-height:0">
<div style="display:flex;border-bottom:1px solid var(--line);flex-shrink:0">
<button class="code-sb-tab active" id="csb-libtab-installed" onclick="csbLibTab('installed')" style="flex:1;font-size:10px;padding:5px 0">설치됨</button>
<button class="code-sb-tab" id="csb-libtab-search" onclick="csbLibTab('search')" style="flex:1;font-size:10px;padding:5px 0">검색/설치</button>
</div>
<div id="csb-lib-search-row" style="display:none;padding:6px 8px;border-bottom:1px solid var(--line);gap:5px;flex-shrink:0;align-items:center">
<input id="csb-lib-q" placeholder="키워드 또는 라이브러리명..." onkeydown="if(event.key==='Enter')csbLibSearch()"
style="flex:1;font-size:11px;padding:5px 8px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;font-family:inherit;min-width:0">
<button onclick="csbLibSearch()" class="csb-term-btn" style="padding:5px 8px;font-size:11px;flex-shrink:0">검색</button>
</div>
<div id="csb-lib-list" style="flex:1;overflow-y:auto;padding:4px 0">
<div style="padding:16px 12px;color:var(--muted);font-size:11px;text-align:center">불러오는 중...</div>
</div>
<div id="csb-lib-status" style="padding:5px 10px;font-size:10px;color:var(--brand);border-top:1px solid var(--line);min-height:24px;flex-shrink:0"></div>
</div>
<!-- ── 보드 매니저 패널 ── -->
<div id="csb-ard-board" style="display:none;flex-direction:column;flex:1;min-height:0">
<div style="display:flex;border-bottom:1px solid var(--line);flex-shrink:0">
<button class="code-sb-tab active" id="csb-boardtab-installed" onclick="csbBoardTab('installed')" style="flex:1;font-size:10px;padding:5px 0">설치됨</button>
<button class="code-sb-tab" id="csb-boardtab-search" onclick="csbBoardTab('search')" style="flex:1;font-size:10px;padding:5px 0">검색/설치</button>
</div>
<div id="csb-board-search-row" style="display:none;padding:6px 8px;border-bottom:1px solid var(--line);gap:5px;flex-shrink:0;align-items:center">
<input id="csb-board-q" placeholder="보드 이름 (예: esp32, rp2040...)" onkeydown="if(event.key==='Enter')csbBoardSearch()"
style="flex:1;font-size:11px;padding:5px 8px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;font-family:inherit;min-width:0">
<button onclick="csbBoardSearch()" class="csb-term-btn" style="padding:5px 8px;font-size:11px;flex-shrink:0">검색</button>
</div>
<div id="csb-board-list" style="flex:1;overflow-y:auto;padding:4px 0">
<div style="padding:16px 12px;color:var(--muted);font-size:11px;text-align:center">불러오는 중...</div>
</div>
<div id="csb-board-status" style="padding:5px 10px;font-size:10px;color:var(--brand);border-top:1px solid var(--line);min-height:24px;flex-shrink:0"></div>
</div>
</div>
<!-- 설정 탭 -->
<div id="csb-settings" style="display:none;flex-direction:column;flex:1;min-height:0;overflow-y:auto;padding:14px 12px;gap:14px">
<div>