VSCodeでJava開発できそう
はじめに
Javaコードを書くとき、普段はEclipseを使っていますが、めっちゃ久しぶりにVSCodeを使ってみたら普通に開発できそうな感触だったので、必要な拡張やEclipseでやってる操作をVSCodeだとどうすればいいかなどメモしておきます。
とりあえず思いつくままに書いておきますが、今後も更新すると思います。
インストールする拡張
とりあえずこの2つをインストールすればいける気がします。
他にもこんな拡張があるらしい(私はまだ使ったことがない)。
やっておきたい設定
settings.jsonに次の設定をしておきたいです。
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
"java.format.comments.enabled": false,
"java.inlayHints.parameterNames.enabled": "none",
"terminal.integrated.stickyScroll.enabled": false,
-
editor.formatOnSave: 保存時にソースコードをフォーマットする設定 -
editor.codeActionsOnSave > source.organizeImports: 保存時にimportを整理する設定 -
java.format.comments.enabled: コメントは自動でフォーマットしたくないためfalseを指定 -
java.inlayHints.parameterNames.enabled: メソッド呼び出しのコードで引数名を表示する設定(表示させたくない……) -
terminal.integrated.stickyScroll.enabled:trueだと微妙な位置でスクロールが固定化されて使いにくかったので……
操作
Spring Initializr
command + shift + pでコマンドパレットを出してSpring Initializr: Create a Maven Project...を選択します。
あとは導かれるままSpringのバージョンや依存ライブラリーを選択すればOK。
Spring Bootアプリケーションの起動。
command + shift + pでコマンドパレットを出してSpring Boot Dashboard: Run...を選択します。
Spring Bootアプリケーションの停止。
command + shift + pでコマンドパレットを出してSpring Boot Dashboard: Stop...を選択します。
定義へジャンプ
F12またはcommand + クリック。
実装へジャンプ
command + F12。
アウトラインの表示
command + shift + o。
またはcommand + pを押したあと、テキストボックスに@を入力します。
(Eclipseだとcommand + o)
型の検索
command + t。
またはcommand + pを押したあと、テキストボックスに#を入力し、続けて開きたい型の名前を入力します。
(Eclipseだとcommand + shift + t)
完全修飾名と単純名のどちらでも良いです。
EclipseみたいにUpper Camel Caseの頭文字[1]でも検索できます。
型階層の表示
型を選択して右クリックしてコンテキストメニューを表示し、Show Type Hierarchyを選択します。
呼び出し階層の表示
shift + option + h または型を選択して右クリックしてコンテキストメニューを表示し、Show Call Hierarchyを選択します。
参照箇所へジャンプ
shift + F12 または型を選択して右クリックしてコンテキストメニューを表示し、Go to Referencesを選択します。
ローカル変数の導入
ローカル変数を導入したい文にカーソルを合わせてcommand + .を押し、Extract to local variableを選択します。
(Eclipseだとcommand + 2、l)
リネーム
リネームしたい対象にカーソルを合わせてF2を押し、テキストボックスに新しい名前を入力します。
(Eclipseだとcommand + 2、r)
カーソルを1つ前の位置に戻す
ジャンプした後、もとの位置に戻る操作です。
control + - または option + command + ←。
(Eclipseだとalt + ←)
困ったときは
困ったらJava: Clean Java Language Server Workspaceしてみる(力技)。
-
例えば
LinkedHashMapならLHM↩︎
Discussion