Windows」カテゴリーアーカイブ

Visual Studio 2015 で独自言語に対応させてみる。

みむらです。
新年初めての記事ですかね。明けましておめでとうございます。

一年の計は元旦にありということで、元旦から大幅に過ぎてしまいましたが
書き初めを。


何をするか、ということですが
タイトルにあるとおり「独自言語に対応させてみよう」ということで。

2016-01-16 (1)

たとえばこういう感じのが30分ほどで作成できます。


とはいえ、こんなことをしようとする人は、
たぶん放っておいても大丈夫そうな皆さんしかいなさそうな気もしますので、さくっとポイントのみ。

 

まず、作るためには “MPF for Projects” というのを使用するのが楽ちんなのですが、
Visual Studio 2015 用が出ていないようでしたので適当に作って公開しました。

https://github.com/mimura1133/uo_mpfproj14

この中にある “Samples/UsagiProject” の中身を見ると、大体の作り方が見えてくるかと思います。


1. とりあえず、新しい言語プロジェクトを作る:

CustomProjectPackage.cs を開くと、
このようにプロジェクト名とプロジェクトファイルの拡張子を指定できますので、
ここを適当にごにょごにょ。

image

次に上記でごにょごにょした形に合うように、 Templates フォルダ内を設定します。

Projects の中に作ったプロジェクトファイルとアイコンが、
新規作成時のプロジェクト一覧に並びます。

image

デフォルトのままですと、こんな感じですね。

image

 

重要な点として、このとき “Template” フォルダの中身について
ビルドアクションを “コンテンツ” そして “Include in VSIX” を “True” にする
必要があります。

これを忘れると、プロジェクト一覧に出てこなくなります。

image

 


2. 作ったはいいけれど、コンポーネントが読み込めないとかのエラーが出る。

主に、 “Microsoft.VisualStudio.Project” が読み込めないエラーだと思います。

デバッグ中に例外が出て、読み込みが無視されている場合は再ビルドで治る事がありますが、
それでも治らない場合。

extension.vsixmanifest および source.extension.vsixmanifest の “資産” のところに、
”MefComponent” として自身が登録されているか
どうかを確認してみてください。

image

私もこれで2時間潰しました orz.

 


あともう一つ。

ソリューションのファイル群が置いてある場所までのパスに日本語が
入っていないかどうか。

vsix に閉じ込めるファイルやソースのファイルは日本語でも問題なさそうなのですが、
そのソリューション一式のファイルまでのパス中に日本語が入っていると、
インストールしても何も出てこない vsix ファイルが生まれます。

たぶん vsixmanifest の処理あたりで問題が起きていそうな気がしますが、
詳しい所はよく分かりません。。


3.F5 でデバッグしたい!

まず、自身の参照のところに

Microsoft.VisualStudio.Modeling.SDK.Integration.14.0

を入れておきます。
次に、プロジェクトのプロパティより、「デバッグ」の「外部プログラムの開始」に

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe

と記述し、コマンドライン引数に

/rootsuffix Exp

と書くといい感じに F5 でデバッグできるようになります。

 


そんなこんなで、色々と楽しい事が出来そうな Visual Studio さん。

image

Visual Studio 2015 の vsixmanifest を見ると、
このように Express 版に対してもインストール設定ができるようなので
私のようなフリーソフト作者にとっては、わざわざお高いソフトを導入してもらわなくても試してもらえるってことで、とてもわくてかです。

 

そんなこんなで、私の書き初めは今年も C# から。
それではみなさん Happy Visual Studio Life を。

No Visual Studio, No…. いや、 VS なくても頑張れるかな・・

Windows 10 Build 10532 で Hyper-V を有効にする

最近急に冷えてきまして、
半袖短パンで戦うのは厳しくなってきたかなと思い始めています。

みむらです。

 

さて。つい先日 Windows 10 の Build 532 がリリースされましたが、
これを入れると Hyper-V が有効に出来ないという問題がありました。

私自身、Hyper-V をよく使う人間なのでこれはマズいということで、色々とやってみまして、
ちゃんと使えるようになりましたので記事にまとめておくことにします。


