> ## Documentation Index
> Fetch the complete documentation index at: https://docs.makkii.jp/llms.txt
> Use this file to discover all available pages before exploring further.

# ファイルを編集する

> Explorer、タブ、対応する拡張子、画像、設定、保存の考え方

## 保存はありません

Storm Code に「保存」操作はありません。
入力した内容は常にブラウザ内のワークスペースへ反映されています。

`File` メニューの `Auto Save` が「常に有効」と表示されていて無効にできないのはこのためです。

`Ctrl+S` は保存ではなく、\*\*そのときの内容を[履歴に1世代刻む](/storm-code/guides/history)\*\*操作です。
押すと「履歴に保存しました」、内容が前回と同じなら「保存済み (変更なしのため履歴は追加されません)」と表示されます。

## Explorer

左の Explorer でファイルとフォルダを操作します。
複数選択、コピー、切り取り、貼り付け、名前の変更、削除に対応しています。

| 操作                | キー                       |
| ----------------- | ------------------------ |
| 複数選択への追加/解除       | `Ctrl` + クリック            |
| 範囲選択              | `Shift` + クリック           |
| 全選択               | `Ctrl` + `A`             |
| 名前を変更 (単一選択のみ)    | `F2`                     |
| 選択を削除 (確認1回でまとめて) | `Delete`                 |
| コピー / 切り取り / 貼り付け | `Ctrl` + `C` / `X` / `V` |
| 開く・フォルダの展開切替      | `Enter`                  |

全一覧は[キーボードショートカット](/storm-code/reference/shortcuts)にあります。

新規作成では拡張子まで自由に入力できます。省略した場合は `.lua` が補われます。

## 扱える拡張子

| 拡張子                           | 扱い                                         |
| ----------------------------- | ------------------------------------------ |
| `.lua`                        | リント・実行・minify の対象。モジュールキーの体系に参加する          |
| `.md` `.txt` `.json` `.jsonl` | エディタで編集できるが、リントや minify の対象外               |
| `.png` `.jpg` `.jpeg` `.webp` | 画像ビューアで表示する。本文を持たないので通常の新規作成では作れない         |
| `.design`                     | [Design](/storm-code/guides/design) 専用のノード |

`.lua` のファイル名とフォルダ名には Lua 識別子 (`[A-Za-z_][A-Za-z0-9_]*`) しか使えません。
これはパスと `require` のキーを常に1対1に対応させるための制約です。
詳細は[パスとモジュールキー](/storm-code/reference/naming)を参照してください。

<Warning>
  `sim` という名前のフォルダは作れません。[`sim.*` 標準ライブラリ](/storm-code/reference/sim-library)の名前空間と衝突するためです。
  ファイル名としての `sim.lua` はどの階層にも置けます (ただし `require` の対象外です)。
</Warning>

ルート直下の `.scode` は Storm Code の内部設定置き場として予約されています。

## 画像

画像は Explorer へのドラッグ&ドロップなどで追加します。

* 実体は**内容のハッシュ**で管理されます。同じ画像を複数の場所に置いても、実体は1つしか保存されません。
* 1枚あたり 1 MB、端末内の合計 32 MB が上限です。
* 画像はファイル履歴の対象外です。
* zip エクスポートには含まれます。

クラウドワークスペースでは画像も自動で同期されます。
ローカルワークスペースを一時共有している間は、オーナーが手動で画像をゲストへ送ります。

モニターの PNG 出力は `screenshots/monitor-<番号>-<日時>.png` に置かれます。

## タブとレイアウト

パネルはタブとして自由に配置できます。Explorer、Problems、Sim I/O、モニター、ログ、
変数、コールスタック、履歴、検索、Help などがそれぞれ独立したタブです。

タブの配置・パネル幅・開いていたタブ・カーソル位置は端末ごとに保存され、リロードで復元されます。
これらは**その端末の見た目の状態**なので、zip には含まれず、共同編集でも同期されません。

## 設定

`File > Settings…` または、ステータスバー右の `Spaces: 4` / `Tab Size: 4` をクリックして開きます。

| 項目      | 内容                                 |
| ------- | ---------------------------------- |
| インデント   | タブ幅 (2 / 4 / 8) とスペース/タブの切り替え      |
| 診断メッセージ | 実行時エラーと lint 診断を日本語に訳すか、原文のまま表示するか |

変更は即座に反映されます。リロードは不要です。
自由入力欄は無く、無効な値を作れない形にしてあります。

<Note>
  診断の訳を切っても、ヒント自体は折りたたみで残ります。
  原文が必要な場面 (検索して調べたいときなど) と、読みやすさを両立させるためです。
</Note>

## Undo / Redo

`Ctrl+Z` / `Ctrl+Y` (または `Ctrl+Shift+Z`) です。
共同編集の最中でも、**自分が行った変更だけ**が取り消されます。他の参加者の編集は巻き戻りません。
