Jump to content

New SciTE4AutoIt3 available with SciTE v1.79


Jos
 Share

Recommended Posts

Jos, when I have time (and remember) I plan to go through the changelog for SciTE thoroughly to see what new features were added since the last version we used. I'll let you know if I see anything interesting.

Link to comment
Share on other sites

  • Replies 299
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

  • Moderators

Jos,

I agree with guinness about the usefulness of SciTEHopper. :huh2:

I have been using a very heavily modified version since I discovered it here and I have added it to the <Tools> menu (along with a bunch of other little utilities I have written to help me). I find it very handy for getting to specific functions/regions/anchors within longer scripts.

I know wakillon has been modifying the original a lot in the thread, but if you are interested I could let you see my version too. ;)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

  • Developers

As in navigate to that desired Function in your Script, sorry bad choice of words there. It makes large Scripts with many Functions that little bit easier to navigate through.

Ok understand.

I use the Ctrl+j / Ctr;+Shift+j a lot to jump to a FUNC but this is when you have it in your code and want to see the UDF details.

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

A tab may be closed by clicking on it with the middle mouse button.

"Straight_and_Crooked_Thinking" : A "classic guide to ferreting out untruths, half-truths, and other distortions of facts in political and social discussions."
"The Secrets of Quantum Physics" : New and excellent 2 part documentary on Quantum Physics by Jim Al-Khalili. (Dec 2014)

"Believing what you know ain't so" ...

Knock Knock ...
 

Link to comment
Share on other sites

  • Developers

Jos, when I have time (and remember) I plan to go through the changelog for SciTE thoroughly to see what new features were added since the last version we used. I'll let you know if I see anything interesting.

Sounds good. I went through it as well but was just curious to hear about the experience since people have been asking for it now for quite a while but I haven't seen anything shocking yet.

Had hoped the Job queue was "fixed" but that still seems to be the same.

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

A tab may be closed by clicking on it with the middle mouse button.

Not so useful if you're on a laptop :/ I for one miss closing tabs with a dbl click. Any way to get the functionality back or make it an option?

I guess SciteHopper is like Alt+L to list functions? I haven't looked at it, but if you wanna post your improved version, that would be cool.

Link to comment
Share on other sites

  • Moderators

wraithdu and guinness,

Not so sure about "improved" but it is significantly different from the original! ;)

I tried to make it as simple as possible (I like the KISS principle a lot) so it has no fancy bells or whistles and is in a fixed position on the screen. I also added a few additional bits like checking if "Match Whole Word" was selected in the SciTE search dialog - I found the search code does not work correctly if it is:

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****

#AutoIt3Wrapper_Icon=M:\Program\Au3 Scripts\SciTE Utils\Hopper\Hopper.ico
#AutoIt3Wrapper_Outfile=M:\Program\Au3 Scripts\SciTE Utils\Hopper\Hopper.exe
#AutoIt3Wrapper_Run_Obfuscator=y
#Obfuscator_Parameters=/sf /sv /om /cs=0 /cn=0

#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#Region ;**** Other Directives ****

;#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
;Opt("MustDeclareVars", 1)

#EndRegion ;**** Other Directives ****
; ##### SciTE Hopper #####
;
; Melba23
; Based on an original idea from Ashalshaikh
;
; Script Version: 1.0.0.0
;   As at 13 Oct 10
;
#Region    ; Includes

#include <GUIConstantsEx.au3>
#include <Array.au3>

#EndRegion ; Includes
#Region    ; Global Declarations

Global $sCurrFile, $iCurrSize, $iCurrAnchorIndex, $iLastAnchorIndex, $sCurrSearchText, $sLastSearchText
Global $hTreeView, $aAllAnchors[1][3] = [[0]], $fHopperState = True

#EndRegion ; Global Declarations
#Region    ; Check if SciTE or previous instance running

If Not ProcessExists("SciTE.exe") Then
    MsgBox(16, "Hopper Error", "SciTE needs to be running")
    Exit
EndIf

If WinExists("SciTE Hopper", "Hopper Running") Then Exit

#EndRegion ; Check if SciTE or previous instance running
#Region    ; Check for Match Whole Word selection

; Get SciTE handles
Global $hSciTE_Wnd = WinGetHandle("[CLASS:SciTEWindow]")
Global $hSciTE_DirWnd = WinGetHandle("DirectorExtension")

