秀丸用、uLuaのインテリセンスな実行・開発環境
(秀丸エディタ v8.40以上用)

概要

uLuaHMは、秀丸上で「文字コードutf8」のLuaを作成するのに適した環境を
構築するためのファイル群です。

Lua言語の学習や、海外ゲーム等、拡張ModにLua言語が使われている際に役立つ、インテリセンス環境です。

又、同時に、
秀丸エディタを、強力なインテリセンスエディタとする方法を理解するための、
ミニマムなサンプルともなっています。

  1. 入力支援
  2. 強調表示
  3. 構造ツリーの自動分析
  4. Luaファイルの即時実行と、タグジャンプ可能なエラー出力
  5. Luaファイルの単体での事前syntaxチェック(実行チェックではなく、コンパイル可能かのチェック)
  6. 単体のLuaファイルをexe化する。

等が可能となっています。


同様の用途で、文字列やファイルIO等の扱いをcp932(sjis)用に配慮したものは、hmLJHMとなります。

ダウンロード

更新日 2017/12/13
uLuaHM.zip ver 1.001

環境設定

  • 秀丸のインストールディレクトリに空白があるのは絶対ダメ!!

    "C:\Program Files\Hidemaru"など、
    「秀丸をインストールしているディレクトリ」に空白文字が含まれているのは、最悪です。

    様々なシーンで大きな苦労や徒労をするハメとなり、多くの不具合を抱えることとなります。

    「C:\tool\hidemaru」など、空白がなく、特別なUAC(ユーザーアクセスコントロール)もないディレクトリへのインストールが強く望まれます。

  • まずはファイルの解凍と配置

    uLuaHMファイルを解凍し、以下のように配置しましょう。
    秀丸をインストールしたフォルダが画像中の「Hidemaru」だとして、
    そのサブフォルダにuLuaHMというフォルダ、そして、その中身が解凍ファイルの中身の形です。

    PICTURE

  • uLua.exe本体もダウンロードする。

    uLua.exe本体も ここ からダウンロードしましょう。

    以下のようにマクロと同じ位置に配置します。
    PICTURE

  • 秀丸上での設定 ~アウトプット枠~

    もしも、秀丸で「アウトプット枠」を使ったことが無い、という人は。
    アウトプット枠を表示しましょう。
    PICTURE

    PICTURE

  • 秀丸上での設定 ~Luaファイルの作成~

    Luaファイルの設定を行う最も簡単な方法は、まず、空でもなんでも良いので
    Luaファイルを作成することです。
    PICTURE

    PICTURE

    このLuaファイルを開いている状態で、セッティングを行います。
    Luaファイルを開いていることが「極めて」重要です。

  • 秀丸上での設定 ~Luaファイルの設定~

    秀丸の「その他」⇒「ファイルタイプ別の設定」の項目で
    「設定のリスト」を選び、「LUA言語」というタイプを新規に作成します。

    PICTURE

    PICTURE

    今、ご自身で作成した「Lua言語」という設定項目が増えていますので、これを選択しましょう。

    PICTURE


    これにより、今開いているファイルに対応する拡張子、
    「***.lua」に紐付いて、 この「LUA言語」という設定が使われるようになりました。

    「***.lua」というファイルを開いた時だけ、
    「LUA言語」の設定が使われるようになったのです。


    ここまでで一度「OK」を押しましょう。

    PICTURE

  • 秀丸上での設定 ~Luaファイルの強調表示の設定~

    再び秀丸のメニューから「その他」⇒「ファイルタイプ別の設定」を押して、 「強調表示」という項目を押しましょう。

    PICTURE

    そして、「読み込み」ボタンを押し、「参照」ボタンを押します。

    PICTURE


    読み込むファイルですが、

    PICTURE

    ご自身で、秀丸をインストールした場所の違いによって異なりますが、
    「秀丸のディレクトリ」の下に、uLuaHMがあり、
    さらにその下にhilightフォルダがあるはずですので、
    その「uLua.token.hilight」を選択します。

    PICTURE

    「開く」で選択します。


    PICTURE


    この画面で「強調表示」「複数行の強調」「ツリー定義」の3つにチェックが入った状態にします。
    手動でチェックを入れる必要があるので注意!!


    「OK」を押します。

  • 秀丸上での設定 ~Luaファイルの強調色の設定~

    強調定義が適切でも、色が適切でなければ、見づらいだけです。
    色を見やすくしましょう。

    再び秀丸のメニューから「その他」⇒「ファイルタイプ別の設定」を押して、
    「デザイン」という項目を押しましょう。

    右下の「保存/読込」というボタンを押して、先ほどと同じ要領で その「uLua.color.hilight」を選択kします。

    PICTURE


    読み込むのが「カラー」ですので「カラー」にチェックを入れます。

    PICTURE


    デフォルトだとカーソルの行が非常に薄い色になって見づらくなっています。

    そこで「カーソル行」の項目を、以下のように設定しましょう。
    「背景色」モードにチェックを付けます。

    PICTURE

    「色」のボタンを押して、色は「灰色」を選択した後、「色の作成」によって、
    白よりのほんのうっすら薄い灰色などにするとよいでしょう。

    PICTURE


    どんどん「OK」を押して、一度エディタの画面にもどりましょう。

  • 秀丸上での設定 ~Luaファイルの自動辞書の設定~

    再び秀丸のメニューから「その他」⇒「ファイルタイプ別の設定」を押して、
    「単語補完」という項目を押しましょう。

    PICTURE

    上図のように「自動表示」や「現在編集中のテキスト」「辞書ファイル」の3つにチェックが入った状態とします。


    「辞書ファイル」の項目の右側にある「...」ボタンを押して、
    辞書ファイルとして、先ほどの「uLua.token.hilight」と同じ場所に
    「uLua.token.dic」というファイルがありますので
    それを選択します。

    ダイアログで選択する際に、
    下図のように「ファイル名(N)」の欄に「*.dic」と入力しておかないと、
    ファイルが出てこないので注意してください。

    PICTURE


    選択すると、下図のようになります。

    PICTURE

    ここで、さらに「辞書ファイル」の下にある「詳細」ボタンを押します。

    PICTURE


    右側の「単語の種類」という項目で「カスタム」を選択します。

    PICTURE

    PICTURE


    ここで、上図がみづらいですが「単語の途中の文字」というところで、

    「.」と「:」の2文字を連続で入力します。

    .: と2文字連続入力


    これにより、「string.char」や「file:write」など、間に記号を挟んだ入力補完が可能となります。
    また、上図にあるように「記号」にチェックが入っていなければ、チェックを入れましょう。

    何回か「OK」を押してゆき、以下の画面に戻ったら、
    上の方に手をつけてきます。

    まずは、表示方法を「リスト」としましょう。

    PICTURE

    今度は上の「詳細」ボタンを押します。
    PICTURE

    PICTURE


    このあたりは、好み次第ですが、プログラムをする上では、
    「開始する文字数」は「2」文字 ツールチップに表示する最大個数は「9」個で良いでしょう。

    どんどん「OK」を押して、エディタの画面まで戻りましょう。

  • 秀丸上での設定 ~Luaファイルの手動辞書のキー設定~

    先ほどの設定は、「入力している最中に、自動で入力補完が出る」という機能に関する設定です。
    それだけでは実際には不足しており、「自分のタイミングで入力候補を出す」という機能が書かせません。

    これを設定します。

    PICTURE


    再び秀丸のメニューから「その他」⇒「キー割り当て」を押すと、以下のような画面となります。

    「キー割り当て拡張」にチェックを入れて、
    「Ctrl+Space」を選び、コマンドとして「その他編集」を選択し、
    リストから「単語補完」を選びます。

    PICTURE

    これで「Ctrl+Space」で補完ができるようになりました。
    これはVisual Studioなど、メジャーなWindows系開発環境と同じキーバインドです。

  • 入力補完や強調表示を確認する

    エディタ上で、「st」などと入力して、入力補完を確認してみしょう。
    先ほど設定したように「2文字目」以降、入力補完が反応します。

    入力済の途中で自分で意識的に出す際には、「Ctrl+Space」を押します。

    PICTURE

    PICTURE

  • 秀丸上での設定 ~行番号~

    秀丸の「行番号」の設定を変更します。

    再び秀丸のメニューから「その他」⇒「ファイルタイプ別の設定」を押して、
    「体裁」の「詳細」という項目を押しましょう。

    そこの「行番号の計算方法」という項目を「エディタ的」とします。

    実際に、行番号といえば、普通のテキストだろうと、プログラムだろうと関係なく、
    この「エディタ的」の設定による「行」を指します。

    PICTURE



    又、「体裁」の「タブ」という項目を押しましょう。

    「8」という数値は極端ですので、「4」にしましょう。「4」が一般的です。

    PICTURE

  • 秀丸上での設定 ~UTF8保存、UTF8優先~

    「.lua」ファイルに関して、ファイル保存時のデフォルトのエンコードや、
    優先的なエンコード自動判定を変更します。


    再び秀丸のメニューから「その他」⇒「ファイルタイプ別の設定」を押して、
    「その他」の「保存・読み込み」という項目を押しましょう。

    下図のように「自動判定」となっている項目を選んで「Unicode(UTF-8)」を設定します。

    PICTURE

    次に、「自動判定の設定」といった項目を押して、
    「上へ」ボタンで「Unicode(UTF-8)」を一番上に押し上げます。

    PICTURE

    何回か「OK」を押して、設定を完了させましょう。

  • 秀丸上での設定 ~秀丸上でLuaを実行~

    秀丸上から、今編集しているファイルをLuaとして実行できるようにします。

    又、実行前のsyntaxチェックや、.exe へのリンクなども出来るようにします。

    秀丸のメニューから「マクロ」⇒「マクロの登録」を押します。

    PICTURE


    マクロの登録はどこでも開いている所に自由に登録してかまいません。
    グループ名に「Lua ビルド」、マクロのタイトルに「Luaの実行」などとしましょう。

    PICTURE

    「...」ボタンを押して、「uLua.dofile.mac」のマクロを選択します。

    PICTURE

    PICTURE


    同じ要領で、「Luaの文法チェック」といった項目を作成して、
    「uLua.doCheck.mac」を選びましょう。

    PICTURE

    PICTURE

    同じ要領で、「Luaを.exe化」といった項目を作成して、
    「uLua.doLink.mac」を選びましょう。

    PICTURE

