え〜っと。PDT Toolsの一括インストール用UpdateSiteの新版をアップロードしました。
更新したのはIndentGuideプラグインだけで、メニューのWindow>New Windowで新ウィンドウをオープンすると効かなくなるぞ〜という声にお応えしました ;-)
PDTで名前空間付きのクラスをコード補完するとuse文が自動的に挿入されるわけですが。
Before:
namespace A1 {
class C1 {
static function foo() {}
}
}
namespace {
C1 // ここでC1とタイプし、ポップアップした補完候補を確定すると...
}
After:
use A1\C1;
namespace A1 {
class C1 {
static function foo() {}
}
}
namespace {
C1::foo() // use文がファイル先頭に挿入されてしまい...
}
ダメじゃん。と思ったらば...
use文をどこに挿入するかは、編集中のテキストではなく、それを構文解析した結果の内部データ(AST)によって決定しているので..."C1"をタイプした時点では構文解析は当然ながら構文エラーを検出するわけで。上記の例の場合、無名namespaceブロックは内部的には存在しない状態になり、結果、ファイル先頭に挿入されてしまうと。
というわけでこれはちょっと回避できないんじゃなかろうかと。
[5/20追記]
正確には、「現在編集中の箇所がどのnamespaceに属しているかを取得できない」でした。で、最新版(CVS)では、上記の例ではA1であると誤認してしまい、use文は挿入されない始末。なんかもう自動挿入やめちゃえよって言いたい(^^;)
今頃気が付いたんですが、Ubuntu12.04は、ログイン画面のセッションタイプでGNOME Classic等が選択できるようになっていますね。
というわけでGNOME Classic使用中。
なんせUnityのLauncherがデフォルトではauto-hideしないようセットされており(-_-)
auto-hideするようセットしたら今度は隠れたきり出てこなくなり(-_-メ)(Windowsキーを押せば出てきますが)
[ubuntu] 12.04 Unity Bar Auto-Hide feature bug - Ubuntu Forums
CCSMによる対処は効きもせず。
UnityとUnity2Dで違うんじゃなかろうかと(ウチは2D)何気にログインタイプを変えてみようとしたら(実は変えてもしょうがないので今まで試そうとしなかった)、なんとGNOME Classicが。
いいよもうGNOME Classicで。
[追記]
GNOME3のフォールバックモード(GNOME Classic)でパネルをカスタマイズする - 憩いの場
な、なるほど。
Eclipse Community Forums: Newcomers » Internal web browser disabled using Eclipse/Ubuntu 12.04
Ubuntu 12.04でInternal Web Browserが使えない件。
Ubuntu -- precise の libwebkitgtk-3.0-0 パッケージに関する詳細
Ubuntu -- precise の libwebkitgtk-1.0-0 パッケージに関する詳細
1.0入れれば使えるようにはなりますけどね。1.0入れて問題無いんだろうか。謎。
PDTから手を引いたら暇になり(^^;)
暇つぶしはやっぱりPDTで。
元ネタはこちら。
Eclipse PDT Intellisense for PHP functions - Stack Overflow
PDTでワークスペース外のPHPファイルを開くとコード補完してくれない!という昔から(というか2.0以降?)ある話なんですが。
ソースコードをぼんやり眺めてると...
そもそも補完用のデータをどうやって取ってきてるかというと、データベースから「ビルドパス」をキーとしてクラスなり関数なりを検索して補完リストにしているようで。
ビルドパスがどこにあるかと言えば、プロジェクトフォルダの".buildpath"ファイルにあります。
で。
どうもこの".buildpath"ファイルの実体が無いとダメ(オンメモリでは手当てできない)らしく。".buildpath"ファイルはプロジェクトフォルダに無ければダメらしく。本当に必要なのはビルドパスデータなんですが、それを取得するためにはプロジェクトの実体が必要になると。
というわけで、外部ファイルに対して何らかのプロジェクトを(内部的に)アサインしてやれば、コード補完できるようになります。というプラグインをこさえてみました。
問題は「何らかのプロジェクト」で。最初プラグイン内部に持てばいいや、と思っていたらば。ワークスペースに登録しないとプロジェクトとして認識されず(^^;)(そりゃそうか) しかし登録してしまうと当然PHP Explorerなどに表示されてしまうわけで。RSEのRemoteSystemsTempFilesのような隠しプロジェクトを作るという方法もありますが、私の趣味じゃないので(^^;) ワークスペース内に存在するPHPプロジェクトをPreferenceで指定してもらうことにしました。![]()
ブツは http://sourceforge.jp/users/atlanto/pf/eclipse/files/?id=1123 です。
もっとうまいやり方があるのかもしれませんが...
pdt_tools.feature_patch.pdt.3.0.0.v20120404.zip
以下のバグ修正を追加しました。
- 非Smart Insertモードでも"{"が自動編集される
例えば
function zzz()
{
...
}
という形式で入力したい場合、zzz()で改行してタブを押して「{」を入力・・・すると、せっかく入力したタブが削除されて「{」が行頭に位置づけられてしまうわけで。
Javaエディタの場合、Smart Insertモードを解除してInsertモードにすればよい(よいと言うか何と言うか)のですが、PHPエディタではInsertモードでも勝手に自動編集されてしまいます。
そこだけ修正しました。
Eclipse3.7.2専用です。
http://sourceforge.jp/users/atlanto/pf/eclipse/files/?id=1021
Aspire Revo(R3610)にWin8CPを入れてはみたものの。
CPUもHDDも非力なこのマシンでは…
しかし、デスクトップはぶっちゃけ見た目以外に何が変わったのかさっぱり分からず(^^;)
スタートボタンは無くなりましたが。タスクマネージャーにしろエクスプローラーにしろ、言ってしまえば大して変わりばえもせず。
しかし見た目はウィンドウの角の丸みが取れて角張り、システムフォントはメイリオから細身のメイリオUIになって、先祖返りというか何というか。
私は「Metroアプリはタブレット専用」と思っていますが、「スタート」はMetroだったり、デスクトップで画像やビデオは(デフォルトでは)Metroアプリに関連付けられていたり、アカウント設定はコントロールパネルとMetroのPC設定に分割されてたり、ブラウザをMetroでなくデスクトップ版IEで開く設定にできたり、デスクトップとMetroをいったいどうしたいのかよくわかりません。無理に結合しなくても…
デスクトップとMetroを統合するのは無理だと思いますが、画面全体をくるりんぱとひっくり返して行ったり来たり…の現状はいかがなものかと。「デスクトップモードとタブレットモードを選択してOS起動」みたいなのがまだましなんじゃないかという気もしますが。
・Firefoxでメニューバー・ツールバー・タブ・スクロールバーにゴミが表示される
→about:configでgfx.direct2d.disabledをtrueに
・キーボードのレイアウトが英語になる
→Windows 8 Consumer Previewで日本語入力できません。マシン特有の現象でしょうか? - Microsoft Answers を参考に、キーボードのドライバをMicrosoft Basic Keyboard(106/109)に
[追記]
[Win8CP] 日本語配列キーボードが英語配列キーボードとして認識されることがある - Microsoft Answers
…ホントだ、また英語配列になってる…
とか書いてたらたった今使えてた半角全角キーも使えなくなったり...謎。
HIDキーボードデバイスドライバに戻して様子見中...
[3/20追記]
パソコンのツボ 〜Office のTIP: キーボードレイアウトが英語になる【Win8CP】 を参考に、高速スタートアップを無効にしてみたら大丈夫っぽいです。今のところ。
VMwareにインストールしたWin8CPが快適で。パフォーマンスはアレなんですけど。アレというかコレなんですけど。(E7500 2.93GHz、メモリ1G)![]()
これならAspireRevoのWin7をWin8にアップグレードしてもいいかも...と思って実機に入れてみたり。(Atom330 1.60GHz、メモリ2G)![]()
まだIONドライバに難があるのか、Firefoxのメニューバー・ツールバーの描画が今ひとつ(ゴミが残る.が、再描画で直る)なんですが。WindowsUpdate後も。(WindowsUpdateでIONドライバが更新されたのにも驚きましたが)
どうでもいいんですが、仮想マシンではMetroソリテアはレスポンス悪くて遊べませんでしたが、Revoではそこそこレスポンス良くて遊べました。
Windows7はEclipseの場合ダイアログがやたらデカいサイズで表示されたりするのがイヤだったりするんですが(^^;)
Windows8CPデスクトップはそんなこともなく。エクスプローラーにリボンUIが付くのはヤダ、と思ってたらデフォルトでは最小化されてて特に邪魔にはならないし。全然普通に使えてて、今のXPから躊躇なく移行できます。7のマシンは…わざわざ、しかも金を払ってまでアップグレードする理由は無いような気がしますが…
Metroアプリは…タブレットでしか意味が無いし、タブレットでも使う価値は…ケータイもスマホも非Windowsなタブレットも持ってない私には想像もできませんが(^^;)(←自分には使えないだけ)使い勝手は良さそうですけどね。あとMicrosoftアカウントとXbox持ってれば楽しめるんじゃないでしょうか。あぁ全然縁の無い世界だ(^^;)
なんか他OSもそうだけどデスクトップの矮小化が...









