Eclipse の GitHub Copilot プラグインで C# コードを書く

Eclipse をインストールしてみます。C# で Eclipse ってどうなん？ と思って。

あと、今まで Eclipse は GitHub Copilot なかった（公式のものは・非公式のものはあったらしい）のですが、公式といえるものがプレビュー版で出たので。C# に対するサポートが手薄くても、Copilot あれば行けるでしょう。
https://devblogs.microsoft.com/java/github-copilot-for-eclipse-code-completion-now-in-public-preview/

# ■ ダウンロードサイトを探す

まずは、Eclipse の公式サイトがわからないので Wikipedia を頼ってみます。 

https://ja.wikipedia.org/wiki/Eclipse_(%E7%B5%B1%E5%90%88%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83)

![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250220/20250220001055.png)  

公式サイトへジャンプ！  

https://www.eclipse.org/

右上にダウンロードがあったのでダウンロード。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250220/20250220001059.png)  

もう一回ダウンロード。わからないので一番基本っぽい、左のダウンロード。    
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250220/20250220001103.png)  

更にダウンロードを！  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250220/20250220001108.png)  

ダウンロードされました。計画通り。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250220/20250220001112.png)  

インストーラーでの選択。わからないので基本っぽいのをセンスで選んでいきます。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250220/20250220001115.png)  

Java ダウンロードされそう。この環境すでに Java 入っていると思うのですが。進めていきます。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250220/20250220001119.png)  

かなり長く待たされて。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250220/20250220001123.png)  

更にここから長く待ち。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250220/20250220001126.png)  

起動しそう。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250220/20250220001130.png)  

突然刺激的なダイアログが！  
これは選択に勇気がいります。
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250220/20250220001135.png)

Eclipse が自信をセキュリティのスキャンの対象外にしようとしてきました。  

# ■ スキャン選択
なので無慈悲にスキャン対象に。当然の結果です。  

# ■ プラグインの導入
Eclipse も Visual Studio Code と同じように、プラグインでいろいろとアレするアレだと思うので、C# 用のプラグインを入れていきましょう。  
```
メニュー > Help > Eclipse Marcketplace...
```
みたいですね。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112510.png)  

それらしいのが開きましたので、検索して入れていきましょう。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112515.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112520.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112524.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112529.png)  

多分 Copilot はいるんじゃないかな、と思うので **GitHub Copilot** も入れていきましょう。チャットはまだできないようですが使えるはずです。  

# ■ GitHub Copilot プラグインのインストール
**GitHub Copilot** 検索して入れていきましょう。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112534.png)  

C# の時には出たライセンス同意などなく再起動の案内。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112539.png)  

覚悟を決めて再起動を指示したのに、インストール途中だけど、インストール完了させる？ と。インストール完了させますよ。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112543.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112547.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112552.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112556.png)  

はい。元の画面に戻りました。自動で再起動は......  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112600.png)  

出が遅いみたい。全般動きが遅いですね。これがセキュリティスキャンの力か......。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112605.png)  

# ■ GitHub Copilot の設定
アカウントを設定していきましょう。Visual Studio などと同じですね。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112610.png)  

といいつつ、ここの動きは違いますね。けれどブラウザが開いて Web でやっていくのは変わりません。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112614.png)  

先のダイアログに表示されていたコードを Web で入力。したいのですが、キー押下時の挙動がアレですね。クリップボードからの貼り付けは普通に行くので、貼り付け推奨ですね。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112617.png)  

設定できたみたいです。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112621.png)  

# ■ C# のプロジェクトを新規作成
ついに念願の C# プロジェクトの新規作成を始めましょう。  

```
メニュー > File > New > Other...
```
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112626.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112630.png)  

.NET のパスの設定をしろ！ と。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112633.png)  

```dotnet``` コマンドの場所知らないので調べて。  

https://rksoftware.hatenablog.com/entry/2025/02/22/130000

https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_command_precedence

![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112638.png)  

設定します。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112641.png)  

来ました。作成するプロジェクトを選択します。なれた .NET のプロジェクト新規作成です。わかるわかる大丈夫。  

