spice in dyalog
DESCRIPTION
Spice in Dyalog. V1.02. Spice Utilities. Spice is a cover for SALT. It uses an input area at the bottom of the screen to issue user defined commands using SALT. Spice can be initialized directly from SALT:. Initializing Spice. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/1.jpg)
SpiceSpicein Dyalog
V1.02
![Page 2: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/2.jpg)
Oct 2008 2
Spice Utilities
Spice is a cover for SALT.
It uses an input area at the bottom of the screen to issue user defined commands using SALT.
Spice can be initialized directly from SALT:
![Page 3: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/3.jpg)
Oct 2008 3
Initializing SpiceSpice can be started automatically when
starting APL by setting the SALT registry key AddSPICE to ‘1’
![Page 4: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/4.jpg)
Oct 2008 4
Initializing Spice
Spice can also be started automatically by using the <enableSpice> function in the SALT workspace:
)LOAD SALT
enableSpice
![Page 5: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/5.jpg)
Oct 2008 5
Initializing Spice in V12The configuration menu:
![Page 6: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/6.jpg)
Oct 2008 6
Spice HelpTo get a list of all available commands you
enter ‘?’ in the input area:
?
![Page 7: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/7.jpg)
Oct 2008 7
Example of a custom Spice command: locate
Use “locate string” to locate a regular expression string in SALT folders , e.g.:
locate \babc\b>0
Will find in SALT files where syntactic abc is greater than 0
![Page 8: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/8.jpg)
Oct 2008 8
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://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/9.jpg)
Oct 2008 9
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 in folder
[Dyalog]\SALT\spice
![Page 10: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/10.jpg)
Oct 2008 10
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://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/11.jpg)
Oct 2008 11
How does Spice work?
A script file MUST contain at least 3 public
shared functions:
1. A <List> function
2. A <Run> function
3. A <Help> function
It may contain other functions.
![Page 12: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/12.jpg)
Oct 2008 12
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://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/13.jpg)
Oct 2008 13
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://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/14.jpg)
Oct 2008 14
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://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/15.jpg)
Oct 2008 15
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://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/16.jpg)
Oct 2008 16
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://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/17.jpg)
Oct 2008 17
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://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/18.jpg)
Oct 2008 18
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://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/19.jpg)
Oct 2008 19
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://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/20.jpg)
Oct 2008 20
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://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/21.jpg)
Oct 2008 21
Example
The syntax is described in the help:
![Page 22: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/22.jpg)
Oct 2008 22
Example
If the syntax is wrong Spice will complain:
No arguments!
![Page 23: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/23.jpg)
Oct 2008 23
Example
If the syntax is right Spice will do it:
![Page 24: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/24.jpg)
Oct 2008 24
Special Spice command
When Spice starts a special command is run
That command is 'Setup'
It is found in spice\Setup.dyalog
It can be modified to suit your needs
![Page 25: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/25.jpg)
Oct 2008 25
Special Spice command
![Page 26: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/26.jpg)
Oct 2008 26
Final
SPICE is a development tool.
It can be used to store frequently used (and even less frequently used) user
commands.
![Page 27: Spice in Dyalog](https://reader035.vdocument.in/reader035/viewer/2022062305/5681503b550346895dbe3966/html5/thumbnails/27.jpg)
Oct 2008 27
Short Final
More information can be found in the Spice document.
Dyalog 2008