;
; Builds AutoIt3 Editor Syntax files
;
FileChangeDir(@ScriptDir) ; As the build scripts have a habit of changing the working directory.
#Region Includes
#include "include\MiscLib.au3"
#include "include\OutputLib.au3"
#include "include\SettingsLib.au3"
#EndRegion Includes
#Region Global Variables
; The name of the project.
Global Const $g_sProjectLang = "english"
Global Const $g_sProject = "syntaxfiles"
Global Const $g_sProjectDir = "docs\autoit\" & $g_sProjectLang & "\txt2htm"
#EndRegion Global Variables
#Region Main body of code
Global $g_nExitCode = _Main()
Exit $g_nExitCode
#EndRegion Main body of code
#Region _Main()
; ===================================================================
; _Main()
;
; The main function responsible for generating the syntax files.
; Parameters:
; None.
; Returns:
; 0 on success, non-zero on failure.
; ===================================================================
Func _Main()
; Create the output window and initial message.
_OutputWindowCreate()
_OutputProgressWrite("==== Output for " & StringTrimRight(@ScriptName, StringLen(".exe")) & " (" & $g_sProject & ") ====" & @CRLF)
_OutputProgressWrite("Generating syntax files." & @CRLF)
; Set the build directory based on the rules and the INI file value.
Local $sBuildDir = _SettingBuildDir()
Local Const $sSyntaxFiles = $sBuildDir & "\" & $g_sProjectDir & "\" & $g_sProject
; Generate macros.htm.
_OutputBuildWrite("Creating macros.htm file" & @CRLF)
RunWait('"' & @AutoItExe & '" "' & $sBuildDir & '\docs\autoit\english\Gen_Macros.au3"')
; Syntax files lists
_OutputProgressWrite("Syntax files creation...")
_OutputBuildWrite("Creating syntax files" & @CRLF)
RunWait('"' & @AutoItExe & '" "' & $sSyntaxFiles & '\gen_lists.au3"')
_OutputProgressWrite("Complete." & @CRLF)
Local Enum $eEditor_Project, $eEditor_FileName
Local $aEditorFiles = [["Crimson", "autoit3.key"], _ ; Project, Project filename.
["Notepad++", "autoit.xml"], _
["PSPad", "AutoIt3.def"], _
["Sublime Text", "AutoIt.tmLanguage"], _
["Textpad", "autoit_v3.syn"]]
For $i = 0 To UBound($aEditorFiles) - 1
_OutputProgressWrite($aEditorFiles[$i][$eEditor_Project] & " creation...")
_OutputBuildWrite("Creating " & $aEditorFiles[$i][$eEditor_FileName] & " file" & @CRLF)
RunWait('"' & @AutoItExe & '" "' & $sSyntaxFiles & '\' & $aEditorFiles[$i][$eEditor_Project] & '\gen_syntax.au3"')
If FileMove($sSyntaxFiles & "\" & $aEditorFiles[$i][$eEditor_Project] & "\" & $aEditorFiles[$i][$eEditor_FileName], _
$sBuildDir & "\install\Extras\Editors\" & $aEditorFiles[$i][$eEditor_Project] & "\" & $aEditorFiles[$i][$eEditor_FileName], $FC_OVERWRITE_CREATE) Then
_OutputProgressWrite("Complete." & @CRLF)
Else
_OutputProgressWrite("Error. It appears an error occurred moving the syntax files for " & $aEditorFiles[$i][$eEditor_Project] & @CRLF)
EndIf
Next
; Move AutoIt3.ini for PSPad as well. This is a quick workaround.
FileMove($sSyntaxFiles & "\PSPad\AutoIt3.ini", $sBuildDir & "\install\Extras\Editors\PSPad\AutoIt3.ini", $FC_OVERWRITE_CREATE)
; Create the autoit.php file for GeSHi.
_OutputProgressWrite("GeSHi creation...")
_OutputBuildWrite("Creating autoit.php file" & @CRLF)
RunWait('"' & @AutoItExe & '" "' & $sSyntaxFiles & '\Geshi\gen_syntax.au3"')
If FileMove($sSyntaxFiles & "\Geshi\autoit.php", $sBuildDir & "\install\Extras\Geshi\autoit.php", $FC_OVERWRITE_CREATE) Then
_OutputProgressWrite("Complete." & @CRLF)
Else
_OutputProgressWrite("Error. It appears an error occurred moving the syntax files for " & $aEditorFiles[$i][$eEditor_Project] & @CRLF)
EndIf
; Write closing message and wait for close (if applicable).
_OutputProgressWrite("Finished." & @CRLF & @CRLF) ; Two CRLF's in case of chained output.
_OutputWaitClosed()
Return 0
EndFunc ;==>_Main
#EndRegion _Main()