読める読める。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112646.png)  

```
Project Template
.NET Aspire 運「繝励Μ繝吶せ繝ｪ [C#]
.NET Aspire 繝ｻ繝√Λ繝ｪ繧ｹ繝ｻ [C#]
.NET Aspire 繝ｻ繝√Λ繝ｪ繧ｹ繝ｻ繝励Μ [C#]
.NET Aspire 繝ｻ繝√Λ繝ｪ繧ｹ繝ｻ繝励Μ (MSTest) [C#]
.NET Aspire 繝ｻ繝√Λ繝ｪ繧ｹ繝ｻ繝励Μ (NUnit) [C#]
```
読めませんでした！  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112650.png)  

```ps1
dotnet new list
```
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112653.png)  
コマンドの結果と比較してそれらしいのを類推します。大丈夫大丈夫。これがコンソール アプリだ！（確信）    
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112657.png)  

プロジェクトができました！ できたと思う。できたはずです多分。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112700.png)  

ファイルシステム上できていますね。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112705.png)  

# ■ C# プロジェクトを開く
開き方がわからず試行錯誤の戦いの記録です。  

多分、パースペクティブで Java のパースペクティブを開いて、C# プロジェクトのフォルダを開く、みたいな？ よくわかりません。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112708.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112713.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112718.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112722.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112727.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112731.png)  

コードが何とか開けました。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112734.png)  


# ■ コードを書いてみる

皆さんお待ちかね！ キーボードのキーを押してコードをタイプしていってみましょう！  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112737.png)  

無慈悲な ```(応答なし)``` からの ```eclipse.exe は応答していません``` 久しぶりに見ました。なんだか懐かしい。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112741.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112745.png)  


# ■ もう一回
気を取り直して、強制終了からの再起動でもう一回チャレンジ！  

来ました！ いいですね。C# ですよ！ C# ！  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112749.png)  

でもこれ、Copilot っぽいですね。

# ■ GitHub Colipot の有効化/無効化
右下のアイコンからのメニューで Copilot の有効を変更できそうです。  

無行為してみて......  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112752.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112756.png)  

有効に戻してみて......  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112800.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112804.png)  

やはり、Eclipse やプラグインではなく Copilot の力だったようです。  
でもいいんですよ。Copilot で。優秀ですし、インテリセンス代わりに Copilot ！ そういうのもあります。  

# ■ Copilot を試す
ということで、Copilot を試しておきましょう。残念ながら今時点ではまた Copilot Chat は無いですが、大丈夫。チャットなどせずとも Copilot とお話しできます。  

それがこれ。コメントでプロンプト書いてコード補完で返答をしてもらう Copilot テクニック。これで大抵のことは乗り越えられます。
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112807.png)  

ちなみに聞いていることはこの記事でチャットの LLM 切り替えでの性能を見た時のコードです。


https://rksoftware.hatenablog.com/entry/2025/02/06/220000


```cs
// C# の機能を使いこなし C# らしいコードにしてください
// int[] array = new int[] { 1,2,3 };
// List<int> list = new List<int>();
// for(int i = 0; i < array.Length; i++)
// {
//     list.Add(array[i]);
// }
```
前述の記事にも書いていますが、Visual Studio が出してくれた改善コードがこちら。
```cs
using System.Linq;

var list = (new int[] { 1,2,3 }).ToList();
```
このコードと比較してみます。 

![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112810.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112813.png)  

前述の記事の LLM と同様の感じ。いい回答です。Eclipse、Copilot が使えれば使えそうです。

# ■ コードの実行
コードを書くだけなら、メモ帳でもできます。やはりコードを実行できてこその IDE。  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112817.png)  
![image](https://cdn-ak.f.st-hatena.com/images/fotolife/r/rksoftware/20250222/20250222112821.png)  

実行も出できました。下の Console に ```Hello, World!``` 出ています。

# ■ Eclipse の GitHub Copilot
いい気がします。Copilot があれば Eclipse で C#。かけるかも。