; Open Find dialog and check Whole Word checkbox
ControlFocus($hSciTE_Wnd, "", "[CLASS:Scintilla; INSTANCE:1]")
ControlSend($hSciTE_Wnd, "", "[CLASS:Scintilla; INSTANCE:1]", "^f")
WinWaitActive("Find")
If ControlCommand("Find", "", "[CLASS:Button; INSTANCE:1]", "IsChecked") Then
    ControlClick("Find", "", "[CLASS:Button; INSTANCE:12]")
    MsgBox(48, "Hopper Advisory", "'Match Whole Word Only' is selected" & @CRLF & @CRLF & "Hopper may not function correctly")
Else
    ControlClick("Find", "", "[CLASS:Button; INSTANCE:12]")
EndIf

#EndRegion ; Check for Match Whole Word selection
#Region    ; Create tray menu

Opt("TrayOnEventMode", 1) ; Use event trapping for tray menu
Opt("TrayMenuMode", 3) ; Default tray menu items will not be shown.

Global $hTray_Show_Item = TrayCreateItem("Hide")
TrayItemSetOnEvent(-1, "_Tray_Show")
TrayCreateItem("")
TrayCreateItem("Exit")
TrayItemSetOnEvent(-1, "_Exit")

TraySetState()

#EndRegion ; Create tray menu
#Region    ; Create GUI

; Create Hopper GUI
Global $hGUI = GUICreate("SciTE Hopper", 250, @DesktopHeight - 198, @DesktopWidth - 280, 10, -1, -1, WinGetHandle(AutoItWinGetTitle()))
GUISetBkColor(0xC4C4C4)

Global $mFile_Menu = GUICtrlCreateMenu("&File")
Global $mHide_Menu_Item = GUICtrlCreateMenuItem("&Hide", $mFile_Menu)
GUICtrlCreateMenuItem("", $mFile_Menu)
Global $hExit_Menu_Item = GUICtrlCreateMenuItem("&Exit", $mFile_Menu)
Global $mHelp_Menu = GUICtrlCreateMenu("&Help")
Global $hAbout_Menu_Item = GUICtrlCreateMenuItem("&About", $mHelp_Menu)

Global $hSearchInput = GUICtrlCreateInput("", 10, 10, 110, 20)
Global $hGoToAnchor = GUICtrlCreateButton("Go To Anchor", 10, 40, 110, 20)
Global $hReload = GUICtrlCreateButton("Reload", 130, 10, 110, 50)
Global $hInsert = GUICtrlCreateButton("Insert User Anchor", 10, @DesktopHeight - 300, 110, 20)
Global $hDelete = GUICtrlCreateButton("Delete User Anchor", 130, @DesktopHeight - 300, 110, 20)
Global $hLineInput = GUICtrlCreateInput("", 10, @DesktopHeight - 270, 110, 20)
Global $hGoToLine = GUICtrlCreateButton("Go To Line", 130, @DesktopHeight - 270, 110, 20)
Global $hStatus = GUICtrlCreateLabel("", 10, @DesktopHeight - 242, 230, 17, -1, 0x00000200) ; $WS_EX_CLIENTEDGE
GUICtrlSetBkColor(-1, 0xD4D4D4)

; Set hidden label for running check
GUICtrlCreateLabel("Hopper Running", -10, -10, 1, 1)

GUISetState(@SW_SHOW)

; Register WM_COMMAND to make $hLineInput number only
GUIRegisterMsg(0x0111, "_WM_COMMAND") ; $WM_COMMAND

#EndRegion ; Create GUI
#Region    ; Main Loop

; Start check timer and force instant update
Global $iCheckTime = TimerInit() - 500

While 1

    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE, $hExit_Menu_Item
            Exit
        Case $GUI_EVENT_MINIMIZE, $mHide_Menu_Item
            _HideGUI()
        Case $hReload
            _TreeViewFill()
        Case $hGoToAnchor
            _MoveToAnchor()
        Case $hGoToLine
            _SciTEGoToLine(GUICtrlRead($hLineInput))
        Case $hInsert
            _UserAnchorInsert()
        Case $hDelete
            _UserAnchorDelete()
        Case $hAbout_Menu_Item
            _About()
    EndSwitch

    ; Check for changes every 250ms
    If TimerDiff($iCheckTime) > 250 Then

        ; Check if current file has changed
        _CheckFile()
        ; Check search box
        _CheckSearch()
        ; Check for new selected anchor
        _CheckSelectedAnchor()
        ; Check SciTE state
        _CheckSciTE()
        ; Reset timer
        $iCheckTime = TimerInit()

    EndIf

WEnd

#EndRegion ; Main Loop
#Region    ; Check for changes

