mieki256's diary



2017/11/22(水) [n年前の日記]

#1 [lua][windows] luarocksとluacheckをWindowsにインストール

luarocksなるものをインストールすると、lua関係の便利なアレコレが簡単にインストールできるようになるらしい。更に、luarocks を使って luacheck をインストールすることで、luaのソースファイルを静的チェックできるようで。試しにWindows10 x64上でインストールしてみようかなと。

以下を参考にして作業。

_にっき♪: luacheck
_LuaとLuaRocksのWindowsインストール
_Installation instructions for Windows - luarocks/luarocks Wiki

luarocksをインストール。 :

インストールには、Lua とリンクライブラリとやらが必要。以下の2つを _Lua Binaries Download からDLして解凍。インストール。
lua-5.3.4_Win32_bin.zip
lua-5.3.4_Win32_dllw4_lib.zip

また、途中でコンパイルをするから、Visual Studio が必要になるっぽい。自分の環境は Visual Studio 2015 Community をインストールしてあるので、スタートメニューから、開発者コマンドプロンプトを実行して、その上で作業した。

_LuaRocks releases から、luarocks-2.4.3-win32.zip をDL、解凍。luaにPATHが通ってる状態で以下を打って luarocks をインストール。
install /LUA Luaインストール場所\ /P LuaRocksインストール場所
今回は以下のフォルダを指定。
install /LUA D:\Dev\lua_x86\ /P D:\Dev\luarocks

気を利かせたつもりで、事前にLuaRocksインストール場所を作成しておくと、「指定されたフォルダが既にあるからインストールできねえ」と文句を言われる。事前に作成しないほうがヨサゲ。

luarocks.bat その他が作られた。環境変数 PATH に通しておく。

luacheckをインストール。 :

luarocks install luacheck で、luacheck がインストールできるはずなのだけど…。
D:\Dev\lua_x86>luarocks install luacheck

Installing https://luarocks.org/luacheck-0.21.2-1.src.rock
Missing dependencies for luacheck 0.21.2-1:
   luafilesystem >= 1.6.3 (not installed)
luacheck 0.21.2-1 depends on luafilesystem >= 1.6.3 (not installed)
Installing https://luarocks.org/luafilesystem-1.7.0-2.src.rock
cl /nologo /MD /O2 -c -Fosrc/lfs.obj -ID:/Dev/lua_x86/include src/lfs.c
lfs.c
link -dll -def:lfs.def -out:lfs.dll D:/Dev/lua_x86/lua53.dll src/lfs.obj
Microsoft (R) Incremental Linker Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.
D:\Dev\lua_x86\lua53.dll : fatal error LNK1107: ファイルが無効であるか、または壊れています: 0x330 を読み取れません。
Error: Failed installing dependency: https://luarocks.org/luafilesystem-1.7.0-2.src.rock - Build error: Failed compiling module lfs.dll

lfs.dll とやらが作れないぞ、と怒られてしまった。

_installing on windows fails with LNK1107 (lua 5.2) - Issue #82 - keplerproject/luafilesystem

Visual Studio 2015 (VC14) と一致する何かしらのファイル群が必要らしい…。

_LuaBinaries - Browse /5.3.4/Windows Libraries/Static から、lua-5.3.4_Win32_vc14_lib.zip をDLして解凍。Luaインストール場所にコピー。どうも lua53.lib というファイルが必要だったらしい。

luarocksインストール場所\config-5.3.lua の修正も必要。中の一部を以下に変更。
    LUALIB = 'lua53.dll'
     ↓
    LUALIB = 'lua53.lib'

この状態で再度インストールを試す。
luarocks install luafilesystem
luarocks install luacheck

Luaインストール場所\systree\bin\luacheck.bat ができた。Luaインストール場所の直下にコピー。

動作確認。 :

luacheck hoge.lua でチェックができる。

が、love2d用のluaソースを渡すと、「loveって何だ? そんなの知らねえよ!」と山ほど怒られる。これでは…使えないな…。

#2 [lua][windows] Visual Studio Code にLua関係の拡張をインストールしてみたり

Windows10 x64 + Visual Studio Code 1.18.1 に、Lua関係の拡張をインストールしてみたり。

_vscode-lua - Visual Studio Marketplace
_LOVE - Visual Studio Marketplace

Alt + L で love2d を実行できる、らしい。

そこそこ補完が効いてくれる模様。

#3 [lua][emacs] Emacs(NT Emacs)にLuaとlove2d関係のauto-completeをインストール

Lua関係の auto-completeパッケージを見かけたので試しにインストール。Lua用のソースを書く際に補完してくれるようになるっぽい。

環境は Windows10 x64 + NTEmacs 24.5.1。 _Lua-mode と auto-complete はインストール済み。

_rolpereira/auto-complete-lua.el: Auto-complete builtin Lua functions in Emacs
_rolpereira/auto-complete-love.el: Auto-complete LOVE functions in Emacs

それぞれzipファイルをDLして解凍。

以下のファイルやフォルダを、Emacsからパスが通ったところにコピー。
auto-complete-lua.el
auto-complete-lua-tests.el
lua-documentation
auto-complete-love.el
auto-complete-love-tests.el

~/.emacs に以下を記述。

(require 'auto-complete-lua)
;; (add-hook 'lua-mode-hook '(lambda ()
;;                             (setq ac-sources '(ac-source-lua))
;;                             (auto-complete-mode 1)))

(require 'auto-complete-love)
(add-hook 'lua-mode-hook '(lambda ()
                            (setq ac-sources '(ac-source-love))
                            ; Uncomment only if you're using `auto-complete-lua' (see below)
                            (push ac-source-lua ac-sources)
                            (auto-complete-mode 1)))

auto-complete-lua と auto-complete-love の両方を入れる場合、auto-complete-love側の設定だけをしておけばいいらしい。最初、両方の設定を書いてしまったら補完がちゃんと動かなかった。

参考までに、~/.emacs のLua関係の設定部分をメモ。
;; ----------------------------------------
;; lua-mode

;; This snippet enables lua-mode
;; This line is not necessary, if lua-mode.el is already on your load-path
;; (add-to-list 'load-path "/path/to/directory/where/lua-mode-el/resides")

(autoload 'lua-mode "lua-mode" "Lua editing mode." t)
(add-to-list 'auto-mode-alist '("\\.lua$" . lua-mode))
(add-to-list 'interpreter-mode-alist '("lua" . lua-mode))

(setq lua-indent-level 2)

(add-hook 'lua-mode-hook
          '(lambda ()
             (abbrev-mode 1)
             (electric-pair-mode t)
             (electric-indent-mode t)
             (electric-layout-mode t)
             ;; ||も括弧の補完の対象にする
             ;; (add-to-list 'electric-pair-pairs '(?| . ?|))
             ))

;; love2d love-minor-mode
(require 'love-minor-mode)

(require 'auto-complete-lua)
;; (add-hook 'lua-mode-hook '(lambda ()
;;                             (setq ac-sources '(ac-source-lua))
;;                             (auto-complete-mode 1)))

(require 'auto-complete-love)
(add-hook 'lua-mode-hook
          '(lambda ()
             (setq ac-sources
                   (append ac-sources '(ac-source-love ac-source-lua)))
             (auto-complete-mode 1)))
ac-sources に、ac-source-love と ac-source-lua を追加する形にしてみた。

ちなみに、love2d-minor-mode は以下で入手できる。

_ejmr/love-minor-mode: An Emacs minor mode for LOVE

以上、1 日分です。

過去ログ表示

Prev - 2017/11 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project