﻿;-- TIME_STAMP   2019-01-23 23:47:37   v 0.2

#include "SciTE_Interface.au3"

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
_CW("> SciTE_Interface" & @TAB & "_GetCurrentFile()")
_CW("--> _GetCurrentFile() = " & _GetCurrentFile())
_CW("> SciTE_Interface" & @TAB & "_GetLineCount()")
_CW("--> _GetLineCount()   = " & _GetLineCount() & @LF)
Sleep(1000)

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
_CW("> SciTE_Interface" & @TAB & "_GetProperty('test.file')")
_CW("--> test.file         = " & _GetProperty("test.file"))
_CW("> SciTE_Interface" & @TAB & "_SetProperty('test.file', 'm:\Ü.txt')")
_SetProperty('test.file', 'm:\Ü.txt')
_CW("--> test.file         = " & _GetProperty("test.file"))
_CW("> SciTE_Interface" & @TAB & "_SetProperty('test.file', '')")
_SetProperty('test.file', '')
_CW("> SciTE_Interface" & @TAB & "_ReloadProperties()")
_ReloadProperties()
_CW("> SciTE_Interface" & @TAB & "_GetProperty('test.file')")
_CW("--> test.file         = " & _GetProperty("test.file") & @LF)

_CW("> SciTE_Interface" & @TAB & "_GetProperty('ext.lua.reset')")
_CW("--> ext.lua.reset     = " & _GetProperty("ext.lua.reset") & @LF)
_CW("> SciTE_Interface" & @TAB & "_GetProperty('code.page')")
_CW("--> code.page         = " & _GetProperty("code.page"))
_CW("> SciTE_Interface" & @TAB & "_GetProperty('output.code.page')")
_CW("--> output.code.page  = " & _GetProperty("output.code.page") & @LF)
Sleep(2000)

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; == SUCHWÖRTER ==
_CW("> SciTE_Interface" & @TAB & "_FindString()" & @LF & _
	"+-> Das Wort 'SUCHWÖRTER' oberhalb dieser Befehlszeile wird gesucht und markiert." & @LF)
_FindString("SUCHWÖRTER")
Sleep(2000)

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
_CW("> SciTE_Interface" & @TAB & "_GoToLineCol()" & @LF & _
	"+-> Cursor wird gesetzt auf Zei.41, Sp.20. Dort ist ein Wort - es wird selektiert." & @LF)
_GoToLineCol(41,20)
Sleep(2000)

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; == ERSETZEN ==
_CW("> SciTE_Interface" & @TAB & "_InsertValue()" & @LF & _
	"+-> Cursor wird erst gesetzt auf Zei.47, Sp.10. Das Wort 'ERSETZEN' wird selektiert und dann das Wort 'EINFÜGEWERT' eingesetzt." & @LF)
_GoToLineCol(47,10)
_InsertValue("EINFÜGEWERT")
Sleep(2000)

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
_CW("> SciTE_Interface" & @TAB & "_MenuCmd()" & @LF & _
	"+-> Es wird einen Tab nach links gewechselt und nach 2s wieder einen nach rechts." & @LF)
_MenuCmd($IDM_MOVETABLEFT)
Sleep(2000)
_MenuCmd($IDM_MOVETABRIGHT)
Sleep(2000)

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
_CW("> SciTE_Interface" & @TAB & "_GetCurrentTabNumber()" & @LF & _
	"+-> Gibt die Nummer des aktuell aktiven Tab im Editor zurück.")
Local $iCurrentTabNumber = _GetCurrentTabNumber()
_CW("--> $iCurrentTabNumber = " & $iCurrentTabNumber & @LF)
Sleep(2000)

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
_CW("> SciTE_Interface" & @TAB & "_FileOpen()" & @LF & _
	"+-> Es wird eine Datei in einen neuen Tab geladen.")
Local $sFileName = @ScriptDir & '\SciTE_Interface_Test_Ä.txt'
_CW("!-> $sFileName         = " & $sFileName)
If Not FileExists($sFileName) Then FileWrite($sFileName, 'ÄÖÜßäöü - Test')
_FileOpen($sFileName)
_CW("--> _GetCurrentFile()  = " & _GetCurrentFile() & @LF)
Sleep(2000)

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MsgBox(0, "SciTE_Interface", "_CloseCurrentFile()" & @LF & "+-> Die Datei wird jetzt geschlossen, Änderungen werden vorher gespeichert.", 3, WinGetHandle('[ACTIVE]'))
_MenuCmd($IDM_SAVE)
Sleep(1000)
_CloseCurrentFile()
Sleep(1000)
FileDelete($sFileName) ; Datei wieder löschen
Sleep(1000)

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
_SetCurrentTabNumber($iCurrentTabNumber)
$iCurrentTabNumber = _GetCurrentTabNumber()
_CW("+ $iCurrentTabNumber   = " & $iCurrentTabNumber & @LF)
Sleep(1000) ; Ohne das Sleep(1000) wird der folgende _OutputToConsole() vor dem _CW() in der Zeile darüber ausgegeben!!!

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; == Zeilenumbrüche lassen sich durch "\n" im String erzeugen (Tab mit "\t"), somit braucht der String nicht gesplittet werden um Makros einzufügen
_OutputToConsole('! ROT\n> BLAU\n- ORANGE\n< ORANGE\n+ GRÜN\n\n')

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Local $aType = ['dyn', 'local', 'user', 'base', 'embed'], $aColor = ['!', '-', '>', '+', '@']
For $i = 0 To 4 Step 1
	SendSciTE_Command('enumproperties:' & $aType[$i], 1)
	_CW($aColor[$i] & " $g_SciTECmd property:"&StringLeft($aType[$i] & "  ", 5)&" --> " & $g_SciTECmd)
Next

; Konvertiert den Text, damit Umlaute und Sonderzeichen in SciTE und in der Eingabeaufforderung korrekt dargestellt werden!
Func _CW($sText)
	If $sText Then ConsoleWrite(_WinAPI_WideCharToMultiByte(String($sText), 65001) & @CRLF) ; Ausgabe in UTF-8
EndFunc