Func _CheckFile()

    ; Check name of current file
    Local $sFile = _GetFilePath()
    Switch @error
        Case 1, 2
            ; File does not exist so delete existing treeview
            GUICtrlDelete($hTreeView)
            Return
        Case 3
            ; File not yet saved so display empty treeview
            If $sCurrFile <> "Untitled" Then
                $sCurrFile = "Untitled"
                _TreeViewFill(1)
            EndIf
            Return
    EndSwitch

    ; Return if file has not changed
    If $sCurrFile = $sFile And $iCurrSize = FileGetSize($sFile) Then Return

    ; Reset file info
    $sCurrFile = $sFile
    $iCurrSize = FileGetSize($sFile)
    ; If empty file display empty treeview
    If $iCurrSize = 0 Then
        _TreeViewFill(1)
        Return
    EndIf
    ; Reload anchors
    _TreeViewFill()

EndFunc   ;==>_CheckFile

Func _CheckSearch()

    $sCurrSearchText = GUICtrlRead($hSearchInput)
    If StringLen($sCurrSearchText) > 1 And $sLastSearchText <> $sCurrSearchText Then
        ; List matching anchors
        _ListMatchingAnchors($sCurrSearchText)
        $sLastSearchText = $sCurrSearchText
    EndIf

EndFunc   ;==>_CheckSearch

Func _CheckSelectedAnchor()

    $iCurrAnchorIndex = _GetSelectedAnchorIndex()
    If Not @error And $iCurrAnchorIndex <> $iLastAnchorIndex Then
        ; Move to anchor
        _MoveToAnchor()
        $iLastAnchorIndex = $iCurrAnchorIndex
    EndIf

EndFunc   ;==>_CheckSelectedAnchor

Func _CheckSciTE()

    ; Match SciTE state
    If BitAND(WinGetState($hSciTE_Wnd), 16) Then
        If $fHopperState = True Then
            _HideGUI()
            $fHopperState = False
        EndIf
    Else
        If $fHopperState = False Then
            _ShowGUI()
            $fHopperState = True
        EndIf
    EndIf

    ; Exit if SciTE exits
    If Not ProcessExists("SciTE.exe") Then Exit

EndFunc   ;==>_CheckSciTE

#EndRegion ; Check for changes
#Region    ; TreeView Fill

Func _TreeViewFill($iEmpty = 0)

    ; Clear All Anchor List
    Global $aAllAnchors[1][3] = [[0, 0]]

    ; Delete existing treeview and recreate
    GUICtrlDelete($hTreeView)
    $hTreeView = GUICtrlCreateTreeView(10, 70, 230, @DesktopHeight - 380)
    GUICtrlSetBkColor($hTreeView, 0xE0FFE0)

    ; If only empty treeview required
    If $iEmpty Then Return

    ; Load file
    Local $aFileLines = _LoadFile($sCurrFile)
    If Not @error Then

        ; List all anchors in file
        _ListAllAnchors($aFileLines)
        ; If there are anchors
        If $aAllAnchors[0][0] Then

            ; Set status
            GUICtrlSetData($hStatus, "Checking file...please wait")
            ; Create required parent items
            Local $sFinalParent = ""
            If BitAND($aAllAnchors[0][1], 2) Then
                Local $hFuncItem = GUICtrlCreateTreeViewItem("Functions", $hTreeView)
                $sFinalParent = "Functions"
            EndIf
            If BitAND($aAllAnchors[0][1], 4) Then
                Local $hRegionItem = GUICtrlCreateTreeViewItem("Regions", $hTreeView)
                $sFinalParent = "Regions"
            EndIf
            If BitAND($aAllAnchors[0][1], 1) Then
                Local $hUserItem = GUICtrlCreateTreeViewItem("User Anchors", $hTreeView)
                $sFinalParent = "User Anchors"
            EndIf
            ; Fill treeview
            For $i = 1 To $aAllAnchors[0][0]
                Switch $aAllAnchors[$i][1]
                    Case 0
                        GUICtrlCreateTreeViewItem($aAllAnchors[$i][0], $hUserItem)
                    Case 1
                        GUICtrlCreateTreeViewItem($aAllAnchors[$i][0], $hFuncItem)
                    Case 2
                        GUICtrlCreateTreeViewItem($aAllAnchors[$i][0], $hRegionItem)
                EndSwitch
            Next

            ; Force last parent to show [+] if present
            GUICtrlSetState($hTreeView, $GUI_HIDE)
            ControlTreeView($hGUI, "", GUICtrlGetHandle($hTreeView), "Expand", $sFinalParent)
            ControlTreeView($hGUI, "", GUICtrlGetHandle($hTreeView), "Collapse", $sFinalParent)
            GUICtrlSetState($hTreeView, $GUI_SHOW)

            ; Re-enable User Anchor Insert button
            GUICtrlSetState($hInsert, $GUI_ENABLE)
            ; Clear Search input
            GUICtrlSetData($hSearchInput, "")
            ; Set status
            GUICtrlSetData($hStatus, "Anchors listed")

        EndIf
    EndIf