やることの要約としましては、

・「英語」設定に切り替える
・Hyper-V をインストール
・「英語」設定を削除して、日本語に戻す。

という内容です。


1.英語表示に切り替える

設定画面時刻と言語を選択し、横のメニューから地域と言語を選択。
そうしますと、言語を追加するというメニューが出てきますので、そこから “English” を選択、
続けて出てくるメニューからEnglish (United States) を選びます。

image

元の画面に戻りますので、そこで “English (United States)” をクリックしオプションを選択。
そしてそこから、言語パックをダウンロードします。

また、もし日本語キーボードを使っている方がいれば、ここで「キーボード」に
「日本語」を追加しておくといいでしょう。

image

最後に、英語を「既定値として設定」します。

image

 

2. Hyper-V をインストールする

普段 Hyper-V を有効化するのと同じように、
「プログラムと機能」の「Windows の機能の有効化または無効化」から有効にします。

image

 

3.英語表示設定を戻す

image

「日本語」の「既定値として設定する」をクリックしたのち、
”English (United States)” をクリックして「削除」を選び、
再度再起動して完了です。

YAMAHA ルータの設定を Visual Studio で書きやすく

どうもみむらです。
あけましておめでとうございます! ってやつです。

 

新春はやっぱり「書き初め」しますよね。
新年の抱負や決意をしたためるわけです。

 

私もしようとしていたんです。
絶対に LAN1/1 から開始する通信を LAN1 に流してはいけない、とか。

でもなんというか、書くための環境が気になって手を出してしまったところ
まだ書けていないのが実情です。

・・近いうちにやらないといけませんね。

 

今回はそんな中で生まれたツールをひとつ。


YAMAHA ルータコンフィグ用 Visual Studio 拡張

私も YAMAHA のルータを使うユーザの一人なのですが、
何かコンフィグを書くときに、無機質で疲れてくる、そんなことはありませんか。

YAMAHA NVR500 と OCN でひかり電話と IPv6

ヤマハルータと Hyper-V でネットワーク的な隔離環境を作ってみる

 

ふと昨晩思い立ちまして

作ってみました。

 


動作イメージ:

image

 