以上で、全ての設定終了!!

なんと長かったのでしょう!!
しかし、全ての設定項目は終了しました。

使用練習

  • エディタ上で、適当に「print」などと入力した後、test.luaというファイル名で、
    適当なディレクトリに保存してください。(半角スペースなどが入っていない場所)

  • 以下のように打ってみましょう。
    print("Hello Lua World!")
    
    
  • このプログラムをメニューから実行してみましょう。


    PICTURE


    PICTURE



  • 間違ったプログラムを実行してみましょう。
    print("Hello Lua World!")
    
    a = a + 5
    a = a / 0
    
    
    ファイルを上書き保存して、再度、「Luaを実行」してみましょう。

    今度はエラーが「アウトプット枠」に出たようです。
    狙いどおりです。

    PICTURE

    ここで「F4キー」を押してみましょう。
    「F4キー」は「アウトプット枠のジャンプできそうなフォーマットになっている行」へと飛ぶ、という意味です。

    F4キーを押した瞬間、アウトプット枠の行が青くなり、秀丸の該当のエラー行へとジャンプしました。

    PICTURE

    このように、「実行」し、「エラーがでたら、F4」でジャンプして修正、を繰り返し、
    スクリプトを正しく修正していきます。


  • 次のように複数の関数を定義してみましょう。

    function plus(x, y)
      return x+y
    end
    
    function minus(x, y)
      return x-y
    end
    
    function main()
      print(plus(1,2))
      print(minus(3,1))
    end
    
    main()
    
    関数が複数ありますので、「アウトライン解析」を表示してみましょう。
    アウトライン解析を表示することで、ソースをある程度自動にパースして、
    そこをマウスで選択してジャンプできるようになります。


    PICTURE


    PICTURE

  • 「Luaの文法チェック」については、「実行するまでもなくどう考えてもエラー」という項目について
    割り出すことができます。

    いろいろとエラーのシチュエーションを作成し、エラーチェックししてみてください。

    PICTURE



  • 「Luaの.exe化」については、今書いたLuaスクリプトを.exeにすることが出来ます。
    他のマシンなどでも実行が可能です。(そこに秀丸やluaは必要ありません。)

    PICTURE


    PICTURE


    PICTURE