エディタでの選択状態に応じて、プロジェクトルートからの相対パスと行番号をクリップボードへコピーする VS Code 拡張機能です。
使い方
- エディタで
cmd + shift + C(macOS)を押します。- 他 OS の既定は
ctrl+alt+cです。必要に応じてkeybindings.jsonで変更してください。
- 他 OS の既定は
- 挙動
- カーソルのみ(未選択)のとき:
path/to/file.ts - 1 行だけ選択しているとき(行の一部でも可):
path/to/file.ts:L99 - 複数行を選択しているとき:
path/to/file.ts:L2−10- 行範囲の区切りにはマイナス記号
−(U+2212)を使用します(ASCII のハイフン-ではありません)。
- 行範囲の区切りにはマイナス記号
- 複数選択(マルチカーソル/矩形選択など)の場合は、選択範囲を結合した最小〜最大行を出力します。
- カーソルのみ(未選択)のとき:
相対パスは Git リポジトリルート(またはモノレポルート)を基準に算出します。見つからない場合はワークスペースを基準にし、ワークスペース外のファイルは絶対パスになります。
コマンド
Copy Path With Line Range(コマンド ID:copy-path-with-line-range.copy)
インストール/ビルド
この拡張は TypeScript + esbuild で構築しています。以下のコマンドでビルドできます。
pnpm install
pnpm compile
VS Code の「実行とデバッグ」から Extension を起動すると、開発ホストで動作を確認できます。
技術メモ
- 依存パッケージ構成は VS Code 公式サンプル(webview-sample)の
package.jsonを参考に、esbuildによるバンドルと@types/vscodeを採用しています。 - 行番号は 1 始まりで出力します。
- 選択終了が行頭(列 0)にある場合は、前行を終端とみなして範囲を算出します。
ライセンス
MIT