[[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)