EndFunc   ;==>_TreeViewFill

#EndRegion ; TreeView Fill
#Region    ; Selected Anchor - Get Index & Move To

Func _GetSelectedAnchorIndex()

    ; Get current treeview selection
    Local $hCurrItem = GUICtrlRead($hTreeView)
    Local $sText = GUICtrlRead($hCurrItem, 1)
    Switch $sText
        Case "", "User", "Functions", "Regions", "Results" ; Section headings
            Return SetError(1, 0, -1)
        Case Else
            Return _ArraySearch($aAllAnchors, $sText)
    EndSwitch

EndFunc   ;==>_GetSelectedAnchorIndex

Func _MoveToAnchor()

    ; Clear search input
    GUICtrlSetData($hSearchInput, "")

    ; Determine anchor type
    Switch $aAllAnchors[$iCurrAnchorIndex][1]
        Case 0
            ; User anchor - add standard lead-in and trail-out
            _SciTEFind(";UserAnchor ------ " & $aAllAnchors[$iCurrAnchorIndex][0])
        Case 1
            ; Func declaration - recreate original line
            _SciTEFind("Func" & $aAllAnchors[$iCurrAnchorIndex][2] & $aAllAnchors[$iCurrAnchorIndex][0] & "(")
        Case 2
            ; Region declaration - recreate original line and add @CRLF
            _SciTEFind("#Region" & $aAllAnchors[$iCurrAnchorIndex][2] & $aAllAnchors[$iCurrAnchorIndex][0], "\r\n")
            ; Move up a line as the @CRLF takes us 1 line below
            ControlFocus($hSciTE_Wnd, "", "[CLASS:Scintilla; INSTANCE:1]")
            ControlSend($hSciTE_Wnd, "", "[CLASS:Scintilla; INSTANCE:1]", "{UP}")
    EndSwitch

EndFunc   ;==>_MoveToAnchor

#EndRegion ; Read & Move to Selected Anchor
#Region    ; User Anchor Functions

