User Tools

Site Tools


manual:Variables

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
manual:Variables [2019/09/12 19:32]
JMichaelTX Add comment about case sensitivity
manual:Variables [2019/09/14 18:18]
JMichaelTX
Line 4: Line 4:
  
 Variables can be set from many actions. ​ You can set variables to specific [[manual:​Tokens| tokenised]] text, to the result of a [[manual:​Calculations| calculations]],​ from user input, from the Keychain, by searching other variables, from the [[token:​CurrentClipboard| clipboard]] or [[token:​NamedClipboard|Named Clipboards]],​ as the result of [[:​Scripting|scripts]],​ and from many other sources. Variables can be set from many actions. ​ You can set variables to specific [[manual:​Tokens| tokenised]] text, to the result of a [[manual:​Calculations| calculations]],​ from user input, from the Keychain, by searching other variables, from the [[token:​CurrentClipboard| clipboard]] or [[token:​NamedClipboard|Named Clipboards]],​ as the result of [[:​Scripting|scripts]],​ and from many other sources.
 +
 +===== Variable Naming Rules =====
 +
 +Anywhere an [[:​Actions|Action]] requires a Variable, you can enter any name you like (even though often  a default name is provided), as long as it conforms to these rules:
 +  - Variable names must start with a letter, and then can contain letters, numbers, spaces, or underscores.
 +  - Some Variable kinds require a specific prefix (see _Scope_ below).
 +  - Variable names are case insensitive,​ but their case is remembered.
 +  - Variable names should not include a function or operator name with spaces around it.
 +     *(eg “ MOD ” , so “A MOD B” would not be a valid variable, although “MODULE” would be fine).
 +
  
 ===== Scope ===== ===== Scope =====
Line 13: Line 23:
 | **Global**, Permanent variables | • Accessible basically everywhere, including Scripts.\\ • You can also see and edit variables in the Preferences.\\ • You can see global variables in the [[Windows#​Value_Inspector_Window |Value Inspector]]. | | **Global**, Permanent variables | • Accessible basically everywhere, including Scripts.\\ • You can also see and edit variables in the Preferences.\\ • You can see global variables in the [[Windows#​Value_Inspector_Window |Value Inspector]]. |
 | **Password**,​ Semi-permanent variables | • Available to macros but not displayed.\\ • Not directly accessible via AppleScript.\\ • Concealed in password fields in Prompt For User Input actions.\\ • Not saved to disk. | | **Password**,​ Semi-permanent variables | • Available to macros but not displayed.\\ • Not directly accessible via AppleScript.\\ • Concealed in password fields in Prompt For User Input actions.\\ • Not saved to disk. |
-| **Instance** Variables (v8+) | • Restricted ​ to a specific execution sequence.\\ • Available to the Macro where it was created and Sub-Macros of that Macro, for a given execution instance of the main macro.\\ • These Variables are private to each execution of the same Macro, even when running simultaneously.\\ • Accessible by [[action:​Prompt_for_User_Input|Prompt For User Input]]\\ • As of v8.0.3, is accessible by scripts (when used in an Execute Script Action).\\ • Accessible by [[action:​Custom_HTML_Prompt|Custom HTML Prompt]] (v8.0.3+).\\ • Accessible by AppleScript with the instance specifier. | +| **[[#​Instance_Variables_v8|Instance]]** Variables (v8+)\\ Auto-deleted when Macro terminates ​• Name must begin with "​instance"​ (case insensitive).\\ ​• Restricted ​ to a specific execution sequence.\\ • Available to the Macro where it was created and Sub-Macros of that Macro, for a given execution instance of the main macro.\\ • These Variables are private to each execution of the same Macro, even when running simultaneously.\\ • Accessible by [[action:​Prompt_for_User_Input|Prompt For User Input]]\\ • As of v8.0.3, is accessible by scripts (when used in an Execute Script Action).\\ • Accessible by [[action:​Custom_HTML_Prompt|Custom HTML Prompt]] (v8.0.3+).\\ • Accessible by AppleScript with the instance specifier. | 
-| **Local** Variables (v8+) | • Restricted to the specific Macro it is in.\\ • //Not// available to any of its Sub-Macros\\ • Same accessibility as Instance Variables. |+| **[[#​Local_Variables_v8|Local]]** Variables (v8+)\\ Auto-deleted when Macro terminates ​• Name must begin with "​local"​ (case insensitive)\\ ​• Restricted to the specific Macro it is in.\\ • //Not// available to any of its Sub-Macros\\ • Same accessibility as Instance Variables. |
 | **[[manual:​Dictionaries|Dictionary]]**,​ Permanent, global in scope. | • Accessible basically Everywhere, including Scripts.\\ • Dictionaries consist of the //​Dictionary Name//, One or more pairs of //Key Name//, and //​Value//​.\\ • Although Dictionaries are sort of like structured //​Variables//,​ they are kept in a separate category called //​[[manual:​Dictionaries|Dictionaries]]//​. | | **[[manual:​Dictionaries|Dictionary]]**,​ Permanent, global in scope. | • Accessible basically Everywhere, including Scripts.\\ • Dictionaries consist of the //​Dictionary Name//, One or more pairs of //Key Name//, and //​Value//​.\\ • Although Dictionaries are sort of like structured //​Variables//,​ they are kept in a separate category called //​[[manual:​Dictionaries|Dictionaries]]//​. |
  
Line 28: Line 38:
  
 Global Variables are permanently stored on your Mac drive (like a file), and are available for read/write in any Macro or Action, not just the Macro where the Variable was created. ​ These variables persist between logins and restarts of your Mac. Global Variables are permanently stored on your Mac drive (like a file), and are available for read/write in any Macro or Action, not just the Macro where the Variable was created. ​ These variables persist between logins and restarts of your Mac.
- 
-Variable names must start with a letter, and then can contain letters, numbers, spaces, or underscores. ​ Variable names are case insensitive,​ but their case is remembered. Variable names should not include a function or operator name with spaces around it (eg " MOD " , so "A MOD B" would not be a valid variable, although "​MODULE"​ would be fine). 
  
 ==== Password Variables ==== ==== Password Variables ====
manual/Variables.txt · Last modified: 2023/09/29 04:44 by peternlewis