Rustでランチャ開発その2: 欲しい機能

- #launcher-dev #rust

前回(第1回)の記事の続き

高速ランチャアプリを開発するにあたって実装したい機能や簡単な仕様などをまとめていく


基本方針を固める

手始めに、開発する上で これだけは絶対譲れない という部分をリストアップした

まとめ

実現したい機能

私の載せたい機能、多すぎ……!?

※あくまで願望・イメージです

UI

ウィンドウの移動とリサイズ

基本操作

文字列入力

検索機能

Tab補完・カーソル移動機能

検索履歴機能

高度な検索機能

これらは採用するRustクレートにもよるので詳細は未定

カスタムコマンド機能

エイリアス機能

デリミタ自動入力機能

設定変更・カスタマイズ機能

JSONで管理する場合

YAMLで管理する場合

alias:
  type: macro
  executor: bash
  prefix: "@"
  body: rm2
  commandline:
    command: |
        cd $path1
        echo "hello" > ./hello.txt
        cd $path2
        echo "changed directory: '${path2}'"
        rm -vf ./*
        echo "finished"
  params:
    - param:
        type: path
        name: path1
        env: "FILE_PATH_ONE"
    - param:
        type: path
        name: path2
        env: "FILE_PATH_TWO"
alias:
  type: macro
  executor: dos
  prefix: "@"
  body: twc
  comment: "open Twitch user's channel"
  commandline:
    command: |
        "https://twitch.tv/%A"
  params:
    - param:
        type: string
        name: A

その他機能

次回予告


  1. 「絶対にクラッシュしない」と書きたいところではありますが ↩︎

  2. 「ユーザ」と表記すると必要以上に「JISのにおい」が漂ってしまうので敢えてこのように書いています ↩︎

  3. 非多機能とは水平方向に多くの機能を並存させない、という意味であって垂直方向への機能の作り込みはむしろ行います。例えば検索機能に正規表現・migemo・fuzzy検索などを用意することは多機能の定義から外れると考えています ↩︎