とりあえず、知られたコマンドとコメントアウトを色付けて、
知られたコマンドの後ろに続く文字列を緑色で着色する・・・そんな酷い実装なんですが
なんだかんだ見た目が良くなっているのでいいかなと! (ひでえ

あと、深夜のノリで IntelliSense も出るようにしてみました。
・・・これ出すために昨晩ページをスクレイピングしてすいませんでした >ヤマハの中の人

 


準備:

Visual Studio 2013 を使いますので、持っていない方はこちらから:
http://www.microsoft.com/ja-jp/dev/products/community.aspx 

昨日作った YAMAHA ルータの色づけ器はこちらから:
http://mimumimu.net/software/blogup/YamahaClassifier.zip

 

インストール:

ダウンロードした zip ファイル内の “YamahaClassifier.vsix” をダブルクリックすると次のような画面が出ますので「インストール」をクリックします。

image

 

使い方:

1.何でもいいのでプロジェクトファイルを作成します(苦笑)

たぶん Visual C++ の Win32 コンソールアプリケーションが
一番きれいでいいと思います・・!

image

 

2.拡張子 “.yconf” のファイルを作る (空でもOK)

image

作ったらあとはそのファイル上でルータのコンフィグを書いていきます。

 


開発者向け:

https://github.com/mimura1133/YamahaConfigClassifier

オープンソースですんで、ご自由にいじってくださいなー。
ライセンスとしては MIT ライセンスに従いますんでご自由にー。

Visual Studio で TeX を編集する話

この記事は Visual Studio Advent Calendar 2014 の 15日目の記事です。

 


2016/01/27 Update:

プロジェクトファイルとして作成できるようにしっかりと作り直してみました。
もしよろしければ、下記の記事をどうぞ。

TeX Support for Visual Studio を作ってみた。


 

皆さんこの時期ですと、やっぱり卒論・修論と大変忙しいかと思います。

さて、皆さんは何のエディタで編集していますでしょうか。
Vim? Emacs?

いえいえ、やっぱり Visual Studio でしょう?

 

ってことで作ってみました。

 

 

・・本当は長々と書く予定だったのですが
やっぱり12月でして、私自身も忙しく書く暇が取れませんでしたので、
以前 CSS 3.0 にて発表した資料を公開します。

・・実際、長々と書く予定だった物がほぼ入ってます。


カスタムビルドステップのコマンドについて:

 

F5 でのビルドに関しては、資料中にもあるようにカスタムビルドステップを使用します。

cd "$(SolutionDir)\\$(SolutionName)"
copy /y $(TargetName).tex $(Configuration)
cd $(Configuration)
platex $(TargetName) -halt-on-error
bibtex $(TargetName) -halt-on-error
platex $(TargetName) -halt-on-error
dvipdfmx $(TargetName)
copy /y $(TargetName).pdf "$(OutputPath)\\$(TargetFileName)"

 

.tex ファイルのカスタムビルドステップとして、

こんな感じのコマンドを指定しておくと、F5 キーを押したときに勝手に pdf 化までしてくれます。

もちろん、ビルド中にエラーがあれば止まります。

 

資料中に png の画像を埋め込んでいる場合は、

cd "$(SolutionDir)\\$(SolutionName)"
copy /y "%(FullPath)" $(Configuration)\%(Filename).png
cd $(Configuration)
extractbb %(Filename).png

こんな感じのコマンドを、ビルドコマンドとして指定します。

 


TeX ファイルの色づけについて

 

色づけについてはプラグインを入れる必要がありますので、

以前私が適当に書いた物を公開します。

https://mimumimu.net/mimura1133/TEX_CLASSIFIER.vsix

これを Visual Studio にインストールすれば、TeX ファイルが色づけされます。

 

注意:

vsix ファイルの中身は zip ファイルなので、

一部のブラウザでは zip ファイルとしてダウンロードされるかと思います。

その場合は拡張子を .zip から .vsix に変更してください。

 

・・ただ、このプログラムは重大なバグを持っていまして

こいつが有効だと、すべてのファイルに対して色づけを試行しようとします。

・・・ファイル拡張子でフィルタすればいいだけなのですが

実は以前作ったとき、一時的に使う予定だったので RAMディスク上で作りまして

ソースコードが全くなくて。

・・・作り直す暇も無かったので現状のまま・・ということで。今度ちゃんと作り直します・・。

 

・・・・もしよろしければどうぞ-。

Windows で sudo なことをする。

みむらです。
とある作業をしているときに見つけたことですが・・。

コマンドプロンプトや Power Shell で作業をしているときに管理者権限が必要になったとき、
いちいち管理者権限でコマンドプロンプトを立ち上げ直したりはしたくないものです。

また、 Shift+右クリックメニュー にて「コマンドウィンドウをここで開く」というものがありますが
このメニューから開いたときに、この画面で管理者に昇格したいもの。

そんなときに使えるコマンドです。

 

Power Shell にて

Start-Process -Verb (Command)

としてコマンドを実行すると、UAC の画面が出てきて管理者権限で起動してくれます。

 

たとえば、電卓を管理者権限で動かしたい場合は、

Start-Process -Verb runas calc

このような感じ。

 

あと、いちいち PowerShell を起動したくない場合は、

Power Shell の引数にコマンドを渡して実行すればいいので、

powershell -command "Start-Process -Verb runas (command)"

こんな感じで使えます。

 

ですので、たとえば Linux で言うところの ”sudo bash” な事をしたいのであれば、

powershell -command "Start-Process -Verb runas cmd"

と、こんな感じになります。

 


いちいちコマンドを叩くにも長いので・・

 

テキストエディタを開いて、下記の内容を “sudo.cmd” として保存し、

@powershell -command "Start-Process -Verb runas %1"

あとはそのファイルを PATH の通っているところに移動なりコピーすれば、

どこからでも “sudo (command)” で管理者権限で任意のプロセスを起動できるようになります。

 

管理者権限が必要なコマンドをよく使われる方、ぜひどうぞー。