2014/07/29(火) [n年前の日記]
#1 [editor][prog] PHP用のナイスなエディタが見つからず
PHPの勉強をする際に、xyzzy でソースを書いてるのだけど、どうも使いづらいなと。
◎ xyzzy + php-modeについて。 :
xyzzy の php-mode は、ヒアドキュメントを認識してくれないので、ヒアドキュメントを使ったソースに対して indent-region をすると酷いことになってしまう。
ググってみたところ、 _xyzzyの使い方が分からぬやし 励ましあえ その8 なるスレで説明が。
ググってみたところ、 _xyzzyの使い方が分からぬやし 励ましあえ その8 なるスレで説明が。
854 :名無しさん@お腹いっぱい。:2006/02/28(火) 00:22:49 ID:spgk6ozT0ハードル高い…。
>>848
php-modeのインデント関数はc-modeの流用だから
ヒアドキュメントでインデントが崩れるのはそういうものです。
855 :名無しさん@お腹いっぱい。:2006/02/28(火) 01:39:43 ID:B4R8wJa/0
>>848
ということで、php-mode 用に
c-indent-line
c-newline-and-indent
c-comment-indent
に代わるインデント関数を定義して、キーマップ (ed::*php-mode-map*) や
mode-specific-indent-command comment-indent-function へのバインドを
変更すれば解決です。
◎ xyzzy + multi-major-mode。 :
_multi-major-mode(しょぼしょぼすくりぷと xyzzy)
を使えば1つのファイルの中で複数のメジャーモードを変更できるらしいので導入してみたり。multi-major-mode.l をDLして、site-lisp/ 以下に置く。 ~/.xyzzy に以下を追加してみたり。
;; multi-major-mode の設定 (load-library "multi-major-mode.l") ;; (setq ed::*multi-mode-running* t) ;; (setf *multi-mode-text-attribute* nil) (autoload 'html+-mode "html+-mode" t) (pushnew '("\\.s?html?$" . html+-mode) *auto-mode-alist* :test 'equal) (load-library "php-mode") (pushnew '("\\.php$" . html+-mode) *auto-mode-alist*) (defun multi-html+-mode () (multi-major-mode-start t "html+-mode" '("<?php" "?>" "php-mode") '("<!--" "-->" "text-mode") '("<script" "</script>" "jscript-mode") )) ;; (add-hook '*html+-mode-hook* 'multi-html+-mode) (add-hook 'ed::*html+-mode-hook* 'multi-html+-mode).php を開いて、<?php ?> の中に入ったり出たりすると、モードが切り替わってるように見えた。ただ、切り替わるたびに「Welcome mmm-mode」と表示されるのが気になる…。非表示にできないのかな…。
◎ phpCodeBeautifierでソース整形を試みた。 :
_phpCodeBeautifier (phpCB)
なる、PHPソースを整形してくれるツールが存在するらしいので試してみたり。phpCB-1.0.1-windows.zip をDLして解凍。phpCB.exe を任意の場所に置く。オプションを指定しつつ呼び出せばいいらしい。
_xyzzyでPHPの整形してみた | Priereluna という記事で、xyzzy + phpCB の設定が紹介されてたので、ありがたく使わせてもらったり。
しかし、phpCB.exe が変な動作をするような…。
phpCB は、長い間メンテナンスもされてないし、ソースもクローズドだし、色々不具合があるという話も見かけたので、使うのは諦めた。
_xyzzyでPHPの整形してみた | Priereluna という記事で、xyzzy + phpCB の設定が紹介されてたので、ありがたく使わせてもらったり。
しかし、phpCB.exe が変な動作をするような…。
- if文の中のswitch文がインデントされない。される場面と、されない場面がある。
- 変換後の各行末に「^M」(0x0dの制御文字)がつく。これもつく場合とつかない場合がある。どうも改行が「0x0d 0x0d 0x0a」になってる気がする。
phpCB は、長い間メンテナンスもされてないし、ソースもクローズドだし、色々不具合があるという話も見かけたので、使うのは諦めた。
◎ emacs + php-modeを試した。 :
NTEmacs 24.3.1 + php-mode を試してみたり。php-mode、
_php-completion
をインストールしたような気がする。M-x package-list-packages でパッケージ一覧を表示して、C-s php- で検索して、Enter で詳細表示して、install をマウスでクリック、したような。
設定等は、 _PHP開発環境 on Emacs | Fusic Developers Weblog を参考にさせてもらったり。
しかし、emacs の php-mode も、ヒアドキュメントには対応してないようで、indent-region をすると酷いことに。php-mode 1.4.0 から対応してるという話も見かけたのだけど…。indent-region は別なのかな…。
設定等は、 _PHP開発環境 on Emacs | Fusic Developers Weblog を参考にさせてもらったり。
しかし、emacs の php-mode も、ヒアドキュメントには対応してないようで、indent-region をすると酷いことに。php-mode 1.4.0 から対応してるという話も見かけたのだけど…。indent-region は別なのかな…。
◎ emacs + mmm-mode。 :
_閑古鳥 -> 呟き -> emacs で PHP-mode と mmm-mode を使う
で、mmm-mode なるものを使うと、一つのファイルの中の各部分によって、php-mode や html-mode を切り替えられると知ったのだけど。導入してみたものの、ちゃんと動いてるようには見えず。何か設定がおかしいのか、導入した版が古いのか。Version 20140211.2104 と表示されてるけど…。
◎ emacs + web-mode。 :
_emacsでviewファイルをいじるならweb-modeを使うべき - UNIX的なアレ
で、web-mode とやらが紹介されてたので試しに導入。
これも PHP のヒアドキュメントには未対応らしい。
これも PHP のヒアドキュメントには未対応らしい。
◎ eclipse 4.3を試用。 :
eclipse 4.3 + PDT ならヒアドキュメントが認識されてるように見えた。
また、phpソース上でブレークポイントを設定したりできるようで。php.ini の最後に以下のような記述を追加したらデバッグできた。
ただ、eclipse は起動が遅くて、手軽に・気軽に書き始めるという感じにはならないあたりが、ちょっと…。
また、phpソース上でブレークポイントを設定したりできるようで。php.ini の最後に以下のような記述を追加したらデバッグできた。
[XDebug] zend_extension = "C:\xampp\xampp\php\ext\php_xdebug.dll" ;xdebug.remote_enable = 0 xdebug.remote_enable = 1 xdebug.remote_handler = "dbgp" ;xdebug.remote_host = "127.0.0.1" xdebug.remote_host = "localhost" xdebug.remote_port = 9000 xdebug.remote_log = "C:\xampp\xampp\php\logs\xdebug.log" xdebug.collect_params = 1 xdebug.dump.GET = * xdebug.dump.POST = * xdebug.profiler_enable = 1 ;xdebug.profiler_append = 0 ;xdebug.profiler_enable_trigger = 0 ;xdebug.profiler_output_name = "cachegrind.out.%t-%s" xdebug.profiler_output_dir = "C:\xampp\xampp\tmp" ;xdebug.trace_output_dir = "C:\xampp\xampp\tmp"
ただ、eclipse は起動が遅くて、手軽に・気軽に書き始めるという感じにはならないあたりが、ちょっと…。
[ ツッコむ ]
#2 [prog] eclipse 4.4.0を導入しようとしたけど問題発生
eclipse 4.4.0 が出ていたらしいので、
_Pleiades - Eclipse プラグイン日本語化プラグイン | MergeDoc Project
から、pleiades-e4.4-ultimate-32bit-jre_20130625.zip (Ultimate, 32bit, jre入り) をDL・解凍して使ってみようとしたのだけど問題発生。
eclipse 4.4.0 に Aptana Studio をインストールしたら、毎回起動するたびにエラーが発生する状態になってしまった。症状としては以下と同じ。
_メッセージ ・フォーラム:4.4 Lina でスタート時に毎回エラーメッセージ #73830 - MergeDoc - SourceForge.JP
_[APSTUD-8234] Dialog reports call to nonexistent class in Eclipse 4.4 (Luna) - Appcelerator JIRA
Aptana Studio に問題があって、3.6.1 なら直っているらしいけど、入手可能なのかどうかもわからず。 _Release Notes - aptana/studio3 Wiki - GitHub では 3.5.0 までしか載ってないようだし。
eclipse 4.4.0 に Aptana Studio をインストールしたら、毎回起動するたびにエラーが発生する状態になってしまった。症状としては以下と同じ。
_メッセージ ・フォーラム:4.4 Lina でスタート時に毎回エラーメッセージ #73830 - MergeDoc - SourceForge.JP
_[APSTUD-8234] Dialog reports call to nonexistent class in Eclipse 4.4 (Luna) - Appcelerator JIRA
Aptana Studio に問題があって、3.6.1 なら直っているらしいけど、入手可能なのかどうかもわからず。 _Release Notes - aptana/studio3 Wiki - GitHub では 3.5.0 までしか載ってないようだし。
[ ツッコむ ]
#3 [prog] XAMPPの設定を変更
ここ数日、Windows7 + XAMPP (Apache, MySQL, PHP, Perl) を使って勉強しているのだけど。編集ファイルを XAMPPインストールフォルダ以下に入れるのはなんだか気持ち悪いので、C:\xampp\xampp\apache\conf\httpd.conf や C:\xampp\xampp\apache\conf\extra\httpd-vhosts.conf を修正して、DocumentRoot の位置を変更、したことをメモ。自分、メモしておかないと忘れるので。
今頃になって、eclipse と一緒に XAMPP が入ってたことに気付いたり。別途 XAMPP をインストールする必要は無かったのだな…。
今頃になって、eclipse と一緒に XAMPP が入ってたことに気付いたり。別途 XAMPP をインストールする必要は無かったのだな…。
[ ツッコむ ]
以上、1 日分です。