Enables or disables line logging or displays the script lines most recently executed.

ListLines "On|Off"



If blank or omitted, the history of lines most recently executed is shown. The first parameter affects only the behavior of the current thread as follows:

On or 1 (true): Includes subsequently-executed lines in the history.

Off or 0 (false): Omits subsequently-executed lines from the history. This is the starting default for all scripts.


ListLines (with no parameter) is equivalent to selecting the "View->Lines most recently executed" menu item in the main window. It can help debug a script. However, since line logging is disabled by default, "ListLines On" must be used before executing the section of code which is to be debugged.

ListLines Off/On can be used to selectively omit some lines from the history, which can help prevent the history from filling up too quickly (such as in a loop with many fast iterations). Additionally, performance is reduced by a few percent while line logging is enabled.

Every newly launched thread (such as a hotkey, custom menu item, or timed subroutine) starts off fresh with the default setting for this command. That default may be changed by using this command in the auto-execute section (top part of the script).

Although there is no built-in variable "A_ListLines", similar functionality can be achieved by including the following in a script:

ListLines(PassTrueToTurnOnOrFalseToTurnOff)  ; Returns the previous setting of ListLines (prior to this call).
    static sListLines := true  ; The starting default for all scripts is "ListLines On".
    ListLines % PassTrueToTurnOnOrFalseToTurnOff ? "On" : "Off"  ; Execute ListLines unconditionally to omit the lines executed below from the log.
    ListLines_prev := sListLines
    sListLines := PassTrueToTurnOnOrFalseToTurnOff
    return ListLines_prev

; To use the above function:
prev_ListLines := ListLines(false)  ; Turn off ListLines temporarily.
; ...
ListLines(prev_ListLines)  ; Restore ListLines to its previous setting.

On a related note, the built-in variables A_LineNumber and A_LineFile contain the currently executing line number and the file name to which it belongs.


KeyHistory, ListHotkeys, ListVars


ListLines Off