descjop で遊ぼう day 16 : Windows版のメニューを表示する
前々回の記事、
にて書いたメニューをWindows版へも対応させていきます。
結論から書くと、Windows版へのメニュー追加に関しては、前回のコードのままで大丈夫です。
実行すると、Helpメニューのみがメニューとしてあります。
Helpメニューを開くと、About this windows/linux appというメニューと共にショートカットキーとしてCTRL+H
が指定されていることがわかると思います。
これは、Control+H
を指定していたからです。
[{:label "Help"
:submenu [{:label "About this windows/linux app"
:accelerator "Control+H"
:click (fn [] (.openExternal Shell "http://descjop.org/"))}]}]
実際コントロールキーとHキーを押してみると、ブラウザが開くのがわかると思います。
Windows版でのビルドを続けてみて思ったこと
今回PowerShellを使ってビルドをしてみたのですが、下記のようなエラーが出ました。
descjopでは、ClojureScriptのビルドを、lein-externs
とlein-cljsbuild
を使ってやっていますが、PowerShellだと、JSCPARSEERRORが出ます。
JSC_PARSE_ERROR. Parse error. Character '' (U+FFFD) is not a valid identifier start char
このエラーは、Closure Compilerのエラーで、
This error means that you have tried to compile code that is not syntactically valid JavaScript. Look on the indicated line for typos or other syntax errors that could keep the code from parsing.
JavaScriptをパースしたときに文法が正しくないことを示すエラーであることとのことです。この時表示されているエラーの詳細は、U+FFFDが先頭に出ているみたいな表示があったのでそこでパースがこけたのでしょう。
普通にプロンプトを使ってやってた場合は出なかったので、うちのPCのPowerShell特有の現象だと思われます。
なにか特殊なことをしているかというと、PowerShellの初期設定で、UTF-8のログを正しく表示させるために起動時にchcp 65001
を実行してActive code page: 65001
となるように設定しているのですが、そのせいかもしれません。
この部分は今後どこかで調査したいと思います。
さて、その副産物で、lein-externs
を0.1.5
が最新であること、lein-cljsbuild
が1.1.2
が最新であることを知ったので、次のバージョンアップ時に反映させようと思います。
Colophon
- 編集長
- Greative GK. 原一浩 ( kara_d )
- 製版システム
- Clojure / Compojure / Ring / Enlive / markdown-clj / Jetty / MySQL
- Share this magazine!
- Follow designudge
- Follow @designudge