spice in dyalog
DESCRIPTION
Spice in Dyalog. V1.03. 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:. Initializing Spice. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/1.jpg)
SpiceSpicein Dyalog
V1.03
![Page 2: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/2.jpg)
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:
![Page 3: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/3.jpg)
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
![Page 4: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/4.jpg)
Sep 2009 5
Initializing the Spice area in V12The configuration menu:
![Page 5: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/5.jpg)
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
![Page 6: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/6.jpg)
Sep 2009 7
Spice HelpTo get a list of all available commands you
enter ]? or ‘?’ in the input area:
?
![Page 7: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/7.jpg)
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.
![Page 8: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/8.jpg)
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
![Page 9: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/9.jpg)
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
![Page 10: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/10.jpg)
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
![Page 11: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/11.jpg)
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.
![Page 12: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/12.jpg)
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.
![Page 13: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/13.jpg)
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
![Page 14: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/14.jpg)
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=
![Page 15: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/15.jpg)
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' ∇
![Page 16: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/16.jpg)
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.
![Page 17: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/17.jpg)
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 ∇
![Page 18: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/18.jpg)
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
![Page 19: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/19.jpg)
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
∇
![Page 20: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/20.jpg)
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
![Page 21: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/21.jpg)
Sep 2009 22
Example
The syntax is described in the help:
![Page 22: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/22.jpg)
Sep 2009 23
Example
If the syntax is wrong Spice will complain:
No arguments!
![Page 23: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/23.jpg)
Sep 2009 24
Example
If the syntax is right Spice will do it:
![Page 24: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/24.jpg)
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
![Page 25: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/25.jpg)
Sep 2009 27
Final
SPICE is a development tool.
It can be used to store frequently used (and even less frequently used) user
commands.
![Page 26: Spice in Dyalog](https://reader036.vdocuments.mx/reader036/viewer/2022062500/56814f6a550346895dbd21d3/html5/thumbnails/26.jpg)
Sep 2009 28
Short Final
More information can be found in the Spice document.
Dyalog 2008