[[oktatas:programozás:java:java_fejlesztői_környezet_kialakítása|< Java fejlesztő környezet kialakítása]]
====== Java - Visual Studio Code ======
* **Szerző:** Sallai András
* Copyright (c) 2021, Sallai András
* Szerkesztve: 2021-2024
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== Bevezetés =====
A Visual Studio Code, néha röviden VSCode, egy nyílt forráskódú szövegszerkesztő.
A Programozás > Programok névtérben is van egy Visual Studo Code leírás:
* [[oktatas:programozas:programok:visual_studio_code|Visual Studo Code]]
===== Telepítés =====
Töltsük le az alábbi helyről:
* https://code.visualstudio.com/
===== Felület =====
{{:oktatas:programozas:java:java_fejlesztoi_koernyezet_kialakitasa:visual_studio_code.png?400|}}
Az oldalsáv **nézeteket** tartalmazhat.
Az EXPLORER estén alapértelmezetten a következő nézetek jelennek meg:
* > APP01 - könyvtár nézet - a megnyitott projekt könyvtár neve jelenik meg
* > OUTLINE
* > TIMELINE
Ha megnyitunk egy .java kiterjesztésű állományt, akkor lesz egy JAVA PROJECTS nézetünk is:
* > JAVA PROJECTS
{{:oktatas:programozas:java:java_fejlesztoi_koernyezet_kialakitasa:explorer_views.png|}}
A nézetek a ">" karakterre (ikonra) kattintva lenyithatók.
===== Java projects nézet =====
{{:oktatas:programozas:java:java_fejlesztoi_koernyezet_kialakitasa:vscode_java_projects_view_labels.png|}}
===== Bővítmények =====
==== Microsoft megoldások ====
* Project Manager for Java
* Language Support for Java(TM) by Red Hat
* Debugger for Java (ez kell a lejátszógomb megjelenéséhez .java fájloknál)
* Maven for Java
* Test Runner for Java
Az Extension Pack tartalmazza mindezeket:
* Extension Pack for Java
* Plusz még:
* Visual Studio IntelliCode
Teszteléshez opcionálisan letölthető még:
* JUnit JAR Downloader
==== Oracle megoldás ====
A bővítmény neve egyszerűen Java:
* Java
Előbb be kell állítani a Java helyét. Tegyük fel, hogy a Java a következő helyen található:
* /usr/lib/jvm/java-17-openjdk-amd64/
* Settings
* jdk: Jdkhome
Új projekt kezdése:
* Java: New Project...
===== Java =====
A Visual Studio Code képes használni az előtelepített Java keretrendszereket, de le is tudja azokat tölteni.
Java JDK az Oracle-től:
* https://www.oracle.com/java/technologies/javase-downloads.html
==== Java JDK választás ====
Hívjuk meg a VSCode parancspaneljét, például az F1 billentyűvel, majd keressük meg:
* Java: Configure Java Runtime
Ott kattintsunk a ceruza ikonra:
{{:oktatas:programozas:java:java_fejlesztoi_koernyezet_kialakitasa:select_java-jdk.png|}}
Láthatóvá válnak a telepített Java JDK verziók:
{{:oktatas:programozas:java:java_fejlesztoi_koernyezet_kialakitasa:select_java-jdk_2.png|}}
Válasszuk ki a kívánt változatot.
Ellenőrzésként írassuk ki milyen Java verzióval működik a megírt programunk:
* [[oktatas:programozas:java:java_nyelv_jellemzok#a_java_verzio_kiiratasa|Java verzió kiíratása]]
==== Java választás tárolása ====
A beállítás a következő helyen tárolódik
Windowson:
* c:\Users\janos\AppData\Roaming\Code\User\settings.json
Linuxon:
* /home/janos/.config/Code/User/settings.json
Lehetséges tartalom:
{
"window.zoomLevel": 2,
"java.configuration.runtimes": [
{
"name": "JavaSE-17",
"path": "C:\\Program Files\\Java\\jdk-17.0.2",
"default": true
},
{
"name": "JavaSE-1.8",
"path": "C:\\Program Files\\Java\\jdk1.8.0_211"
}
]
}
===== Projekt kezdés =====
* View > Command Palette...
* Kezdjük el írni:
* Java: Create Java Project...
* Lehetőségek
* No build tools
* Maven
* Gradle
* Spring Boot
* Quarkus
* MicroProfile
* JavaFX
* Micronaut
* Graal Gloud Native
Az egyes lehetőségekhez megfelelő bővítmény lehet szükséges.
===== Tesztelés =====
Bővítmény:
* JUnit JAR Downloader
* View > Command Palette...
* Kezdjük el írni:
* JUnit
* Kiválasztjuk: Download JUnit JAR files
* Megkérdezi, hova szeretnénk letölteni. Alapértelmezés:
* lib
* Csak nyomjunk egy Enter-t.
Ez fel is veszi a használható könyvtárak közzé.
Vegyük fel a test könyvtárat a forráskönyvtárak közzé.
Szerkesszük a .vscode/settings.json
{
"java.project.sourcePaths": ["src", "test"],
"java.project.outputPath": "bin"
}
A tesztosztály és a tesztmetódus tetszőleges nevű lehet.
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
class AppValami {
@Test
public void calcAreaAssertion() {
assertEquals(525.0, App.calcArea(30, 35 ));
}
}
Futtatáshoz az akciósávon kémcső.
További tesztírás:
* https://junit.org/junit5/docs/current/user-guide/#writing-tests-assertions (2021)
===== Beállítások törlése =====
rm ~/.config/Code/User/
Windows PowerShell:
rm C:\Users\user\AppData\Roaming\Code\User\
===== GitHub kijelentkezés =====
* Akciósáv > Accounts > janos (GitHub) > Sign Out
===== GitHub VSCode-ban =====
A GitHub VSCode-ban való használatához telepíteni kell a következő bővítményt:
* GitHub Pull Request and Issues
Forrás: https://code.visualstudio.com/docs/sourcecontrol/github (2023)
===== Automatikus mentés =====
Az automatikus mentés ki/be kapcsolása:
* Ctrl + Shift + P (Vagy F1)
* File: Toggle Auto Save
===== Újratervezés =====
* F2
Az F2 helyzetérzékeny. Az oldalsávon az EXPLORER-ben használhatjuk a kijelölt fájlok és könyvtárak átnevezésre.
A szerkesztőben, különböző szimbólumokra állva (változók, metódusok stb) azok átnevezése kezdeményezhető.
===== JAR fájl készítés =====
Az oldalsávon, kinyitjuk a Java project összetevőt:
* JAVA PROJECTS
Az egeret ezen rész felé viszem. Ekkor megjelenik egy ehhez hasonló alakzat: |->
Jobbra mutató nyíl talppal.
Ekkor megkérdezi, melyik a fő osztály, és készül a .jar fájl a projekt gyökér könyvtárában.
{{:oktatas:programozas:java:java_fejlesztoi_koernyezet_kialakitasa:jar_keszites.png?400|}}
===== Code Runner =====
A Code Runner egy bővítmény, amely lehetővé teszi többféle programozási nyelven készült
program futtatását, ha csak egy fájl van önmagában projekt nélkül.
Néha zavaró lehet ha projektet készítőt is használunk.
2023-10-08-i kiadás a következő nyelveket támogatja:
C, C++, Java, JavaScript, PHP, Python, Perl, Perl 6, Ruby, Go, Lua, Groovy, PowerShell, BAT/CMD, BASH/SH, F# Script, F# (.NET Core), C# Script, C# (.NET Core), VBScript, TypeScript, CoffeeScript, Scala, Swift, Julia, Crystal, OCaml Script, R, AppleScript, Elixir, Visual Basic .NET, Clojure, Haxe, Objective-C, Rust, Racket, Scheme, AutoHotkey, AutoIt, Kotlin, Dart, Free Pascal, Haskell, Nim, D, Lisp, Kit, V, SCSS, Sass, CUDA, Less, Fortran, Ring, Standard ML, Zig, Mojo
===== Debug =====
Legyen telepítve a "Debugger for Java" bővítmény.
Írjunk egy rövid kódot:
public class App {
public static void main(String[] args) {
String a = "valami";
System.out.println(a);
}
}
A public static felett megjelenik két szöveg, ami nem a kód része.
A VSCode része:
Run | Debug
Kattintsunk a Debug-ra.
===== Formázás mentéskor =====
Ne rendezze egy sorba a forráskódot:
A VSCode beállításainál:
* [ ] Format On Save
===== Forráskód formázása =====
Bővítmény:
* Prettier
A parancspanelon kezdjük el írni:
Format
Két lehetőségünk lesz:
* Format Document
* Format Selection
===== Maven projekt =====
**Archetype** alatt, **alkalmazás sablont** értünk.
Az első helyeken két archetype található:
* no archetype
* archetype quickstart
Ha archetype quickstart-t választunk egy Java projekt létrehozása során, a VSCode rákérdez a projekt több tulajdonságára is.
Nélküle csak a csomag nevét kérdezi meg, a projekt helye és neve mellett. Egy minimális pom.xml jön létre.
==== Sablon használata ====
Szükséges bővítmény:
* Maven for Java
* Project Manager for Java
Ha telepítve van a Code Runner, érdemes letiltani.
Projekt létrehozása:
- Parancs panel indítása (Ctrl+Shift+p)
- Elkezdjük írni: Java
- Választás: **Maven** create from archetype
- Választás: maven-archetype-quickstart
- Választás: 1.4
- Javítjuk: com.exeple helyett: lan.zold
- Javítjuk: demo helyett: projekt01
- Kiválasztjuk a könyvtárat - Ezen a könyvtáron belül jön létre egy projekt01 könyvtár
Parancssorban:
- Define value for preperty 'version' 1.0-SNAPSHOT: :
- Y: :
A VSCode egy darabig eldolgozik
Projekt futtatása: F5
==== Sablon nélkül ====
A **No Archetype** az újabb VSCode verziókban jelent meg, 2023-ban.
Forrás: https://github.com/microsoft/vscode-maven/issues/869
* **Maven** create from archetype
* No Archetype...
* (Create a basic Maven project diretly.
* com.example
* Input group Id of your project.
* demo
* Input artifact Id (also as project name) of your project.
* [Select Destination Folder]
Kiírja hol hozta létre a projektet.
==== Tesztelés ====
A baloldali "akció sávon" megjelenik egy kémcső.
Ha erre kattintunk, tőle jobbra az "oldal sávon" tesztelési lehetőségek jelennek meg.
Ha Maven projektet hoztunk létre (nem No Archetype), akkor lesz a projektnek egy AppTest része.
Alapból van egy tesztünk is benne. Futtassuk.
Az AppTest felé visszük az egeret, ekkor megjelenik egy lejátszógomb.
===== TODO =====
Két hasznos bővítmény:
* TODO Highlight
* Kiemeli a kódban a TODE és FIXME megjegyzés feliratait
* **TODO Tree**
* Az akciósávon megjelenít egy fát.
* Arra kattintva, az oldalsávon megjelennek a tennivalók fanézetben.
===== A szerkesztő beállításai =====
A kódszerkesztőt minden projekthez a következő helyen állíthatjuk be:
$HOME/.config/Code/User/settings.json
Csak egy projekthez, a projekt könyvtárában a .vscode könyvtárban végezzük el a beállításokat:
.vscode/settings.json
==== Ajánlások és paraméterleírások kikapcsolása ====
Az **IntelliSense** egy általános kifejezés a különféle kódszerkesztő funkciókra. Szokás kódkiegészítőnek, tartalomsegítőnek vagy kód utalásoknak is hívni.
* kódkiegészítés
* paraméterinformációk
* gyors információk
* tag listák
Az IntelliSense a következő beállításokkal szabályozható.
{
"editor.quickSuggestions": {
"other": false,
"comments": false,
"strings": false
},
"editor.parameterHints.enabled": false,
}
Ha zavaró a sok felugró ablak tegyük false értékre, azt ami nem szükséges.
Forrás: https://code.visualstudio.com/docs/editor/intellisense (2023)
==== settings.json generálás ====
Ha nincs .vscode/settings.json fájl, de szeretnénk egy beállítást leírni a fájlban,
automatikusan legeneráltathatjuk:
* Parancspanel:
* Ctrl+P
* >Open Workspace Settings (JSON)
A parancs létrehozza fájlt üresen:
{
}
Írjuk be a beállításunk, például:
{
"window.zooomLevel": 4
}
A beállítást megtehetjük a felhasználó profil könyvtárában is. Ekkor a parancspanelon:
* Parancspanel
* Ctrl+P
* >Open Settings (JSON)
==== Whitespcae karakterek ====
A Whitespace karakterek láthatóságának bekapcsolása.
{
"editor.renderWhitespace": "all"
}
===== A java.awt nem látszik =====
A java.awt osztályokhoz esetén a kiegészítő nem ajánlja fel a java.awt osztályait.
Megoldás:
A szerkesztő beállításaiba:
"java.completion.filteredTypes" : [
"java.awt.List",
"com.sun.*"
],
Helyben: .vscode/settings.json
Például:
{
"java.project.sourcePaths": ["src"],
"java.project.outputPath": "bin",
"java.project.referencedLibraries": [
"lib/**/*.jar"
],
"java.completion.filteredTypes" : [
"java.awt.List",
"com.sun.*"
],
}
Forrás:
* https://github.com/redhat-developer/vscode-java/issues/1093 (2021)
===== Fájlok fejléce =====
Telepítsük a psioniq File Header bővítményt:
* psioniq File Header
A beállítás fájlba másoljuk be:
//...
"psi-header.config": {
"forceToTop": true,
"blankLinesAfter": 1,
"license": "Custom"
},
"psi-header.variables": [
["company", "Sallai Andras"],
["author", "Sallai Andras"],
["authoremail", "andrewteki@gmail.com"]
],
"psi-header.changes-tracking": {
"isActive": true,
"modAuthor": "Modified By: ",
"modDate": "Last Modified: ",
"modDateFormat": "date",
"include": [],
"exclude": [
"markdown",
"json",
"jsonc"
],
"excludeGlob": [
"out/**",
"src/**/*.xyz"
],
"autoHeader": "manualSave"
},
"psi-header.license-text": [
"MIT",
],
"psi-header.templates": [
{
"language": "*",
"template": [
"File: <>",
"Project: <>",
"Created Date: <>",
"Author: <>",
"-----",
"Last Modified: <>",
"Modified By: ",
"-----",
"Copyright (c) <> <>"
"",
"<>",
],
"changeLogCaption": "HISTORY:",
"changeLogHeaderLineCount": 2,
"changeLogEntryTemplate": [
"<>\t<>\t"
]
},
}],
}
Csak a helyi projekt beállításaihoz másoljuk, mert másként minden
projekt ilyen licencű lesz.
A fejléc beillesztése:
* F1
* Header Insert
6 üres sor helyett 1 van beállítva.
Minden új fájlhoz hozzáfűzi.
===== MIT licenc hozzáadó =====
Telepítendő bővítmény:
* MIT License Adder
Indítás:
* F1
* MIT
===== Bővítmények licenceléshez =====
==== Choose A license ====
Egy licenc fájlt szúr be.
==== MIT License Adder ====
MIT licenc fájl szúr be
==== psioniq File Header ====
Ez a fájlt kell szerkeszteni:
.vscode/settings.json
majd:
* F1
* Header Insert
==== License Header Manager ====
* F1
* Create new License Template
* Edit License Templates
* Add license header
Jó lenne, rossz hónapot és napot ír.
==== Codeium ====
A Codeium egy kód asszisztens.
Regisztráció szükséges a webhelyén:
* https://codeium.com/
Telepítsük a **Codeium** bővítményt.
Jelentkezzünk be a bővítménybe, majd működik azonnal.
=== Kiegészítések lapozása ===
Beállíthatunk gyorsbillentyűt például a kiegészítések lapozásához:
Nyissuk meg a gyorsbillentyű beállításokat:
* Ctrl + K, Ctrl + S
Keressünk rá:
* Codeium
| Show Next Completion | Alt + RightArrow |
| Show Previous Completion | Alt + LeftArrow |
===== Alapértelmezett terminál beállítása =====
* F1
* Terminal: Select Default Profile
===== Panel kapcsolása =====
Panel ki-be kapcsolása:
* Ctrl + J
A panel az alsó rész, ahol a terminál is megjelenik.
===== Billentyűkombináció =====
==== Megjegyzés ====
* Windows
* Ctrl + ü
* Linux:
* Ctrl + Shift + 6
==== Tabulátor ====
A tabulátor viselkedése a **Ctrl + M** billentyűkombinációval állítható:
* Ctrl + M
A VSCode-ban a Tab billentyű hatására a szerkesztőben beszúr egy tabulátor a kódba.
A Ctrl+M hatására ez a viselkedés megváltozik és a szerkesztő felületén ugrál
a VSCode UI elemein. Ha újból megnyomjuk visszakapcsol az eredeti állapotba.
==== Automatikus kiegészítés ====
Ha kivétel kezelés szükséges, a sorra állok, majd:
* Ctrl + .
De ha az egeret sorra viszem és kattintok a Quick fix-re, az is jó.
==== Java fájlok létrehozása ====
Az oldalsávon Java Projekt alatt jobb egér, osztály létrehozása.
===== Project Template =====
Telepítsük a következő bővítményt:
* Project Templates
Készítsük el a template-nek szánt projektet.
Az oldalsávon jobb egér gomb, ahol elmenthetjük az új sablont, vagy használhatjuk a már mentett sablont:
* Save Project as Template
* Create Project from Template
==== A templatek helye ====
* $HOME/.config/Code/User/ProjectTemplates # Linux
* $HOME/Library/Application Support/Code/User/ProjectTemplates # macOS
* %APPDATA%\Code\User\ProjectTemplates # Windows
==== Bővítmény webhely ====
* https://marketplace.visualstudio.com/items?itemName=cantonios.project-templates
===== Template Generátor =====
Fájlok vagy könyvtárak template-ként használhatók.
A **{homedir}/.vscode/templates** könyvtárba tesszük azokat a fájlokat és
könyvtárakat, amiket sablonként szeretnénk használni.
Jelöljük meg az explolerben milyen könyvtárban szeretnénk a fájl létrehozni.
A template kiválasztása:
* jobb egér gomb a könyvtáron
* F1 parancs panel: Files: New File from Template
Ezt követően megjelennek a {homedir}/.vscode/templates könyvtárban található fájlok. Válasszunk.
Rákérdez milyen fájlba szeretnénk tenni, és kész.
===== Java snippets =====
* cl - class Valami { }
* ctor - konstruktor - public Valami() { }
* method - metódus - public void name() { }
* fori - for (int i = 0; i < array.length; i++) { }
* foreach - for (iterable_type iterable_element : iterable) { }
* if
* ifelse
* new - új objektum példány
===== Felhasználói snippets =====
* File > Preferences > User Snippets
Három lehetőségünk van:
* Globális snippets létrehozása
* Projekt számára snippets létrehozása
* Adott nyelvhez snippets létrehozása
Válasszuk ki kívánt lehetőséget.
"console.log": {
"prefix": "log",
"body": [
"console.log('$1');",
"$2"
],
"description": "console.log beszúrása"
}
===== Lorem ipsum =====
Megadhatjuk hány szóból álljon a kitöltő szöveg:
lorem10
lorem50
===== REST API kliens =====
Bővítmény:
* Thunder Client
===== A bin könyvtár törlés =====
A bin könyvtár törlése váratlan problémákat okozhat.
A kód nem fordul automatikusan újra. Megoldás:
* F1 > Clean the java language server workspace
===== SQLite3 =====
Bővítmény neve:
* SQLite3 Editor
Az oldalsávon megjelenít egy SQLITE3 EDITOR TABLES nézetet.
===== Diagram rajzoló =====
Bővítmény:
* Draw.io Integration
* This unofficial extension integrates Draw.io into VS Co...
* Henning Dieterichs
Készítsünk egy valami.drawio kiterjesztésű fájlt. Elindul a diagram rajzoló.
===== Git verziókövető =====
Ha a VSCode segítségével megnyitott könyvtár egyik szülő könyvtára már tartalmaz Git tárolót, akkor figyelmeztetést kapunk:
{{:oktatas:programozas:java:java_fejlesztoi_koernyezet_kialakitasa:vscode_git_perent_dir.png?400|}}
===== Java Inlay Hints =====
A VSCode egy függvény hívásakor utal a paraméterekre. Ez néha zavaró lehet.
Triangle.calcArea(/* base: */ 30, /* height */ 35);
Beállítás:
* Setting > Java Inlay Hints
Beállítási lehetőségek:
* none
* literals - változók esetén nem hivatkozik
* all - változók és literálisok esetén is hivatkozik
===== Konfiguráció =====
Konfiguráció létrehozása:
* Run > Add configuration...
Ha nincs megnyitva Java fájl, akkor még ki kell választani a "Java" lehetőséget.
Létrejön:
.vscode/launch.json
Alapértelmezetten két konfiguráció jön létre:
* Current File
* App
A Current File és más konfiguráció futtatása:
* Akciósáv > "Run and Debug"
A lejátszógomb mellett, legördülő listadobozból kiválaszthatjuk a kívánt konfigurációt.
===== A File Utils bővítmény =====
Szokták még ajánlani a **File Utils** nevű bővítményt "Steffen Leistner"-től.
* File Utils
===== Link =====
* https://code.visualstudio.com/docs/java/java-tutorial (2022)
* https://code.visualstudio.com/docs/java/java-project (2022)