🎵 Lala
モダンで軽量なマルチフォーマット対応テキストエディタ
English | 日本語 | 简体中文 | 繁體中文 | Русский | فارسی | العربية
📸 スクリーンショット
ダークテーマでのMarkdown編集
コードブロックの構文ハイライト、リアルタイムプレビュー
ライトテーマでの執筆
目に優しい配色、日本語IME完全対応
マルチフォーマットプレビュー
Markdown、HTML、LaTeX、Mermaid図を即座にプレビュー
💡 Lalaとは?
LalaはRustで書かれた次世代テキストエディタです。純粋なRust GUI フレームワーク egui を使用し、軽量かつ高速な動作を実現しています。
なぜLalaが必要なのか?
既存のテキストエディタには以下の課題があります:
- 🐌 重量級: ElectronベースのエディタはメモリとCPUを大量消費
- 🌐 ネイティブ感の欠如: Webベースエディタは応答性に欠ける
- 📝 プレビューの不便さ: Markdownやその他形式のリアルタイムプレビューが不十分
- 🌏 IME対応の不完全さ: 日本語・中国語など複雑な入力メソッドのサポートが不十分
Lalaはこれらの問題を解決します。
✨ 主な機能
🎨 マルチフォーマット対応
- Markdown: リアルタイムプレビュー、構文ハイライト
- HTML: パース&レンダリング
- LaTeX: 数式・記号のUnicode変換プレビュー
- Mermaid: フローチャート・シーケンス図の可視化
🚀 高性能
- 軽量: Rustのゼロコスト抽象化による高速起動(<100ms)
- 効率的: Rope データ構造による大容量ファイルの高速編集
- ネイティブ: Electron不要、システムリソースへの負荷が最小限
🌏 日本語完全対応
- IME対応: 日本語・中国語・韓国語の入力メソッドをネイティブサポート
- Unicodeサポート: 絵文字・記号を含む全Unicode文字に対応
🤖 AI統合(オプション)
- Gemini API統合: テキストの自動改善
- 文法修正: スペル・文法エラーの自動検出と修正
- 要約機能: 長文の自動要約
🔍 強力な検索機能
- バッファ内検索: 正規表現対応の高速検索・置換
- Grep機能: プロジェクト全体を対象とした高速検索
- .gitignore対応: 不要なファイルを自動除外
🎨 テーマ
- ダークテーマ: 長時間の作業に最適
- ライトテーマ: カスタマイズされた視認性の高い配色
📦 インストール
方法1: Cargoからインストール(最も簡単・推奨)⭐
Rustツールチェーンがインストールされている場合:
# crates.ioから最新版をインストール
# AI機能も使いたい場合
Rustのインストール: https://rustup.rs/
方法2: GitHub Releasesからバイナリをダウンロード
Rustをインストールしたくない場合は、プリコンパイル済みバイナリを使用:
# Linux x86_64
# macOS (Intel)
# macOS (Apple Silicon)
# Windows
# https://github.com/clearclown/lala/releases/latest から
# lala-windows-x86_64.exe をダウンロード
方法3: ソースからビルド
開発者向け:
# リポジトリをクローン
# リリースビルド
# バイナリは target/release/lala に生成されます
# システムにインストール(オプション)
# AI機能を有効にしてインストール
アンインストール
# Cargoでインストールした場合
AI機能を有効化(オプション)
# llm機能を有効にしてビルド
# または
🚀 使い方
GUIモードで起動
# 空のエディタを起動
# 特定のファイルを開く
# ディレクトリを開く
CLIモード(プレビュー)
# Markdownをターミナルでプレビュー
# HTMLをプレビュー
# LaTeXをプレビュー
キーボードショートカット
| ショートカット | 機能 |
|---|---|
Ctrl+N |
新規ファイル |
Ctrl+O |
ファイルを開く |
Ctrl+S |
保存 |
Ctrl+Shift+S |
名前を付けて保存 |
Ctrl+F |
検索 |
Ctrl+H |
置換 |
Ctrl+Shift+F |
プロジェクト全体を検索(Grep) |
Ctrl+P |
プレビュー表示切替 |
Esc |
パネルを閉じる |
⚙️ 設定
AI機能の設定
-
Gemini APIキーの取得
- Google AI StudioでAPIキーを取得
-
環境変数の設定
-
または、GUI設定から
Tools > Settingsメニューを開く- APIキーを入力
- "AI機能を有効化"をチェック
AI機能の使い方
- 🤖 Improve Markdown: Markdownの構造・書式を改善
- ✨ Fix Grammar: 文法・スペルミスを修正
- 📝 Summarize: テキストを要約
🗑️ アンインストール
# Cargoでインストールした場合
# または手動で削除
# Windowsの場合: %USERPROFILE%\.cargo\bin\lala.exe を削除
📚 ドキュメント
アーキテクチャ
lala/
├── src/
│ ├── main.rs # エントリポイント
│ ├── cli/ # CLIインターフェース
│ │ ├── markdown_view.rs # Markdownプレビュー
│ │ ├── html_view.rs # HTMLプレビュー
│ │ ├── latex_view.rs # LaTeXプレビュー
│ │ └── mermaid_view.rs # Mermaid図プレビュー
│ ├── gui/ # GUIインターフェース
│ │ ├── app.rs # メインアプリケーション
│ │ ├── theme.rs # テーマ設定
│ │ ├── dialogs.rs # ダイアログUI
│ │ ├── menu.rs # メニューバー
│ │ ├── previews.rs # プレビュー機能
│ │ ├── markdown_preview.rs # Markdownレンダラー
│ │ └── search_panel.rs # 検索パネル
│ ├── core_engine/ # コアエンジン
│ │ └── buffer.rs # テキストバッファ管理
│ ├── search/ # 検索機能
│ │ ├── buffer_search.rs # バッファ内検索
│ │ └── grep.rs # Grep検索
│ ├── llm/ # LLM統合(オプション)
│ │ └── mod.rs # Gemini APIクライアント
│ └── file_tree/ # ファイルツリー
└── tests/ # 171個のテスト
技術スタック
- 言語: Rust 2021 Edition
- GUIフレームワーク: egui 0.33 + eframe
- テキスト処理: ropey (Rope構造)
- Markdownパーサー: pulldown-cmark
- 構文ハイライト: syntect
- 非同期処理: Tokio
- 正規表現: regex
- AI統合: reqwest + Gemini API
テスト
# すべてのテストを実行
# 特定のテストスイートを実行
# 統合テスト
🤝 コントリビューション
コントリビューションを歓迎します!以下の方法で貢献できます:
バグ報告・機能リクエスト
- Issuesで新しいIssueを作成
- バグの場合は再現手順を記載
- 機能リクエストの場合はユースケースを説明
プルリクエスト
- このリポジトリをフォーク
- フィーチャーブランチを作成 (
git checkout -b feature/amazing-feature) - 変更をコミット (
git commit -m '✨ Add amazing feature') - ブランチにプッシュ (
git push origin feature/amazing-feature) - プルリクエストを作成
開発ガイドライン
- コードスタイル:
cargo fmtを使用 - Linter:
cargo clippyでチェック - テスト: 新機能には必ずテストを追加
- ドキュメント: パブリックAPIには文書化コメントを記載
📖 リソース
関連プロジェクト
- egui - 純粋なRust GUIフレームワーク
- ropey - 高速テキストRopeライブラリ
- pulldown-cmark - Markdownパーサー
- syntect - 構文ハイライトライブラリ
📄 ライセンス
このプロジェクトはデュアルライセンスです:
- MIT License (LICENSE-MIT または http://opensource.org/licenses/MIT)
- Apache License 2.0 (LICENSE-APACHE または http://www.apache.org/licenses/LICENSE-2.0)
いずれかのライセンスを選択できます。
コントリビューション
特に断りのない限り、Apache License 2.0で定義される通り、あなたが意図的にこのプロジェクトに提出した貢献は、追加の条項や条件なしに、上記のようにデュアルライセンスとなります。
🙏 謝辞
以下のオープンソースプロジェクトに感謝します:
- Rust プログラミング言語
- egui コミュニティ
- すべてのコントリビューター
Made with ❤️ by the Lala contributors