Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:programok:scite

< Programok

Scite

  • Szerző: Sallai András
  • Copyright © Sallai András, 2011, 2012, 2013, 2014
  • Licenc: GNU Free Documentation License 1.3

Bevezetés

A Scite egy Scintilla alapú fejlesztői környezet, amelyet több programozási nyelv használatához készítettek. Egyszerű szövegszerkesztő felületet kapunk, de a beállítási lehetőségek bőséges tárházát kapjuk. Lua programozási nyelven saját scripteket is illeszthetünk a szerkesztőhöz.

Telepítés nélkül is használható, több platformos.

Scintilla

A Scintilla egy programozói komponens-gyűjtemény, amelyet fejlesztői eszközök létrehozására találtak ki.

Weblapja:

A weblapján a következőt olvashatjuk: „A free source code editing component for Win32 and GTK+”

Ezt úgy fordíthatnák: Szabad forráskódú szerkesztői komponens gyűjtemény Windows és GTK+ alapú felületek számára.

A Scintilla weblapján a menük egyik a Scite menüpont.

De közvetlen link:

Beszerzés

FreePascal, C, Java, C# és más fordítok számára fejlesztői környezet:

Scite magyarítás (és sok más nyelv):

A Scite használata

Egy fejlesztő eszköz, vagyis egy speciális szövegszerkesztő. Előnye a könnyen scriptelhetősége, beállíthatósága.

A Scite több programozási nyelvet is ismer. Hogy éppen milyen programozási nyelvet használunk azt a kiterjesztésből próbálja eldönteni. Ezért fordítás előtt mindenképpen menteni kell.

A Scite alapból használni képes azokat a fordítókat, amelyek útvonalba vannak. Ha egy fordító nincs útvonalba, és nem is tudjuk útvonalba tenni, akkor megmondhatjuk számára, hol található az adott fordító.

A Scite beállítási

A Scite program minden nyelvnek külön beállításállományt tart fenn, kivéve talán a C alapú nyelvek. Ezek a cpp.properties állományban találjuk. Ide tartozik a Java és a C# is.

  • fortran.properties
  • cpp.properties
  • pascal.properties
  • asm.properties
  • stb.

Ezeken kívül van két beállításfájl:

  • SciTEGlobal.properties
  • SciTEUser.properties

Ez utóbbiak felülírják az előzőeket, a User pedig felülírja a Global beállításokat.

Ezek az állományok elérhetők a Scite Beállítás menüjéből.

Magyar nyelv

A Scite elve több nyelvű, és magyar nyelvre is lefordították, de a magyar nyelvű csomagot alapból nem tartalmazza. A magyar nyelvű csomag azonban a weblapjáról letölthető.

A letöltés, kicsomagolás után az egyik konfigurációs állományba jelezni kell hova tettük a fordítást.

A következő sort kell beilleszteni:

locale.properties=locale.hu.properties

Persze itt azt feltételezem, hogy a locale.hu.properties állományt a Scite saját könyvtárába tetted.

A Scite beállítások szintaxisa

Szintaxis:

valtozonev = ertek

Bármely változónévre hivatkozok így:

$(valtozonev)

Vannak olyan változók, amelyekből kinyerhető a Scite aktuális útvonala:

$(SciteDefaultHome)

Ezt beilleszthetjük saját útvonalunkba. Ha készítettünk például a Scite könyvtárán belül egy „bin” könyvtárat, akkor így hivatkozhatok rá:

$(SciteDefaultHome)\bin

A C# fordító parancs például így kezdődik:

command.compile.*.cs=

Hogyan szeretnénk fordítani az egyenlőség jel után kell leírni.

Egy fordító parancs kompletten:

command.compile.*.cs=$(csharpc) /t:exe  $(FileNameExt) /r:system.dll,system.drawing.dll 

Futtatás például:

command.go.*.cs=cmd /C $(FileName) & pause

Ajánlott beállítások

Az alábbi beállításokhoz kattintsunk a következő helyre:

Options -> User Options 

Mentsük el, és indítsuk újra a Scite programot.

A beállítások között van négy olyan, amelyik egy másik állományra vagy programra hivatkozik. Ezeket a helyükre kell másolni, az adott beállítás csak akkor működik.

