[[oktatas:programozás:programok|< Programok]] ====== Geany ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2014, 2015, 2018, 2020, 2021 * Licenc: GNU Free Documentation License 1.3 * Web: https://szit.hu ===== A Geanyről ===== A Geany egy több platformos, gyors, sok szolgáltatással bíró, több nyelvű fejlesztőeszköz. A legújabb Geany telepíthető webhelyéről: * https://geany.org Debian GNU/Linux alatt használhatjuk az apt parancsot: apt install geany Bővítmények telepítés: apt install geany-plugin* ===== Billentyűkombinációk ===== A teljesség igénye nélkül a leghasznosabb billentyűkombinációk gyűjteménye. | Ctrl + E | Egy sor megjegyzésbe | | Ctrl + M | Sor megjelölése | | Ctrl + . | Ugrás a következő megjelölt sorhoz | | Ctrl + , | Ugrás az előző megjelölt sorhoz | | Ctrl + H | Csere | | Ctrl + I | Behúzás növelése | | Ctrl + U | Behúzás csökkentése | | Ctrl + Shift + M | A kurzor "alatti" szó és azzal azonos szavak megjelölése | ===== snippets ===== A snippets-ek lehetővé teszik, hogy egy rövid kulcsszó beírása után, a Tabulátor gomb megnyomására beíródjon egy komplett kódsor. A snippets a fájl kiterjesztéséből tudja, hogy milyen snippet-t kell használnia, vagyis előbb szükség van egy mentett állományra a működéshez. A snippets beállítások a következő helyen találhatók: * Eszközök > Konfigurációs fájlok > snippets.conf Kiegészítések a snippets beállításokhoz: [Java] sout=System.out.println("%cursor%"); serr=System.err.println("%cursor%"); cl=class Névtelen {\n\tpublic static void main(String[] args) {\n\t\t%cursor%\n\t}\n} sc=Scanner scanner = new Scanner(%cursor%); is=import java.util.Scanner; [Javascript] con=console.log(%cursor%); [HTML] html=\n\n\n\t\n\t\n\n\n\t

%cursor%

\n\t

