lala

Crates.iolala
lib.rslala
version0.1.0
created_at2025-11-17 10:45:05.119355+00
updated_at2025-11-17 10:45:05.119355+00
descriptionA modern, lightweight text editor with GUI and CLI support for Markdown, HTML, Mermaid, and LaTeX
homepagehttps://github.com/clearclown/lala
repositoryhttps://github.com/clearclown/lala
max_upload_size
id1936595
size422,396
clearclown (清楚系ピエロ) (clearclown)

documentation

https://github.com/clearclown/lala/blob/main/README.md

README

🎵 Lala

モダンで軽量なマルチフォーマット対応テキストエディタ

Rust License: MIT OR Apache-2.0 Build Status Tests

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から最新版をインストール
cargo install lala

# AI機能も使いたい場合
cargo install lala --features llm

Rustのインストール: https://rustup.rs/

方法2: GitHub Releasesからバイナリをダウンロード

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 をダウンロード

方法3: ソースからビルド

開発者向け:

# リポジトリをクローン
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

AI機能を有効化(オプション)

# llm機能を有効にしてビルド
cargo build --release --features llm

# または
cargo install --path . --features llm

🚀 使い方

GUIモードで起動

# 空のエディタを起動
lala

# 特定のファイルを開く
lala README.md

# ディレクトリを開く
lala ./docs

CLIモード(プレビュー)

# 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 パネルを閉じる

⚙️ 設定

AI機能の設定

  1. Gemini APIキーの取得

  2. 環境変数の設定

    export GEMINI_API_KEY="your-api-key-here"
    
  3. または、GUI設定から

    • Tools > Settings メニューを開く
    • APIキーを入力
    • "AI機能を有効化"をチェック

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

🤝 コントリビューション

コントリビューションを歓迎します!以下の方法で貢献できます:

バグ報告・機能リクエスト

  1. Issuesで新しいIssueを作成
  2. バグの場合は再現手順を記載
  3. 機能リクエストの場合はユースケースを説明

プルリクエスト

  1. このリポジトリをフォーク
  2. フィーチャーブランチを作成 (git checkout -b feature/amazing-feature)
  3. 変更をコミット (git commit -m '✨ Add amazing feature')
  4. ブランチにプッシュ (git push origin feature/amazing-feature)
  5. プルリクエストを作成

開発ガイドライン

  • コードスタイル: cargo fmt を使用
  • Linter: cargo clippy でチェック
  • テスト: 新機能には必ずテストを追加
  • ドキュメント: パブリックAPIには文書化コメントを記載

📖 リソース

関連プロジェクト

  • egui - 純粋なRust GUIフレームワーク
  • ropey - 高速テキストRopeライブラリ
  • pulldown-cmark - Markdownパーサー
  • syntect - 構文ハイライトライブラリ

📄 ライセンス

このプロジェクトはデュアルライセンスです:

いずれかのライセンスを選択できます。

コントリビューション

特に断りのない限り、Apache License 2.0で定義される通り、あなたが意図的にこのプロジェクトに提出した貢献は、追加の条項や条件なしに、上記のようにデュアルライセンスとなります。


🙏 謝辞

以下のオープンソースプロジェクトに感謝します:


⬆ トップに戻る

Made with ❤️ by the Lala contributors

Commit count: 0

cargo fmt