[[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 .. "" .. elem .. ">")
==== 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_tippekgeany_és_a_mate-terminal|Geany és Mate-terminal]]
* [[oktatas:linux:grafikus_feluelet:geany|Linux grafikus felüelt Geany]]