Windows

# Speciális beállítások Javahoz
toolbar.visible=1
position.left=150
position.top=22
position.width=1000
position.height=600
tabsize=4
use.tabs = 0
indent.size = 4
tab.indents = 1
indent.automatic=1
save.recent=1
line.margin.visible=1
clear.before.execute=0
magnification=4
output.magnification=4

autocompleteword.automatic=1

browser=firefox
#command.help.*.java=$(browser) https://szit.hu
command.help.*.java=$(browser) "file://$(SciteDefaultHome)\help\index.html

command.build.*.c=gcc -o $(FileName) $(FileNameExt)
command.go.subsystem.*.c=2
command.go.*.c=cmd /C $(FileName)
command.go.needs.*.c=gcc -o $(FileName) $(FileNameExt)

command.go.subsystem.*.java=2
command.go.*.java=cmd /C "java $(FileName)"
command.go.needs.*.java=javac $(FileNameExt)

command.name.0.*=Java alap 1
command.subsystem.0.*=3
command.0.*=dofile $(SciteDefaultHome)\lua\javamin.lua

command.name.1.*=Java alap 2
command.subsystem.1.*=3
command.1.*=dofile $(SciteDefaultHome)\lua\javamin2.lua

# Az astyle prancsot telepíteni kell, útvonalba kell helyezni.
command.name.2.*=AStyle
command.subsystem.2.*=0
command.2.*=$(SciteDefaultHome)\bin\astyle -b $(FileNameExt)
command.shortcut.2.*=Alt+a
command.save.before.2.*=1
command.is.filter.2.*=1
load.on.activate=1

#A Java számára külön rövidítések
abbreviations.*.java=java_abbrev.properties

# Windows alatt a Scite könyvtárába másoltam
locale.properties=locale.hu.properties

# UTF-8 =65001 lenne
code.page=0
output.code.page=0

Linux

position.left=150
position.top=22
position.width=1000
position.height=600
tabsize=4
use.tabs = 0
indent.size = 4
tab.indents = 1
indent.automatic=1
save.recent=1
line.margin.visible=1
clear.before.execute=0
magnification=4
output.magnification=4

autocompleteword.automatic=2

command.help.*.java=epiphany https://szit.hu

command.go.subsystem.*.java=1

command.go.*.class=java $(FileName)
command.go.needs.*.java=javac $(FileNameExt);

command.name.1.*=C alap
command.subsystem.1.*=3
command.1.*=dofile /home/andras/tervek/lua/elso/main.lua

# Az astyle prancsot telepíteni kell, útvonalba kell állítani.
command.name.2.*=AStyle
command.subsystem.2.*=0
command.2.*=astyle -b $(FileNameExt)
command.shortcut.2.*=Alt+a
command.save.before.2.*=1
command.is.filter.2.*=1
load.on.activate=1

#Rövidítések
abbreviations.*.java=/home/andras/.scite/java_abbrev.properties

# Ide másoltam: /usr/share/scite/locale.hu.properties
# Windows alatt a Scite könyvtárába kerül
locale.properties=locale.hu.properties

# UTF-8 =65001
code.page=65001
output.code.page=65001

Rövidítések

/home/andras/.scite/java_abbrev.properties

