spice in dyalog
Post on 20-Jan-2016
68 Views
Preview:
DESCRIPTION
TRANSCRIPT
SpiceSpicein Dyalog
V1.03
Sep 2009 2
Spice Utilities
Spice is a user command handler.
Under V11 & V12 it uses an input area at the bottom of the screen to issue user defined commands using SALT.
It can be initialized directly from SALT:
Sep 2009 4
Initializing Spice
The Spice input area can also be started automatically by using the <enableSpice> function in the SALT workspace:
)LOAD SALT
enableSpice
Sep 2009 5
Initializing the Spice area in V12The configuration menu:
Sep 2009 6
Initializing Spice in V12.1There is no need to initialize the Spice input
area in 12.1.
The Spice user command handler is always available directly through the ] with 12.1.
Simply use ] where you would use the input area, e.g.
]mycmd
Sep 2009 7
Spice HelpTo get a list of all available commands you
enter ]? or ‘?’ in the input area:
?
Sep 2009 8
Example of a custom Spice command: locate
Use “locate string” to locate a regular expression string in SALT folders , e.g.:
]locate \babc>0$
Will find in SALT files where syntactic abc is greater than 0 at the end of a line.
Sep 2009 9
Using SALT commands in Spice
All the SALT commands but New can be issued here, e.g.:
]save myclass file1
]compare file1 -ver=4
]list mine
]settings
]load myfile
]removeversions filex -v=<9
Sep 2009 10
How does Spice work?
- Spice commands are kept in script files,
like SALT.
- Spice files have a .dyalog extension.
- All Spice script files are kept by default in
folder
[Dyalog]\SALT\spice
Sep 2009 11
How does Spice work?
Each script file contains a class with a
number of (presumably) related
commands.
For example a script/class could contain
1. a command to search text
2. a command to replace text
Sep 2009 12
How does Spice work?
A script file MUST contain at least 3 public
shared functions for the Spice handler:
1. A <List> function
2. A <Run> function
3. A <Help> function
It may contain other functions.
Sep 2009 13
How does Spice work?
The <List> function
The <List> function is niladic.
It returns a list of as many namespaces as
there are commands in the script file.
E.g.: if there are 2 commands in the script
file it returns 2 namespaces.
Sep 2009 14
How does Spice work?
The <List> function
Each namespace returned by <List> contains
4 variables; each one is a string:
1. Name: the name of the command
2. Group: the group the command belongs to
3. Desc: a short description
4. Parse: the parsing rules
Sep 2009 15
How does Spice work?
The <List> function
The 4 variables:
1. Name: a single word, e.g. locate
2. Group: a single word, e.g. files
3. Desc: a sentence, e.g. Find string in files
4. Parse: a string describing the command
syntax, e.g. 2 –exclude=
Sep 2009 16
How does Spice work?
The <List> function (example with 2 cmds) ∇ r←List :Access Shared Public r←⎕NS¨2⍴⊂'' r.Name←'Locate' 'Replace' r.Group←⊂'Files' r.Parse←'1' '2' r[1].Desc←'Find a string in files' r[2].Desc←'Replace a string by another' ∇
Sep 2009 17
How does Spice work?
The <Help> function
The <Help> function is monadic.
It takes a string naming the command to
return detailed help for, e.g. locate
It returns a string describing help for that
command.
Sep 2009 18
How does Spice work?
The <Help> function (example with 2 cmds) ∇ r←Help Cmd :Access Shared Public r←'' r,←⊂'Arg: string; shows where the string
is found' r,←⊂'Arg: 2 strings; replace the first
one by the other' r←r⊃⍨'Locate' 'Replace'⍳⊂Cmd ∇
Sep 2009 19
How does Spice work?
The <Run> function
The <Run> function is monadic.
It takes 2 arguments:
1. a string naming the command to deal
with, e.g. locate
2. either a string or a namespace which is
the argument to the command
Sep 2009 20
How does Spice work?
The <Run> function (example with 2 cmds)
∇ r←Run(Cmd ca);ct;w
:Access Shared Public
r←0 0⍴'' ⋄ ct←⎕SE.SALT.Load'Utils\fileUtils -noname'
w←##.textUtils.splitOn⍨⎕SE.SALT.Settings'workdir'
:Select Cmd
:Case 1⊃Fns ⋄ w ct.showExpr¨⊂ca.Argument
:Case 2⊃Fns ⋄ w ct.replExpr¨⊂ca.Argument
:EndSelect
∇
Sep 2009 21
Example
See script Spice\aSample.dyalog
It contains 2 examples of Spice commands:
1. no parsing rules
2. with specific parsing rules
Sep 2009 22
Example
The syntax is described in the help:
Sep 2009 23
Example
If the syntax is wrong Spice will complain:
No arguments!
Sep 2009 24
Example
If the syntax is right Spice will do it:
Sep 2009 25
Spice command location
When APL is installed Spice commands location is [Dyalog]\SALT\spice but you can change it.
The SALT settings contain Spice’s commands location in cmddir:
]setting cmddir \my\own\user\cmds
Will change the Spice/user commands folder to \my\own\user\cmds
Sep 2009 27
Final
SPICE is a development tool.
It can be used to store frequently used (and even less frequently used) user
commands.
Sep 2009 28
Short Final
More information can be found in the Spice document.
Dyalog 2008
top related