フォーラムの返信を作成しました。
- 作成者投稿
- chobieメンバー
インデント開始
^(
.*([|({|do)s*(|.*|)?)s*
|
(s*(module|class|def|unless|if|else|elsif|case|when|begin|rescue|ensure|for|while|until).*)
)$インデント終了
^s*(
[}]]s*
|
(end|rescue|ensure|else|elsif|when)b
)こんな形にすれば読みやすいのではないでしょうか?
ステートメント開始のほうはエスケープシーケンスが多いので多少読みにくいかもしれませんが単純なので説明は割愛させていただきます。
構文については下記を参照していただければすぐ読めるかと思いますので参考にしてみてください。
http://jp.emeditor.com/help/howto/search/search_regexp_syntax.htmversion9.06で同じようなタイプをすると
#!/usr/bin/env ruby
$KCODE = “u”
p [0,1,2,3,4,5,6,7,8,9].select do |i|
i%2 == 0
end.collect d odoのoをタイプした際にインデントされてしまうようです。
EmEditorの自前の自動インデントの構文解析と
正規表現での自動インデントが衝突しているのですかね?ちなみにruby詳しくないんでよくわからないんですが
p [0,1,2,3,4,5,6,7,8,9].select do |i|
i%2 == 0
end.collect do |i|
i*i
end.each do |i|
p i
end今回の想定したインデントってこんな感じなのでしょうか?
chobieメンバー便乗で失礼いたします。
対応するカッコの自動補完非常に便利に利用させていただいております。
この自動補完時のイベントをキャッチしてユーザー定義の補完に変更できるような機能の追加を検討していただけないでしょうか?私の場合すでに書いてあるコードに付け足しで
記述することが多いため、自動補完機能が有効の場合に書いていると・”some text”を変更しつつ渡したい場合
1.hoge_function(“some text”);
2.hoge_ function(huga_function()”some_text”)
括弧が補完されるので一端右の括弧を消す
3.hoge_function(huga_function(“some_text”))
huga_functionに対応する括弧をつけるというようになります。
もう少し柔軟に補完が行えると非常に快適にコーディングができるようになるかと思います。可能であればイベントを追加していただければユーザー側で自由に扱えますのでご検討いただければと存じます。
#久しぶりにバージョンアップしてみましたが、とても使いやすくなっていました:-) 今後もEmEditorを楽しみにしております。
chobieメンバー3. ディレクトリジャンクションにあるもの(C:data_drive => D:foo.txt)
4. ユーザーフォルダにあるもの(C:UsersusernameDocumentsfoo.txt)VistaUltimate SP1 32bit
Version 8.00 beta 2
で確認した所どちらもエクスプローラープラグインで該当のディレクトリが開かれました。ご参考までに
chobieメンバータブでも空白でも、問題ないはずなのですが、もしよろしければ該当するサンプル ファイルを [email protected] あてに送っていただけますでしょうか? 画面図もあるとなお助かります。
仰るとおりタブと空白のカウントは問題ないようですね。早とちりしてしまい失礼致しました。
よくよく確認してみたところ極端にスペース幅の
短いプロポーショナルフォントでインデントガイドがずれるようでした。(特にメイリオだと顕著なようです)私事ですが以前フォントの設定を色々と変更した
時のままだったようです:-(
これを機に等幅フォントに変更したので問題ありません。イベント対応の件有難うございます。
次期バージョンがでたら早速試してみたいと思います。chobieメンバーversion8βおめでとうございます。
version8β/Vista Ultimate SP1で下記のような現象があります。
インデントガイドがONの状態で
インデントの設定の文字(タブor空白)と
現在のブロックのインデント文字に相違があると
該当行に多くのインデントガイドが表示されるようです。恐らく行頭から続くタブか空白の文字の数を
計算しているから発生しているかと思いますが、
これは仕様となるのでしょうか。自分のソースの場合は特に問題がありませんが他の方の
ソースを見るときにインデントガイドが文字中に入っ
てしまって見づらいことがあります。あわせて要望となりますがプラグインのイベントで
改行された時を判別することは可能でしょうか?ご対応いただけると嬉しいです :-D
chobieメンバーローカルでやる分にはこんな感じでいけるとおもいますが。マクロ記述の参考までに。
document.save( document.Name );
wshshell = new ActiveXObject(“WScript.Shell”);
wshshell.AppActivate(“Mozilla Firefox”);
wshshell.SendKeys(“^{F5}”);
Sleep(100);
Window.SetForeground();最速の人のデモは自前のプロキシを使って
ターゲットサイトのスタイルシートをローカルファイルのものに読み替えるという一般的でない使い方をしています。若干ネタっぽいデモなのであまり本気になさらないほうがいいかと :-)
chobieメンバーkakinohaさん。有難うございます。
ショートカットのリンク先を下記のようにして
Vistaで「管理者として実行」をした所期待通りの動作になりました。“C:Program FilesEmEditorEmEditor.exe” /sp
runasでも同様に行けたので重宝してます。
ヘルプをもっと読んでおけば良かったですね。
失礼しました:-)chobieメンバーカスタマイズ(高度)の「文章間でプロセスを共有しない」にチェックを入れると別ユーザーのプロセスとして起動することはできます。
(ただ、この為だけにプロセス共有を無効にするのはナンセンスですよね)因みにrunasで別ユーザーとして起動した場合も同様です。
管理者権限が必要なファイルを編集するたびにEmEditorを閉じるのもアレですし、かといってその為だけに管理者権限でnotepadを起動するのもナンなのでEmEditor側で対応していただけると助かります。
chobieメンバーEmEdietorVer7のαから利用できるようになったEditor.WriteProfile****メソッドなのですが、これを利用する際に指針というものはあるんでしょうか。
私はまだWindowsプログラミングをそこまでやったことがなく、
strConfigに具体的にどのような値を指定すればよいかが分かりません。(レジストリエディタで見る限りではstrConfigで指定してもしなくてもかわらないような気がしますが・・・・)因みにDocument.Config系のプロパティは基本的に時間がかかるものなのでしょうか?現在のインデントレベルを調べるために直接Document.Config.Indent.Beginを参照する場合とインデント開始の文字列を直接指定した場合では数倍のパフォーマンスの差がでてしまいました。
因みにこれらの機能を利用してTextMateのSnippetライクなマクロを書いているので興味がある方は途中ですが下記ページを参照してみてください。
http://www.nicovideo.jp/watch/sm4608072要望ばっかりで恐縮ですが現在編集しているドキュメントの改行コードのタイプが取得できるプロパティ、指定したポジションの文字を取得するメソッド
(getLineは既にありますが文字列を解析する場合などはコレがあるとお手軽度が格段に違います)、指定した行のインデントレベルを取得できるプロパティなどがあると便利かと思います。あと別件ですがDroppedFilesのマニュアルがDocumentオブジェクトにリンクされているようです。ご確認ください。
- 作成者投稿