for=for(i = 0; i < 10; i++)
Sys=System.outprintln("

Írd be a Scite szerkesztőbe:

for

Nyomd le a következő billentyűkombinációt:

Ctrl+b

A forrást kiegészíti.

Dokumentáció:

Kiegészítéshez és tipekhez

api.*.java=$(SciteDefaultHome)\java160.api
api.*.cs=$(SciteDefaultHome)\cs.api

A tippek azok automatikusak ha zárójelet írunk. A kiegészítés Ctrl + Szóközzel vagy Ctrl + i -vel működik.

Írjuk be például: StringB majd nyomjunk Ctrl + szóközt.

Egyéb hasznos beállítás

Szelekció:

selection.alpha=75

Eseltleg:

selection.back=#333333
selection.fore=#000000

A Scite programozása Lua nyelven

Az alábbiakban egy egyszerű lua programot építünk a Scite programunkba, amely beszúr egy C alap forráskódot.

A User Options fájlba:

command.name.1.*=C alap
command.subsystem.1.*=3
command.1.*=dofile /home/andras/bin/beszur.lua

Windows alatt az utolsó sor:

command.1.*=dofile c:\bin\beszur.lua

Elkészítem Lua nyelven a forrást: /home/andras/bin/beszur.lua

-- C beszúrás
editor:append("#include <stdio.h>\n\nmain()\n{\n\t\tprintf(\"Helló\");\n}")

Ha készen van, nyissunk egy új fájlt, majd Eszközök menüben keressük meg a „C alap” nevű menüpontot és futtassuk (Vagy Ctrl+1.

A lua nyelvről:

A lua és a scite:

Tapasztalat

A SciTE alapból felismeri a FreePascal fordítót ha az útvonalban van, nem kell beállítani benne semmit. Elindítjuk és rögtön használható a freepascal fordító, a lefordított program is azonnal futtatható egy billentyűkombinációval, vagy két kattintással. A hibaüzeneteket alapból elfogja és oldalt egy keretben megjeleníti. FreePascal mellett ideális fejlesztőeszköz! Használata kényelmes fejlesztés tesz lehetővé Pascal nyelven.

Scite-debug

Parancssori ékezetek

Windows alatt a parancssor felülete más kódrendszerű mint a grafikus felület. Ez ékezetes problémákat okoz. Ezért be kell állítanunk a regisztriben 852 kódlap helyett az 1250-est.

Kódlap beállítása:

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\
OEMCP=1250

Scite beállítása FreeBASIC-hez

A következő sorokat másoljuk a Beállítások → User Options vagy Beállítások → Global Options részbe

#Basic beállítások
command.go.*.bas=cmd /c $(FileName)
command.go.subsystem.*.bas=0
command.build.*.bas="c:\FreeBASIC\fbc" $(FileName).bas

AStyle

A astyle program beállítása:

command.name.2.*=AStyle
command.subsystem.2.*=0
command.2.*=/usr/bin/astyle --style=allman  --indent=tab $(FileNameExt)
command.shortcut.2.*=Alt+a
command.save.before.2.*=1
command.is.filter.2.*=1
load.on.activate=1

Ebből lényeges ez a sor, az a style program paraméterezése:

command.2.*=/usr/bin/astyle --style=allman --indent-switches --indent=tab $(FileNameExt)

Esetleg:

astyle -b $(FileNameExt) --style=linux --indent-namespaces --indent-switches

URL megnyitása

Egy fájlban a kijelölt URL-t automatikusan meg tudjuk nyitni.

Beállításokhoz:

command.name.1.*=Open URL in Browser
command.1.*=open_url
command.subsystem.1.*=3
command.mode.1.*=savebefore:no
command.shortcut.1.*=Ctrl+F1'

Beállítások → Indításkor futtatandó Lua script:

-- opens URL via selection or by checking text under cursor
-- Kein-Hong Man <khman@users.sf.net> Public Domain 2008
-- * execute call is non-Win32! tested on Ubuntu 6.10
-- * URL delimited by ", ' or whitespace
-- * does nothing about text encoding!
function open_url()
  local string = string
  local function charat(s, p) return string.sub(s, p, p) end
  local function delim(c) return string.match(c, "[\"'%s]") end
  -- if there is a selection, use exactly, else analyze
  local txt = editor:GetSelText()
  if #txt == 0 then
    -- get details of current line, position
    local p1 = editor.CurrentPos
    local ln = editor:LineFromPosition(p1)
    txt = editor:GetLine(ln)
    if not txt then return end
    local p2 = editor:PositionFromLine(ln)
    p1 = p1 - p2 + 1; p2 = p1
    -- extend text segment to left
    while p1 > 1 do
      if delim(charat(txt, p1 - 1)) then break end
      p1 = p1 - 1
    end
    -- extend text segment to right
    while p2 <= #txt do
      if delim(charat(txt, p2)) then break end
      p2 = p2 + 1
    end
    -- exit if nothing matched
    if p1 == p2 then return end
    txt = string.sub(txt, p1, p2 - 1)
  else
    -- trim extraneous whitespace
    txt = string.gsub(txt, "^%s*(.-)%s*$", "%1")
    -- fail on embedded whitespace
    if string.match(txt, "%s") then return end
  end
  if string.match(txt, "^http://.+") or
     string.match(txt, "^ftp://.+") or
     string.match(txt, "^www%..+") then
    --print("URL='"..txt.."'") --DEBUG
    os.execute("x-www-browser "..txt.." &")
  end
end

Forrás: http://lua-users.org/wiki/SciteOpenUrl

XML tagek kiegészítése

Csak másoljuk ide: Beállítások → Indításkor futtatandó Lua script:

function OnChar(c)
	local nLexer = editor.Lexer
	if nLexer ~= 4 and nLexer ~= 5 then return false end
 
	-- tag completion
	if c == ">" then
		local pEnd = editor.CurrentPos - 1
		if pEnd < 1 then return false end
		local nStyle = editor.StyleAt[pEnd - 1]
		if nStyle > 8 then return false end
		local nLastChar = editor.CharAt[pEnd - 1]
		if nStyle == 6 and nLastChar ~= 34 then return false end
		if nStyle == 7 and nLastChar ~= 39 then return false end
		if nLastChar == 47 or nLastChar == 37 or nLastChar == 60 or nLastChar == 63 then return false end
		local pStart = pEnd
		repeat
			pStart = pStart - 1
			if (editor.CharAt[pStart] == 32) then
				pEnd = pStart
			end
		until editor.CharAt[pStart] == 60 or pStart == 0
		if editor.CharAt[pStart + 1] == 47 then return false end
		if pStart == 0 and editor.CharAt[pStart] ~= 60 then return false end
		local tag = editor:textrange(pStart + 1, pEnd)
		editor:InsertText(editor.CurrentPos, "</" .. tag .. ">")
	end
 
	-- attribute quotes
	if c == "=" then
		local nStyle = editor.StyleAt[editor.CurrentPos - 2]
		if nStyle == 3 or nStyle == 4 then
			editor:InsertText(editor.CurrentPos, "\"\"")
			editor:GotoPos(editor.CurrentPos + 1)
		end
	end
 
	return false
end

Vagy csak írjuk a beállításokhoz:

xml.auto.close.tags=1

HTML tagek kiegészítése

Ez abban különbözik az XML kiegészítőtől, hogy nem csinálja meg a kiegészítést br, meta, link és hr tagek esetén.

-- Eredeti verzió: XML tagek átírása
-- Átírta: Sallai András
-- HTML tagek kegeszitese:
function OnChar(c)
	local nLexer = editor.Lexer
	if nLexer ~= 4 and nLexer ~= 5 then return false end
 
	-- tag completion
	if c == ">" then
		local pEnd = editor.CurrentPos - 1
		if pEnd < 1 then return false end
		local nStyle = editor.StyleAt[pEnd - 1]
		if nStyle > 8 then return false end
		local nLastChar = editor.CharAt[pEnd - 1]
		if nStyle == 6 and nLastChar ~= 34 then return false end
		if nStyle == 7 and nLastChar ~= 39 then return false end
		if nLastChar == 47 or nLastChar == 37 or nLastChar == 60 or nLastChar == 63 then return false end
		local pStart = pEnd
		repeat
			pStart = pStart - 1
			if (editor.CharAt[pStart] == 32) then
				pEnd = pStart
			end
		until editor.CharAt[pStart] == 60 or pStart == 0
		if editor.CharAt[pStart + 1] == 47 then return false end
		if pStart == 0 and editor.CharAt[pStart] ~= 60 then return false end
		local tag = editor:textrange(pStart + 1, pEnd)
		if tag ~= "br" and tag ~= "meta" and tag ~="hr" and tag ~= "link" and tag ~= "img" then
			editor:InsertText(editor.CurrentPos, "</" .. tag .. ">")
		end
	end
 
	-- attribute quotes
	if c == "=" then
		local nStyle = editor.StyleAt[editor.CurrentPos - 2]
		if nStyle == 3 or nStyle == 4 then
			editor:InsertText(editor.CurrentPos, "\"\"")
			editor:GotoPos(editor.CurrentPos + 1)
		end
	end
 
	return false
end

Linkek

oktatas/programozas/programok/scite.txt · Utolsó módosítás: 2024/01/11 10:09 szerkesztette: admin