😺

LLMにコード共有するためのVS Code拡張機能 "Code to Clipboard" を作った

2024/03/17に公開

はじめに

こちらの記事にインスパイアされて、VSCode上でコードを簡単にクリップボードにコピーできる拡張機能を開発しました。

https://marketplace.visualstudio.com/items?itemName=YuichiNakamura.code-to-clipboard&ssr=false#overview

https://github.com/nakamurau1/code-to-clipboard

開発した拡張機能の概要

この拡張機能の主な機能は以下の2つです:

  1. ディレクトリ内のすべてのコードをクリップボードにコピーする
  2. 開いているすべてのタブからコードをクリップボードにコピーする

1. ディレクトリ内のすべてのコードをクリップボードにコピーする

エクスプローラーでディレクトリのコンテキストメニューの「Copy Directory Code to Clipboard」をクリックすることで、ディレクトリ構造とそのディレクトリに含まれるファイルの内容をコピーすることが出来ます。

# Directory Structure

- file1.js
- file2.ts
- dir1/
  - file3.js
  - file4.ts

# File Contents

## file1.js

```
// file1.js content
```

## file2.ts

```
// file2.ts content
```

## dir1/file3.js

```
// dir1/file3.js content
```

## dir1/file4.ts

```
// dir1/file4.ts content
```

2. 開いているすべてのタブからコードをクリップボードにコピーする

エディタ上のコンテキストメニューの「Copy Code from All Open Tabs to Clipboard」をクリックすることで、開いているタブのすべてのコードをクリップボードにコピーできます。

## file1.js

```
// file1.js content
```

## file2.ts

```
// file2.ts content
```

## dir1/file3.js

```
// dir1/file3.js content
```

対象のファイル

"Code to Clipboard" 拡張機能は、Git で管理されているディレクトリを対象としています。拡張機能は、Git の ls-files コマンドを使用して、リポジトリ内のファイルを取得します。これにより、.gitignore ファイルで指定されているファイルやディレクトリは自動的に無視されます。つまり、共有されるコードには、Git で追跡されているファイルのみが含まれます。

さらに、拡張機能はテキストファイルのみを処理します。バイナリファイルや画像ファイルなどは、コピーの対象から除外されます。これにより、共有されるコードの関連性が保たれ、不要なデータが含まれることを防ぎます。

Discussion