mieki256's diary



2020/01/13(月) [n年前の日記]

#2 [haxe][xyzzy] xyzzy用のhaxe-modeをインストール

自分は普段 xyzzy (0.2.2.253) というエディタを使っているのだけど。ググってみたら xyzzy 用の haxe-mode を公開してくれている方がいらっしゃった。ありがたや。導入させてもらおう…。

_dseg/haxe-mode-for-xyzzy: haXe mode for Xyzzy

site-lisp/ と etc/ の中身を、xyzzyインストールフォルダ以下の site-lisp/, etc/ にコピーして、.xyzzy に以下を追加。
;; ----------------------------------------
;; Haxe mode

(require "haxe-mode")
(push '("\\.hx$" . haxe-mode) *auto-mode-alist*)

(add-hook 'ed::*haxe-mode-hook*
          #'(lambda ()
              (setq indent-tabs-mode nil)
              (setq ed::*haxe-indent-level* 4)
              (setq ed::*haxe-continued-line-offset* 4)
              (setq ed::*haxe-label-offset* 4)
              (setq c-indent-level 4)
              (setq c-continued-statement-offset 4)
              (setq c-brace-offset -4)
              (setq c-argdecl-indent 4)
              (setq c-label-offset -4)
              (setq c-brace-imaginary-offset 0)
              (set-tab-columns 4 (selected-buffer))
              (make-local-variable 'indent-tabs-mode)
              ))

add-hook のあたりで、インデントを空白4文字にするように設定してる。

変数 haxe-indent-level や haxe-continued-line-offset を変更すればインデント幅が調整できるのかなと思ったけれど、ソースを眺めてみた感じでは、それら変数を参照してる部分が見当たらず。よく分からないので、ひとまず、C関係のソレを変更することで対処してしまった。

xml-parser-modoki も必要になるらしい。

_xyzzy > Download

xmlpm-0.0.1.0.lzh を入手して解凍。site-lisp 以下に、xml-parser-modoki.l と xml-parser-modoki.lc をコピー。

haxe-mode.l を微妙に修正。 :

haxe-mode.l 内の haxe-exe-existp () のあたりで、環境変数 HAXEPATH の下に haxe.exe があるかどうかを調べているけれど。

自分の環境の場合、「HAXEPATH = D:\HaxeToolkit\haxe」となっているので、パスがおかしくなって必ずエラーを返してしまう。フォルダの区切り文字も追加するように修正。
(defun haxe-exe-existp ()
  "Check if the haxe executable exists."
  (file-exist-p (concat (si:getenv "HAXEPATH") "\\" "haxe.exe"))
  )

以上です。

過去ログ表示

Prev - 2020/01 - 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 31

カテゴリで表示

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


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

Powered by hns-2.19.6, HyperNikkiSystem Project