lacona-phrases
Built-in Lacona phrases, to be used by Addons
Note that many of these phrases do not actually do anything. Their behavior is dependent upon the operating system, so they are designed to be Extended by os-specific phrases (such as lacona-osx. In this way, commands can be built with these empty phrases, but they can be extended with OS-specific functionality.
Installation
Lacona Commands automatically have access to lacona-phrases
, so it does not
need to be installed. It can be included in your code with
// orvar laconaPhrases =
Results
Some of these phrases (Dates, URLs, Emails, Phone Numbers, etc) have results
that are simple Javascript objects (Date
, String
, etc).
Others (Applications, MountedVolumes, etc) export objects with functions that do things.
/** @jsx createElement */ { thisname = name thispath = path } { } { } { } { } { } const OSXAppPhrase = extends: Application { return <choice> <literal text='Calendar' value='Calendar' '/Applications/Calendar.app' /> <literal text='Reminders' value='Reminders' '/Applications/Reminders.app' /> <literal text='Mail' value='Mail' '/Applications/Mail.app' /> </choice> }
In this example, we are creating a new Phrase
called OSXApp
, which represents an App on a computer running OSX. Our phrase is just a <choice />
of <literal />
s, but the interesting part is the value
prop. We are returning an instance of ApplicationObject
.
This instance has a single data property (path
), and 5 methods defined on its prototype: launch
, activate
, close
, quit
, and uninstall
. Each of those is making calls to some OS-specific library (not implemented here).
Reference
Application
Represents an Application installed on the system.
Result
name: string // the name of the application, for logging launch?: void // launch the application uninstall?: void // uninstall the application from the system //more data properties can be used but will be ignored
PreferencePane
Represents a system preferences pane, like Control Panel or System Preferences.
Result
name: string // the name of the preference pane, for logging open?: void // open the preference pane //more data properties can be used but will be ignored
RunningApplication
Represents an Application that is currently running on the system.
Result
name: string // the name of the application, for logging activate?: void // bring the application to the foreground hideAll?: void // hides all windows without closing them closeAll?: void // close all windows the application quit?: void // close all windows of the application, and quit it (if applicable) kill?: void // forcably close all windows of the application, and quit it (if applicable) //more data properties can be used but will be ignored
ContentArea
Represents a "Content Area" that is currently open on the system. This could refer to windows or tabs, or even groups of windows or tabs, but can be independently opened, closed, and manipulated.
Result
name: String // the title of the content area, for logging activate?: void // bring the content area to the foreground close?: void // close the content area hide?: void // hide the content area minimize?: void // minimize the content area maximize?: void // maximize the content area fullscreen?: void // make the content area fullscreen //more data properties can be used but will be ignored
MountedVolume
Represents a drive or volume currently mounted to the system (virtual drives, optical media, mounted network drives, etc.)
Result
name: string // the name of the mounted volume, for logging open?: void // open the drive in the file browser. eject?: void // eject the drive //more data properties can be used but will be ignored
ContactCard
Represents a viewable contact card on the system
Result
name: string // the name of the mounted volume, for logging open?: void // open the contact card in the default application //more data properties can be used but will be ignored
File
Represents a file on the local file system
Result
string
Directory
Represents a directory on the local file system
Result
string
EmailAddress
Result
string
PhoneNumber
Result
string
URL
Represents an http or https URL, viewable in a Web Browser
Result
string
Integer
Properties
argument: string
- The label text for this phrase. Defaults to number.max: integer
- the highest acceptable integer. No limit by default.min: integer
- the lowest acceptable integer. No limit by default.
Result
integer
Decimal
Properties
argument: String
- The label text for this phrase. Defaults to number.max: Number
- the highest acceptable decimal. No limit by default.min: Number
- the lowest acceptable decimal. No limit by default.
Result
number
Ordinal
Represents an integer ending in "th", "nd", "st", etc.
Properties
argument: String
- The label text for this phrase. Defaults to number.max: Number
- the highest acceptable integer. No limit by default.min: Number
- the lowest acceptable integer. No limit by default.
Result
integer
DigitString
Represents a string composed entirely of digits.
Properties
argument: String
- The label text for this phrase. Defaults to number.max: Number
- the highest acceptable integer. No limit by default.min: Number
- the lowest acceptable integer. Defaults to 0.maxLength: Number
- the highest acceptable string length. No limit by default.minLength: Number
- the lowest acceptable string length. Defaults to 1.
Result
string
String
Represents a string
Result
string
DateTime
Represents a Date and a Time
Result
date
Time
Represents a time
Result
hour: integer minute: integer second: integer
Date
Represents a date with no time value
Result
date // time value is always 0:00:00
Range
Represents a range of time with a particular start and end point
Result
start: date end: date
Day
Represents a day with no year information
Result
month: integer // 0-indexed day: integer // 1-index
Duration
Represents a duration of time
Result
years?: integer months?: integer days?: integer hours?: integer minutes?: integer seconds?: integer
DateDuration
Represents a duration of time without time components
Result
years?: integer months?: integer days?: integer
TimeDuration
Represents a duration of time without date components
Result
hours?: integer minutes?: integer seconds?: integer