\n\n\n\n link= sc=
A rövidítést az egyenlőségjel előtt adjuk meg, utána pedig mit szeretnénk a rövidítésre a forráskódba írni. A %cursor% mintával megadható, hol legyen a kurzor a beillesztés után. A rövidítés használata a "Tab" billentyűvel lehetséges. Írjuk be a rövidítést, majd nyomjuk meg a tabulátor billentyűt. A következő linken weboldalak készítéséhez találunk kibővített snippeteket: * https://gist.github.com/marcusti/98160/0596b9d8697949b391340986b8c548e081ed3823 ===== Kódformázás ===== ==== AStyle ==== Az AStyle használható pluginként és külső parancsként is. Külső parancsként egyszerűen vegyük fel: * Szerkesztés -> Formázás -> A kijelölés küldése -> Egyedi parancsok megadása === Linux === A következőkben áttekintjük az AStyle kódformázó beüzemelését Linux alatt. Telepítsük a szükséges eszközöket: apt install geany make g++ pkgconf libgtk2.0-dev Le kell töltenünk a Geanyhez az geany-astyle plugint. Egyszerű is lenne, ha nem forrásban kapnák a Linuxhoz a plugint. A plugin beszerzése: * https://launchpad.net/geany-astyle A fenti linken Windows bináris szerezhető be. Linuxhoz a forrást kell használnunk. A pluginhez szükségünk van az astyle forrására (ez nem a plugin). Ez is beszerezhető a weboldaláról: * http://astyle.sourceforge.net/ Ha beszereztük az AStyle forrását csomagoljuk, majd jöhet a fordítás. Az AStyle kódformázó fordítása: cd astyle/src cp ../build/gcc/Makefile ./ make shared Az astyle/src/bin könyvtárban megtaláljuk a kész libastyle.so fájlt. Ezt másoljuk a /usr/lib könyvtárba. cp bin/libastyle.so.3.1.0 /usr/local/lib A verziószám eltérhet a fentiektől. Készítsünk egy szimbolikus linket, ugyanazon néven, de a verzió ne tartalmazza: cd /usr/local/lib ln -s libastyle.so.3.1.0 libastyle.so.3 Ez után lefordíthatjuk a plugint. Lépjünk be a plugin könyvtárába: cd astyle-plugin-src-0.2.1/src Készítsünk Makefile-t vagy csak egyszerűen írjuk be: gcc main.c -O2 -fPIC `pkg-config --cflags geany` \ -lastyle -shared `pkg-config --libs geany` -o "astyle_plugin.so" Elkészült az astyle_plugin.so fájl, amit be kell másolnunk a Geany plugin könyvtárába. cp astyle_plugin.so ~/.config/geany/plugins/ Megjegyzés: A libastyle.so fájl fordítás nélkül, csomagból is telepíthető, de használatához szükséges egy szimbolikus link: apt install libastyle-dev ln -s /usr/lib/x86_64-linux-gnu/libastyle.so /usr/local/lib/libastyle.so.3 === Windows === Windowsra nem szükséges a fordítás, mert van bináris fordítva a plugin weboldalán: * https://launchpad.net/geany-astyle Töltsük le a Windowsos plugint, majd másoljuk libastyle.dll és az astyle_plugin.dll fájlokat például a Geany könyvtárába: * libastyle.dll -> C:/Programs/Geany/bin * atyle_plugin.dll -> C:/Programs/Geany/lib) === Használat === Az AStyle plugin alapértelmezetten nincs bekapcsolva. A következő helyen tudjuk aktiválni: * Eszközök -> Bövítménykezelő Az előugró ablakban kattintsunk az AStyle jelölőnégyzetére. Bekapcsolás után az Eszközök menüben egy új menüpont jelenik meg: AStyle. Ha szeretnénk használni, csak egyszerűen kattintani kell. ===== Témaváltás ===== A geany könyvtárban a filedefs alkönyvtárat nevezzük át például filedefs_eredeti névre, vagy mentsük el valahova. Töltsük le a kívánt témát, majd másoljuk az eredeti filedefs helyére a téma filedefs könyvtárát. * https://github.com/joelhy/geany-vibrant-ink-theme Másik lehetőség: Színsémákat innen tölthetünk le: * https://github.com/geany/geany-themes A projekt colorschemes könyvtárából másoljuk a .conf kiterjesztésű fájlokat a colorschemes könyvtárba. Linux ez: ~/.config/geany/colorschemes A színséma ezek után a következő menüből választható: * Nézet -> Színsablon cseréje ... ===== Sablonok készítése ===== ==== A sablonok helye ==== A sablonok a következő helyen érhetők el: Fájl -> Új (Sablonból) -> Egy új sablonnal kezdeményezhetünk egy adott nyelven egy Helló Világ nevű programot. Magunk is készíthetünk sablonokat. Készítsük el a kívánt sablont egy egyszerű szöveges fájl formájában. Mentsük, illetve másoljuk a geany könyvtár templates/files alkönyvtárába. Linux alatt a felhasználók a következő helyen találják: ~/.config/geany/templates/files/ W7 alatt egy joska nevű felhasználó esetén: c:\users\joska\AppData\Roaming\geany\templates\files\ Figyeljünk arra, hogy az AppData egy rejtett könyvtár. XP alatt egy joska nevű felhasználó esetén: c:\Documents and Settings\joska\Application Data\geany\templates\files\ ==== Java Swing sablon ==== import javax.swing.JFrame; class Program01 extends JFrame { Program01() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 300); centerWindow(this); setVisible(true); } public static void centerWindow(java.awt.Window frame) { java.awt.Dimension dimension = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); int x = (int) ((dimension.getWidth() - frame.getWidth()) / 2); int y = (int) ((dimension.getHeight() - frame.getHeight()) / 2); frame.setLocation(x, y); } public static void main(String[] args) { new Program01(); } } ===== Tags fájlok ===== A tags fájlok lehetővé teszik az ismert osztályok, metódusok, stb. kiemelését, kiegészítését. Tags fájlok letölthetők például a következő helyről: * http://wiki.geany.org/tags/start Néhány nyelvhez felelhető tags fájl generátor is. Például Java nyelvhez: * http://download.geany.org/contrib/tags/ W7 alatt a következő helyre kell másolni: c:\Users\User\AppData\Roaming\Geany\tags\ ==== Kézzel írt tag fájlok ==== Például JavaScripthez: console.log() console.info() document.getElementById() document.getElementsByTagName() document.getElementsByClassName() document.write() alert() prompt() confirm() ===== Lua script ===== A Geany lua nyelven scriptelhető. A Lua scriptekhez nem kell telepítve legyen lua az operációs rendszeren, de szükség van a geany-plugin-lua pluginre. Debian alatt telepítés: apt install geany-plugin-lua A Lua scripteket viszont engedélyezni kell a következő helyen: * Eszközök -> Bővítménykezelő A bővítmény oszlopban keressük ki a "Lua Script" sort, majd az "Aktív" oszlopban jelöljük be a jelölőnégyzetet. Windows esetén töltsük le a kiegészítő bővítményeket: * https://geany.org/download/releases/ ==== Scriptek helye ==== Linux alatt a scripteket a következő helyre kell tenni: ~/.config/geany/plugins/geanylua/ Windowson: c:\Users\janos\AppData\Roaming\geany\plugins\geanylua\ A plugins/geanylua könyvtárak, ha nem léteznek, hozzuk létre őket: mkdir -p ~/.config/geany/plugins/geanylua/ Windowson: mkdir c:\Users\janos\AppData\Roaming\geany\plugins\geanylua\ ==== Scriptek indítása ==== A scripteket indíthatjuk menüből vagy billentyűkombinációval. A billentyűkombinációk két módon indíthatók: * hotkeys.cfg fájlból * a script első sorába írjuk a billentyűkombinációt === hotkeys.cfg === Írjuk a script útvonalát, névvel együtt hotkeys.cfg fájlba. A script útvonala lehet abszolút, vagy relatív a /plugins/geanylua/ könyvtárhoz képest. scriptneve === A script első sora === Elavult verzió, ha a script első sorába írjuk a billentyűkombinációt. -- @ACCEL@ j ==== Beszúrás a szerkesztőbe ==== Készítsük el például a oraKezd.lua állományt: mcedit ~/.config/geany/plugins/geanylua/oraKezd.lua -- @ACCEL@ j geany.selection("\n====================\n\n") geany.selection(os.date("%Y-%m-%d")) geany.selection("\n\nÓra:\nTéma:\nHiányzók: \nDolgozat: \n\n"); Megjegyzés: Ügyeljünk arra, hogy az -- @ACCEL@ kezdetű sor előtt nem lehet üres sor. Ez a script mindig beszúr 20 egyenlőségjelet, majd a dátumot és még négy sor szöveget a szerkesztőbe. A script elején billentyűkombinációt is megadtam a scriptben, így az indítható a Ctrl+Shift+j billentyűkombinációval, vagy Eszközök menü, "Lua Scripts" menüpont alatt. ==== HTML wrapper ==== -- @ACCEL@ w sor = geany.selection() elem = geany.input("Elem neve:") geany.selection("<" .. elem .. ">" .. sor .. "") ==== Kapcsolódó linkek ==== * https://plugins.geany.org/geanylua/geanylua-index.html * https://plugins.geany.org/geanylua/geanylua-ref.html * http://plugins.geany.org/geanylua/geanylua-intro.html * http://www.lua.org/manual/5.1/manual.html ===== Böngésző frissítése távolról ===== Ha a böngészőben meg van nyitva egy weblap, amelyet szerkesztünk, szeretnénk a mentés pillanatában frissíteni a weblapot. Ezt egy Lua scripttel fogjuk megvalósítani Linux alatt. Linux alatt a xdotool programot használjuk. Ha van ilyen program Windowsra, akkor ott is megvalósítható. Google Chrome ablak frissítése parancssorból: xdotool search --onlyvisible --class chrome windowfocus key ctrl+r Vivaldi ablak frissítése parancssorból: xdotool search --onlyvisible --class chrome windowfocus key ctrl+r Egy Lua scriptben is végrehajtható: geany.launch("/usr/bin/xdotool", "search", "--onlyvisible", "--class", "chrome", "windowfocus", "key", "ctrl+r") Előbb mentsük a dokumentumot: geany.save() geany.launch("/usr/bin/xdotool", "search", "--onlyvisible", "--class", "chrome", "windowfocus", "key", "ctrl+r") Teljes script: -- @ACCEL@ h function contains(array, val) for i=1,#array do if array[i] == val then return true end end return false end exts = {".php", ".html"} actFileExt = geany.fileinfo().ext if contains(exts, actFileExt) then geany.save() geany.launch("/usr/bin/xdotool", "search", "--onlyvisible", "--class", "chrome", "windowfocus", "key", "ctrl+r") end A Script a ++ billentyűkombinációval indítható. A billentyű aktiválásához szükség van a Geany újraindításához. Ha a script utasításait változtatjuk, akkor nem szükséges az újraindítás. ===== HTML kódgenerátor ===== ==== Telepítés ==== * Töltse le a scriptet a geany/plugins/geanylua könyvtárba * Készítsen egy geany/plugins/geanylua/hotkeys.cfg fájlt * Tartalma: * emma.lua * Indítsa újra a Geany-t * Állítson billentyűkombinációt a scripthez: * Szerkesztés > Beállítások > Billentyű hozzárendelések * Keresse a Lua Script résznél: Emma * Lehetséges billentyűkombináció: Alt+q ==== Letöltés ==== * https://szit.hu/download/emma.lua ==== Használat ==== Ha Alt+q billentyűkombinációt állított be: ul>li*4 A beírt szavak után nyomja meg a Alt+q billentyűkombinációt. ===== Bővítmények ===== Debian GNU/Linux alatt telepíthető bővítményeket így tekinthetjük meg: apt search geany Windowsra a bővítményeket letölthetjük a Geany weblapjáról: * https://geany.org/download/releases/ Windows alatt bővítmények helye: c:\Users\janos\AppData\Roaming\geany\plugins\ Telepítővel a következő helyre kerülnek a bővítmények: c:\Program Files (x86)\Geany\lib\geany\ === Bővítmény aktiválása === A feltelepített bővítményeket aktiválni kell. * Eszközök > Bővítménykezelő Néhány ajánlás: * [✔] Ablak felosztása * [✔] Lipsum * [✔] Lua Script * [✔] Spell Check * [✔] TreeBrowser * [✔] Web helper * [✔] XML Snippets ===== Hasznos beállítása ===== Néhány hasznos beállítás: * Szerkesztés > Beállítások * Általános > Egyéb > "A projekt alapkönyvtárába mentse a projekt fájlt * Fájlok > Kódolások > "Alapértelmezett kódolás (új fájlok): Unicode (UTF-8) * Terminál > [✔] "Az aktuális fájl elérési útjának követése ===== Néhány megoldás Linuxon ===== * [[oktatas:linux:apró_debianos_tippek&#geany_és_a_mate-terminal|Geany és Mate-terminal]] * [[oktatas:linux:grafikus_feluelet:geany|Linux grafikus felüelt Geany]]