コードブロックの構文ハイライト、リアルタイムプレビュー
目に優しい配色、日本語IME完全対応
Markdown、HTML、LaTeX、Mermaid図を即座にプレビュー
LalaはRustで書かれた次世代テキストエディタです。純粋なRust GUI フレームワーク egui を使用し、軽量かつ高速な動作を実現しています。
既存のテキストエディタには以下の課題があります:
- 🐌 重量級: ElectronベースのエディタはメモリとCPUを大量消費
- 🌐 ネイティブ感の欠如: Webベースエディタは応答性に欠ける
- 📝 プレビューの不便さ: Markdownやその他形式のリアルタイムプレビューが不十分
- 🌏 IME対応の不完全さ: 日本語・中国語など複雑な入力メソッドのサポートが不十分
Lalaはこれらの問題を解決します。
- Markdown: リアルタイムプレビュー、構文ハイライト
- HTML: パース&レンダリング
- LaTeX: 数式・記号のUnicode変換プレビュー
- Mermaid: フローチャート・シーケンス図の可視化
- 軽量: Rustのゼロコスト抽象化による高速起動(<100ms)
- 効率的: Rope データ構造による大容量ファイルの高速編集
- ネイティブ: Electron不要、システムリソースへの負荷が最小限
- IME対応: 日本語・中国語・韓国語の入力メソッドをネイティブサポート
- Unicodeサポート: 絵文字・記号を含む全Unicode文字に対応
- Gemini API統合: テキストの自動改善
- 文法修正: スペル・文法エラーの自動検出と修正
- 要約機能: 長文の自動要約
- バッファ内検索: 正規表現対応の高速検索・置換
- Grep機能: プロジェクト全体を対象とした高速検索
- .gitignore対応: 不要なファイルを自動除外
- ダークテーマ: 長時間の作業に最適
- ライトテーマ: カスタマイズされた視認性の高い配色
Rustツールチェーンがインストールされている場合:
# crates.ioから最新版をインストール
cargo install lala
# AI機能も使いたい場合
cargo install lala --features llm
Rustのインストール: https://rustup.rs/
Homebrewを使用している場合:
# Tapを追加
brew tap clearclown/lala
# インストール
brew install lala
# アップデート
brew upgrade lala
# アンインストール
brew uninstall lala
brew untap clearclown/lala
Debian/Ubuntu系のLinuxディストリビューションでは、.debパッケージを使用:
# .debパッケージをダウンロード
wget https://github.com/clearclown/lala/releases/latest/download/lala_0.1.0-1_amd64.deb
# インストール
sudo dpkg -i lala_0.1.0-1_amd64.deb
# 依存関係のエラーがある場合(あれば)
sudo apt --fix-broken install
アンインストール:
sudo apt remove lala
Rustをインストールしたくない場合は、プリコンパイル済みバイナリを使用:
# Linux x86_64
curl -L https://github.com/clearclown/lala/releases/latest/download/lala-linux-x86_64 -o lala
chmod +x lala
sudo mv lala /usr/local/bin/
# macOS (Intel)
curl -L https://github.com/clearclown/lala/releases/latest/download/lala-macos-x86_64 -o lala
chmod +x lala
sudo mv lala /usr/local/bin/
# macOS (Apple Silicon)
curl -L https://github.com/clearclown/lala/releases/latest/download/lala-macos-aarch64 -o lala
chmod +x lala
sudo mv lala /usr/local/bin/
# Windows
# https://github.com/clearclown/lala/releases/latest から
# lala-windows-x86_64.exe をダウンロード
開発者向け:
# リポジトリをクローン
git clone https://github.com/clearclown/lala.git
cd lala
# リリースビルド
cargo build --release
# バイナリは target/release/lala に生成されます
# システムにインストール(オプション)
cargo install --path .
# AI機能を有効にしてインストール
cargo install --path . --features llm
# Cargoでインストールした場合
cargo uninstall lala
# llm機能を有効にしてビルド
cargo build --release --features llm
# または
cargo install --path . --features llm
# 空のエディタを起動
lala
# 特定のファイルを開く
lala README.md
# ディレクトリを開く
lala ./docs
# Markdownをターミナルでプレビュー
lala README.md --preview
# HTMLをプレビュー
lala index.html --preview
# LaTeXをプレビュー
lala document.tex --preview
| ショートカット | 機能 |
|---|---|
Ctrl+N |
新規ファイル |
Ctrl+O |
ファイルを開く |
Ctrl+S |
保存 |
Ctrl+Shift+S |
名前を付けて保存 |
Ctrl+F |
検索 |
Ctrl+H |
置換 |
Ctrl+Shift+F |
プロジェクト全体を検索(Grep) |
Ctrl+P |
プレビュー表示切替 |
Esc |
パネルを閉じる |
-
Gemini APIキーの取得
- Google AI StudioでAPIキーを取得
-
環境変数の設定
export GEMINI_API_KEY="your-api-key-here" -
または、GUI設定から
Tools > Settingsメニューを開く- APIキーを入力
- "AI機能を有効化"をチェック
- 🤖 Improve Markdown: Markdownの構造・書式を改善
- ✨ Fix Grammar: 文法・スペルミスを修正
- 📝 Summarize: テキストを要約
# Cargoでインストールした場合
cargo uninstall lala
# または手動で削除
rm ~/.cargo/bin/lala # Linux/macOS
# 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
# すべてのテストを実行
cargo test --all-features
# 特定のテストスイートを実行
cargo test --test core_engine_test
cargo test --test llm_test
cargo test --test preview_test
# 統合テスト
cargo test --test end_to_end_test
コントリビューションを歓迎します!以下の方法で貢献できます:
- 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