Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Visual Studio for Macで簡単に複数ウインドウを開けるようにする

More than 3 years have passed since last update.

はじめに

Visual Studio for Mac は複数のウインドウを開けなくて不便(´・ω・`)
という意見をチラホラと見かけます。
確かに不便なので、簡単に複数のウインドウを開けるようにしてみたいと思います。

できたもの

ファイル メニューの一番下に 新しいウインドウを開く メニューを追加しました。
(Open new window というものです)

Screen Shot 2017-12-23 at 0.04.00.png

このメニューの項目を押すと、新しいウインドウが開きます。

Screen Shot 2017-12-23 at 0.04.15.png

作成の流れ

今回やった流れは下記です。
VS for Macの拡張機能だけで実現できそうですが、
サクッとできなかったので、1と2をやりました。

  1. 新しいウインドウでVS for Macを開けるシェルスクリプトを書く
  2. 1のシェルスクリプトをアプリケーションバンドルにする
  3. VS for Macの拡張機能を作る
  4. 使う ∩(´∀`)∩

作る

1. 新しいウインドウでVS for Macを開けるシェルスクリプトを書く

ここでは、RunVS.sh として保存しました。

#!/bin/sh

open -n /Applications/Visual\ Studio.app/

2. 1のシェルスクリプトをアプリケーションバンドルにする

まず、アプリケーションバンドル化するディレクトリを作成します。
ここでは、RunVS.app という名前で作成しました。

次に、その中身を以下のディレクトリ構成にします。
Screen Shot 2017-12-24 at 22.20.34.png

Resourcesディレクトリの中身は空です。

Info.plistの中身は以下です。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>CFBundleExecutable</key>
    <string>RunVS.sh</string>
  </dict>
</plist>

RunVS.sh に実行属性を付与します。

chmod +x ./RunVS.app/Contents/MacOS/RunVS.sh

これで、通常のアプリケーションと同じように実行できるアプリケーションバンドルができます。
※これを実行すると、新しいウインドウでVS for Macが起動します。
Screen Shot 2017-12-24 at 22.26.23.png

3. VS for Macの拡張機能を作る

2で作成したものを VS for Mac から実行できるように拡張機能を作成します。
拡張の機能の作り方そのものは、こちらの投稿 などを参考にしてください。

Manifest.addin.xml
メニューのファイルに Open new window という名前で追加します。

<?xml version="1.0" encoding="UTF-8"?>
   <ExtensionModel>
       <Extension path = "/MonoDevelop/Ide/Commands/File">
           <Command id = "extention.RunVSCommands.RunVS"
               _label = "Open new window"
               defaultHandler = "extention.RunVSHandler" />
       </Extension>
       <Extension path = "/MonoDevelop/Ide/MainMenu/File">
           <CommandItem id="extention.RunVSCommands.RunVS" />
       </Extension>
   </ExtensionModel>

RunVSCommands.cs

namespace extention
{
    public enum RunVSCommands
    {
        RunVS,
    }
}

RunVSHandler.cs

2で作ったアプリケーションバンドルを実行させるだけの内容です。

using MonoDevelop.Components.Commands;
using AppKit;

namespace extention
{
   class RunVSHandler : CommandHandler
    {
        protected override void Run()
        {
            NSWorkspace.SharedWorkspace.LaunchApplication("/Applications/RunVS.app");
        }
    }
}

なお、アドインのパッケージ化はVS for Macの場合、以下のコマンドで行えます。

/Applications/Visual\ Studio.app/Contents/MacOS/vstool setup pack DLL名

4. 使う ∩(´∀`)∩

簡単にいっぱい開ける!
Screen Shot 2017-12-24 at 22.45.08.png

おわりに

2日ぐらい自分で使ってみましたが、メニューから新しいウインドウが開けると、
めっちゃ便利ですね(`・ω・´)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away