夕暮ログ

C#やJavascript、最近はAndroidなんかも好きなtinqのブログ。「夕暮れログ」

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MSDNの改造(ポップアップの改良&J#のコード削除&APIのURI展開)

MSDNがどうにも使いにくい。
これはカスタマイズしなければと思っていたのですが、そろそろ限界だったので作りました。
とりあえず、
(1)ジャマなポップアップ
(2)見る価値のないJ#とJScript
(3)とび先が見えないURI
の3つを解決。
ほかに何かあれば、またはうまく動かないなどあればコメントお願いします。

こういうのを改良する作業は楽しいです^^v

(1)ポップアップ


何を考えているのか、MSDNの.NET系のページでは原文ポップアップが表示されます。
あんまり訳がよろしくないときもあるのでありがたいといえばありがたいのですが・・・


ジャマ!!!


なぜにして上の文章にかぶる!?
その上なぜうまく消えないことがよくある!!?
以前に比べてだいぶまともになったような気がしていたMicrosoftですが、やはり何かがすっぽりと抜け落ちているのではないでしょうか・・・?
というわけで、ユーザースタイルシートで書き換えます。

こんな感じになります。右下に半透明で表示されます。マウスを重ねるとちょっと濃くなったりします。
FirefoxのStylishを使っています。ほかのブラウザの場合、適した感じに書き換えてください。
また、完全に使いません!という人はdisplay:none !important;と書いておけば消えると思います。

@namespace url(http://www.w3.org/1999/xhtml);

@-moz-document domain("msdn.microsoft.com") {
.MTPopup
{
opacity:0.5;
left:0 !important;
top:auto !important;
bottom:0 !important;
width:250px !important;
position:fixed !important;
}
.MTPopup:hover
{
opacity:0.8;
}
}

これで快適に作業できます。

(2)J#とJScriptのコードを消す。


はい、みなさん。J#やってますか?Wikipediaによると、Javaのバイトコードが使えたりするようです。
いつかJavaのコードがJ#に置き換わる日がくることがっ!


ありませんね。


J#は悲しい言語だったようです。(過去形&伝聞)
話も風のうわさぐらいでしか聞きません。
残念なことにVisualStudioからもはずされて、.NET Framework4.0以降のページでは表示もなくなっています。
※参考 J# たん | ++C++; // 未確認飛行 C ブログ

JScript.NETのほうもMicrosoftの積極的なサポートはないので、あまり使う機会はありません。こちらも表示されなくなったようです。
しかし、いまだにJ#、JScriptどちらも3.5や2.0のページでは表示され続けています。
そのうえ、なぜかやつらはほかのC#、VB.NET、C++/CLIがタブで表示されているのにそこから脱出して常に表示されるポジションを獲得しています。みることないのに。

これが構文のように短いものならまだいいのですが、数十行ぐらいあるサンプルコードがいくつか続いていたりすると読みにくくてたまりません。

ということで、GreaseMonkeyで拡張ですっきり消してみます。おれはJ#使いだ!!って人、すいません。
下のほうの(3)とまとめて書いてあります。


(3)Win32APIのページの謎のURIを展開


WindowsのAPIのページは上にURIが並んでいます。
これらは関連するメッセージや構造体にリンクしていて便利。といいたいのですが、不思議とURLだけが表示されてタイトルがありません。
URLからも内容を予測するのは難しいようです。

不便ですので、これも自動で表示するように調整します。といっても、リンク先から正規表現でtitleを抜き出すのでいちいちXHRを発行しないといけません。毎回やってはきりがないので(サーバーにも迷惑がかかる)一度表示したらlocalStorageにキャッシュするようにしてみました。


Firefoxでしか検証していません・・・
// ==UserScript==
// @name MSDN 拡張
// @namespace http://tinqwill.blog59.fc2.com/
// @include http://msdn.microsoft.com/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js
// @version 1
// ==/UserScript==
$("a:contains('J#') , a:contains('JScript')").parent().parent().parent().hide();

$("a:contains('http://msdn.microsoft.com/ja-jp/library')").each(function(a,e){
var href = $(e).attr("href");
var title = localStorage.getItem(href);
if(title)
{
$(e).text( "■" + title );
}else{
$.get( href , function(page){
var title = page.match(/<title>(.*?)<\/title>/)[1];
$(e).text( "■" + title );
localStorage.setItem( href, title );
console.log(localStorage);
});
}
});



ほかにも使っていると、特にAPIのほうは「~するにはと、と、と、を使います」などと内容のないテキストが書いてあったり(せめて英語版のリンクを張ってください!)とか、「GetWindowLongの64bit版はGetClassLongPtrです」とかうそが書いてあったり(英語版ではあってるのに)といまいち不親切。
結局英語をがんばって英語版を読むしかないのか・・・?
関連記事

コメント

ここをクリックしてコメントを投稿

非公開コメント

トラックバック

http://tinqwill.blog59.fc2.com/tb.php/96-c610d9bb

« next  ホーム  prev »

プロフィール

tinq tinq(もしくはTinqWill)

Sky  For   Every 改装予定

プログラミングお勉強中の高校生。月一くらいは更新したい

最新記事

カテゴリ

月別アーカイブ

検索フォーム

最新コメント

リンク

最新トラックバック

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。