Func _UserAnchorInsert()

    ;UserAnchor ------ fred = test ------

    GUISetState(@SW_DISABLE, $hGUI)

    ; Create data input GUI
    Local $hAnchorSet_GUI = GUICreate("User Anchor Set", 300, 150, Default, Default, Default, Default, $hGUI)
    GUISetBkColor(0xC4C4C4)
    GUICtrlCreateLabel("Anchor Name:", 10, 10, 50, 15)
    Local $hAnchorSet_Name = GUICtrlCreateInput("", 10, 30, 280, 20)
    GUICtrlCreateLabel("Description:", 10, 60, 70, 15)
    Local $hAnchorSet_Description = GUICtrlCreateInput("", 10, 80, 280, 20)
    Local $hAnchorSet_Cancel = GUICtrlCreateButton("Cancel", 10, 110, 90, 30)
    Local $hAnchorSet_Insert = GUICtrlCreateButton("Insert", 110, 110, 180, 30)
    GUISetState(@SW_SHOW)

    While 1

        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE, $hAnchorSet_Cancel
                GUISetState(@SW_ENABLE, $hGUI)
                GUIDelete($hAnchorSet_GUI)
                Return
            Case $hAnchorSet_Insert
                Local $sName = GUICtrlRead($hAnchorSet_Name)
                ; Check name not already used
                For $i = 1 To $aAllAnchors[0][0]
                    If $aAllAnchors[$i][1] = 0 Then
                        Local $aSplit = StringSplit($aAllAnchors[$i][0], " = ", 1)
                        If $sName = StringStripWS($aSplit[1], 3) Then
                            MsgBox(48, "Error", "Anchor name already exists")
                            ExitLoop
                        EndIf
                    EndIf
                Next
                ; If name not used then continue
                If $i = $aAllAnchors[0][0] + 1 Then
                    Local $sData = $sName & " = " & GUICtrlRead($hAnchorSet_Description)
                    GUISetState(@SW_ENABLE, $hGUI)
                    GUIDelete($hAnchorSet_GUI)
                    ExitLoop
                EndIf
        EndSwitch

    WEnd

    ; Force cursor to margin
    _SciTECursorHome()
    ; Insert user anchor with blank lines above and below
    _SciTE_Send_Command(0, $hSciTE_DirWnd, "insert:\r\n;UserAnchor ------ " & StringReplace($sData, "\", "\\") & " ------\r\n\r\n")
    ; Save the file to force a reload
    _SciTESave()
    ; And return to it
    _SciTEFind(";UserAnchor ------ " & $sData)

EndFunc   ;==>_UserAnchorInsert

Func _UserAnchorDelete()

    ;UserAnchor ------ fred2 = test2 ------

    ; Check user anchor is selected
    If $aAllAnchors[$iCurrAnchorIndex][1] <> 0 Then Return
    ; Move to the correct line
    _MoveToAnchor()
    ; And delete it
    Send("{SHIFTDOWN}")
    Send("{DOWN}")
    Send("{DELETE}")
    Send("{SHIFTUP}")

    ; Save the file to force a reload
    _SciTESave()

EndFunc   ;==>_UserAnchorDelete

#EndRegion ; User Anchor Functions
#Region    ; List Anchors

Func _ListAllAnchors($aFileLines)

    Local $aFuncAnchors[1][3] = [[0]], $aRegionAnchors[1][3] = [[0]], $aUserAnchors[1][3] = [[0]]

    For $i = 1 To $aFileLines[0]

        ; Strip any leading whitespace
        Local $sLine = StringStripWS($aFileLines[$i], 1)
        ; Determine if line holds anchor
        If StringLeft($sLine, 5) = "Func " Then
            ; Func declaration
            Local $aSplit = StringSplit(StringTrimLeft(StringStripWS($sLine, 4), 5), "(")
            If $aSplit[0] >= 1 Then
                $aFuncAnchors[0][0] += 1
                ReDim $aFuncAnchors[$aFuncAnchors[0][0] + 1][3]
                ; Save name
                $aFuncAnchors[$aFuncAnchors[0][0]][0] = $aSplit[1]
                ; Save type
                $aFuncAnchors[$aFuncAnchors[0][0]][1] = 1
                ; Save space between Func and Name
                $aFuncAnchors[$aFuncAnchors[0][0]][2] = _Spacer($sLine, "Func", $aFuncAnchors[$aFuncAnchors[0][0]][0])
                ; Set flag
                $aAllAnchors[0][1] = BitOR($aAllAnchors[0][1], 2)
            EndIf

        ElseIf StringLeft($sLine, 8) = "#Region " Then
            ; #Region declaration
            $aRegionAnchors[0][0] += 1
            ReDim $aRegionAnchors[$aRegionAnchors[0][0] + 1][3]
            ; Save name
            $aRegionAnchors[$aRegionAnchors[0][0]][0] = StringStripWS(StringTrimLeft($sLine, 8), 1)
            ; Save type
            $aRegionAnchors[$aRegionAnchors[0][0]][1] = 2
            ; Save space between Region and Name
            $aRegionAnchors[$aRegionAnchors[0][0]][2] = _Spacer($sLine, "#Region", $aRegionAnchors[$aRegionAnchors[0][0]][0])
            ; Set flag
            $aAllAnchors[0][1] = BitOR($aAllAnchors[0][1], 4)

        ElseIf StringLeft($sLine, 12) = ";UserAnchor " Then
            ; User Anchor
            $aUserAnchors[0][0] += 1
            ReDim $aUserAnchors[$aUserAnchors[0][0] + 1][3]
            ; Save name
            $aUserAnchors[$aUserAnchors[0][0]][0] = StringStripWS(StringReplace(StringTrimLeft($sLine, 12), "-", ""), 3)
            ; Save type
            $aUserAnchors[$aUserAnchors[0][0]][1] = 0
            ; Set flag
            $aAllAnchors[0][1] = BitOR($aAllAnchors[0][1], 1)
        EndIf

    Next

    ; Sort arrays and add to combined array
    _ArraySort($aFuncAnchors, 0, 1)
    _AddArray($aAllAnchors, $aFuncAnchors)
    _ArraySort($aRegionAnchors, 0, 1)
    _AddArray($aAllAnchors, $aRegionAnchors)
    _ArraySort($aUserAnchors, 0, 1)
    _AddArray($aAllAnchors, $aUserAnchors)

EndFunc   ;==>_ListAllAnchors

Func _ListMatchingAnchors($sSearchText)

    ; Set status bar
    GUICtrlSetData($hStatus, "Displaying search results")

    ; Disable User Anchor buttons
    GUICtrlSetState($hInsert, $GUI_DISABLE)
    GUICtrlSetState($hDelete, $GUI_DISABLE)

    ; Delete existing treeview and recreate
    GUICtrlDelete($hTreeView)
    $hTreeView = GUICtrlCreateTreeView(10, 70, 230, @DesktopHeight - 380)
    GUICtrlSetBkColor($hTreeView, 0xE0FFE0)
    Local $hResultsItem = GUICtrlCreateTreeViewItem("Search Results", $hTreeView)
    ; Add matching results
    For $i = 1 To $aAllAnchors[0][0]
        If StringInStr($aAllAnchors[$i][0], $sSearchText) Then GUICtrlCreateTreeViewItem($aAllAnchors[$i][0], $hResultsItem)
    Next
    ; Force expansion of results
    ControlTreeView($hGUI, "", $hTreeView, "Expand", "Search Results")

    ; Prevent selection and replacement of all text in input on refocus
    ControlSend($hGUI, "", $hSearchInput, "{END}")

EndFunc   ;==>_ListMatchingAnchors

#EndRegion ; List Anchors
#Region    ; SciTE Functions

Func _SciTECursorHome()

    ControlFocus($hSciTE_Wnd, "", "[CLASS:Scintilla; INSTANCE:1]")
    ControlSend($hSciTE_Wnd, "", "[CLASS:Scintilla; INSTANCE:1]", "{HOME}")

EndFunc   ;==>_SciTECursorHome

Func _SciTEFind($sString, $sAdd = "")

    _SciTE_Send_Command(0, $hSciTE_DirWnd, "find:" & StringReplace($sString, "\", "\\") & $sAdd)
    _SciTECursorHome()

EndFunc   ;==>_SciTEFind

Func _SciTEGoToLine($iLineNumber)

    _SciTE_Send_Command(0, $hSciTE_DirWnd, "goto:" & $iLineNumber)
    GUICtrlSetData($hLineInput, "")

EndFunc   ;==>_SciTEGoToLine

Func _SciTESave()

    ; Must escape backslashes
    _SciTE_Send_Command(0, $hSciTE_DirWnd, "saveas:" & StringReplace($sCurrFile, "\", "\\"))

EndFunc   ;==>_SciTESave

Func _SciTE_Send_Command($hWnd, $hSciTE_DirWnd, $sCmd)

    Local $tCmdStruct = DllStructCreate("Char[" & StringLen($sCmd) + 1 & "]")
    If @error Then Return
    DllStructSetData($tCmdStruct, 1, $sCmd)
    Local $tCOPYDATA = DllStructCreate("Ptr;DWord;Ptr")
    DllStructSetData($tCOPYDATA, 1, 1)
    DllStructSetData($tCOPYDATA, 2, StringLen($sCmd) + 1)
    DllStructSetData($tCOPYDATA, 3, DllStructGetPtr($tCmdStruct))
    DllCall("user32.dll", "lresult", "SendMessageW", "hwnd", $hSciTE_DirWnd, "uint", 0x004A, "wparam", $hWnd, "lparam", DllStructGetPtr($tCOPYDATA))

EndFunc   ;==>_SciTE_Send_Command

#EndRegion ; SciTE Functions
#Region    ; Tray functions

Func _Tray_Show()

    If TrayItemGetText($hTray_Show_Item) = "Hide" Then
        _HideGUI()
    Else
        _ShowGUI()
    EndIf

EndFunc   ;==>_Tray_Show

Func _Exit()

    Exit

EndFunc   ;==>_Exit

#EndRegion ; Tray functions
#Region    ; Hide/Show

Func _HideGUI()

    GUISetState(@SW_HIDE, $hGUI)
    TrayItemSetText($hTray_Show_Item, "Show")

EndFunc   ;==>_HideGUI

Func _ShowGUI()

    GUISetState(@SW_SHOW, $hGUI)
    GUISetState(@SW_RESTORE, $hGUI)
    TrayItemSetText($hTray_Show_Item, "Hide")

EndFunc   ;==>_ShowGUI

#EndRegion ; Hide/Show
#Region    ; Misc

Func _GetFilePath()

    Local $sSplitBy = "-"

    Local $sTitle = WinGetTitle($hSciTE_Wnd)
    If @error Then Return SetError(1, 0, 0) ; Window does not exist
    ; File not yet named
    If StringInStr($sTitle, "Untitled") Then Return SetError(3, 0, 0)
    ; Determine split character
    If StringInStr($sTitle, "* SciTE") Then $sSplitBy = "*"
    ; Extract file name
    Local $aSplit = StringSplit($sTitle, $sSplitBy)
    $aSplit[1] = StringStripWS($aSplit[1], 3)
    If FileExists($aSplit[1]) Then Return $aSplit[1]
    Return SetError(2, 0, 0) ; File does not exist

EndFunc   ;==>_GetFilePath

Func _AddArray(ByRef $aBase, ByRef $aAdd)

    Local $iSizeBase = UBound($aBase), $iSizeAdd = UBound($aAdd) - 1, $iDim2 = UBound($aBase, 2)
    ReDim $aBase[$iSizeBase + $iSizeAdd][$iDim2]
    $aBase[0][0] += $iSizeAdd
    For $i = 0 To $iSizeAdd - 1
        For $j = 0 To $iDim2 - 1
            $aBase[$iSizeBase + $i][$j] = $aAdd[$i + 1][$j]
        Next
    Next

EndFunc   ;==>_AddArray

Func _Spacer($sLine, $sKeyWord, $sAnchorName)

    ; Escape characters in anchorname if required
    $sAnchorName = StringRegExpReplace($sAnchorName, "(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)", "\\$1")
    ; Extract spaces between keyword and name
    Local $aRet = StringRegExp($sLine, "(?s)(?i)" & $sKeyWord & "(.*?)" & $sAnchorName, 3)
    Return $aRet[0]

EndFunc   ;==>_Spacer

Func _LoadFile($sFilePath)

    Local $aArray[2] = [1]

    ; Read file
    Local $sFile = FileRead($sFilePath)
    If @error = 1 Then Return SetError(1, 0, 0)
    If StringInStr($sFile, @LF) Then ; Split lines
        $aArray = StringSplit(StringStripCR($sFile), @LF)
    ElseIf StringLen($sFile) Then ; Single line
        $aArray[1] = $sFile
    Else ; Empty file
        Return SetError(2, 0, 0)
    EndIf

    Return $aArray

EndFunc   ;==>_LoadFile

Func _WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)

    If BitAND($wParam, 0xFFFF) = $hLineInput And BitShift($wParam, 16) = 0x300 Then ; $EN_CHANGE
        Local $sInput = GUICtrlRead($hLineInput)
        If StringRegExp($sInput, '[^\d]') Then $sInput = StringRegExpReplace($sInput, '[^\d]', '')
        GUICtrlSetData($hLineInput, $sInput)
    EndIf

EndFunc   ;==>_WM_COMMAND

#EndRegion ; Misc
#Region    ; About

Func _About()

    MsgBox(64, "About", "SciTE Hopper" & @CRLF & "Melba23" & @CRLF & "Based on an original idea by Ashalshaikh" & @CRLF & "Version 1.0")

EndFunc   ;==>_About

#EndRegion ; About

I am not entirely happy about the user anchor insertion/deletion functions but as I hardly ever use them I have not spent too much time trying to improve them. I look forward to any suggestion you (or anyone else) might have. :huh2:

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

When using "Trace: Add Func Trace Lines" sometimes trace lines are added after a function is called in addition to when a function is entered. I believe it occurs if "func" is found in the function name.

Func Example()
    ConsoleWrite('@@ (584) :(' & @MIN & ':' & @SEC & ') Example()' & @CR) ;### Function Trace
    AnotherExampleFunc()
    ConsoleWrite('@@ (586) :(' & @MIN & ':' & @SEC & ') ()' & @CR) ;### Function Trace
EndFunc
Link to comment
Share on other sites

Oops ... http://sourceforge.net/tracker/?func=detail&atid=102439&aid=3315756&group_id=2439 :huh2:

Guess I would need to do something now I know is way down on my "Skill list", if it has not dropped off it completely.

Edited by iEvKI3gv9Wrkd41u

"Straight_and_Crooked_Thinking" : A "classic guide to ferreting out untruths, half-truths, and other distortions of facts in political and social discussions."
"The Secrets of Quantum Physics" : New and excellent 2 part documentary on Quantum Physics by Jim Al-Khalili. (Dec 2014)

"Believing what you know ain't so" ...

Knock Knock ...
 

Link to comment
Share on other sites

For Example Jos, if SciTE V2.27 was to be released (after SciTE4AutoIt3 had been released with V2.26 included) what would be the implications of upgrading the SciTE.exe executable? Just curious to why V1.79 has been used for a long and did it require a massive re-write of some lua "Scripts" to upgrade to the latest version? Thanks.

Also Melba23 I too like the "KISS" approach, I'm testing your "Mod" version now and will apply changes if I need to. Couple of things it seems to lag when navigating to the Function (compared to the Original) and I always get the Find box in SciTE displaying, but these I can fix with no problem.

Edited by guinness

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

@guinness

Valik may or may not argue this but it's not always a great idea to update to new versions of sofware when you don't have a lot to gain or at least don't jump to the new version right away. It's usually better to just leave well enough alone until a release has been out long enough to get a reputation as stable. Couple that with the possibilty that a new SciTe version may or may not break any existing customization and waiting for a while doesn't seem like all that bad an idea

George

Question about decompiling code? Read the decompiling FAQ and don't bother posting the question in the forums.

Be sure to read and follow the forum rules. -AKA the AutoIt Reading and Comprehension Skills test.***

The PCRE (Regular Expression) ToolKit for AutoIT - (Updated Oct 20, 2011 ver:3.0.1.13) - Please update your current version before filing any bug reports. The installer now includes both 32 and 64 bit versions. No change in version number.

Visit my Blog .. currently not active but it will soon be resplendent with news and views. Also please remove any links you may have to my website. it is soon to be closed and replaced with something else.

"Old age and treachery will always overcome youth and skill!"

Link to comment
Share on other sites

I know that the SciTE executable that we use for AutoIT has been modified from the original version. Some things like the number of keywords that can be included in the properties files has been increased from the default. You can see this if you take an unmodified executable of SciTE and try to add more keywords to the list, eventually the keywords don't get syntax highlighted because you've exceeded the storage limit. I'm guessing there's probably other modifications that need to be made before it can be used in place of the one we currently use and that would take time away from other things that are being worked on.

As the saying goes, if it ain't broke don't fix it. So, unless there's major issues with the current version, it's probably best to wait until there's time to go through the code and change what needs to be changed to make it work seamlessly.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

Early on Jos and I tried the 2.x line of SciTE and were both in agreement that it had some issues that needed worked out. Off the top of my head I don't recall what they were. I also expected some Lua code to need updated. Since I had no nagging complaints about the version I was using I didn't bother. Then development on AutoIt stopped and I think everyone stopped caring. Now development has resumed, SciTE 2.x has matured and it seems no changes to the Lua scripts are needed (I haven't had to fix anything so far in my versions).

Link to comment
Share on other sites

  • Developers

For Example Jos, if SciTE V2.27 was to be released (after SciTE4AutoIt3 had been released with V2.26 included) what would be the implications of upgrading the SciTE.exe executable? Just curious to why V1.79 has been used for a long and did it require a massive re-write of some lua "Scripts" to upgrade to the latest version? Thanks.

From the initial release v 1.62, nov 2004 when Iwrote the autoit lexer, up till 1.79, I released it pretty short after Neils release.

Then when v2 started to be released, SciTE initially were pretty unstable and I couldn't find a reason to even look at it when going over the feature changes.

So I stayed away from it till now.

I still don't really see anything major that was a "must have" but just thought it was time to play a little catch-up.

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

  • Developers

I know that the SciTE executable that we use for AutoIT has been modified from the original version. Some things like the number of keywords that can be included in the properties files has been increased from the default. You can see this if you take an unmodified executable of SciTE and try to add more keywords to the list, eventually the keywords don't get syntax highlighted because you've exceeded the storage limit. I'm guessing there's probably other modifications that need to be made before it can be used in place of the one we currently use and that would take time away from other things that are being worked on.

As the saying goes, if it ain't broke don't fix it. So, unless there's major issues with the current version, it's probably best to wait until there's time to go through the code and change what needs to be changed to make it work seamlessly.

The changes we have done for the full version are not really that big and are mainly around the Save-As function that was changed by Valik. I also made a minor change to hold our properties files which were too big for the Defaults in the standard SciTE source.

We have one single source set for both the Lite and Full version, were the Lite version is a spin-off of the SC1 and I have removed all unneeded lexers to limit the single SciTE program.

Jos

Edited by Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

Just went through the changelog for all the 2.x releases. Here's what I see that catches my eye:

  • SciTE can highlight all occurrences of the current word or selected text. Here is an example of the settings I now have set:

    highlight.current.word=1
    highlight.current.word.colour=#7FFFD4
    highlight.current.word.by.style=1
    indicators.alpha=255
    indicators.under=1
  • SciTE on Windows avoids locking folders when using the open or save dialogs.
The ability to use Lua to write a lexer is maybe interesting. It's something I'd have to look at more closely before being able to offer further comments on how interesting though.
Link to comment
Share on other sites

Thanks all for answering, it was literally a hypothetical question and even though I have this tendency to update applications before the authors do e.g. PortableApps, I've always put my trust in you guys & 1.79 didn't (still doesn't) have any glaring problems. Thanks.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Just went through the changelog for all the 2.x releases. Here's what I see that catches my eye:

Another improvement is with Replace, even if the GUI is open selecting another value and clicking Replace will send the value to the open GUI.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Sorry to pick up on a small thing Jos said earlier, but it reminded me of something I was planning... Would it be possible to auto-save to a temp file? I currently have a folder that I use to save scripts I have no intention of ever using but I need to run some code. Once this gets large I clean out everything and start again. This still means I have to go through the process of saving. This is particularly evident if I want to test code from a question in the support forum, and I wish I could open SciTE, ctrl+v, F5 and be on my way.

But anyway... I digress. Is this even possible?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...