editor:define-editor-variable
name
value
&optional
documentation
Symbol naming the variable.
The value to assign to the variable.
A string naming a mode.
A documentation string.
The macro
editor:define-editor-variable
defines a global editor variable. There is only one global value, so repeated uses of
editor:define-editor-variable
overwrite each other.
editor:define-editor-variable
gives a readable value of defining a variable, and is recognized by the LispWorks source code location system. However variables can also be defined dynamically by calling
(setf editor:variable-value)
. Variable values may be accessed by editor:variable-value.
A variable has only one string of documentation associated with it. editor:variable-value overwrites the existing documentation string, if there is any. You can see the documentation by the command Describe Editor Variable. It can can be accessed programmatically by editor:editor-variable-documentation.
Note: for backwards compatibility
name
can also be a string, which is converted to a symbol by uppercasing, replacing
#\Space
by
#\-
, and interning in the EDITOR package. This may lead to clashes and so you should use a symbol for
name
, not a string.
editor:define-editor-mode-variable
editor:define-editor-mode-variable
name
mode
value
&optional
documentation
Defines an editor variable in the specified mode.
A string naming a mode.
As for editor:define-editor-variable.
As for editor:define-editor-variable, except that
editor:define-editor-mode-variable
installs the documentation only if the editor variable does not already have any documentation.
editor:define-editor-mode-variable
defines a variable in the specified mode. There is one value per variable per mode.
editor:define-editor-mode-variable
gives a readable value of defining a variable in a mode, and is recognized by the LispWorks source code location system. However mode variables can also be defined dynamically by calling
(setf editor:variable-value)
. Mode variable values may be accessed by editor:variable-value.
editor:editor-variable-documentation
editor:editor-variable-documentation
editor-variable-name
A symbol naming an editor variable.
Returns the documentation associated with the editor variable, if any.
Note: For backwards compatibility a string editor-variable-name is also accepted, as described for editor:define-editor-variable.
editor:variable-value
name
&optional
kind
where
Returns the value of the editor variable
name
, where
name
is a symbol. An error is signalled if the variable is undefined. The argument
kind
can take the value
:current
,
:buffer
,
:global
or
:mode
. The default value of
kind
is
:current
.
When
kind
is
:current
the argument
where
should be
nil
(the default, meaning the current buffer) or an editor buffer object or the name of a buffer. The variable value for the specified buffer is returned or (if there is no current buffer) then the global variable value is returned.
kind
can also be
:buffer
, and then
buffer
should be an editor buffer object.
For example, the code given below will, by default, return the value
:ask-user
.
(editor:variable-value
'editor:add-newline-at-eof-on-writing-file)
The value of variables may also be altered using this function. For example, the code given below will allow buffers to be saved to file without any prompt for a missing newline.
(setf
(editor:variable-value
'editor:add-newline-at-eof-on-writing-file)
nil)
editor:variable-value-if-bound
editor:variable-value-if-bound
name
&optional
kind
where
Returns the value of the variable
name
. If the variable is not bound,
nil
is returned.
The arguments are as for editor:variable-value.
editor:buffer-value
buffer
name
&optional
errorp
Accesses the value of the editor variable name in the buffer specified by buffer .
name should be a symbol and buffer should be a point object or a buffer object.
If the editor variable is undefined and
errorp
is true, an error is signalled. If the variable is undefined and
errorp
is false,
nil
is returned. The default value of
errorp
is
nil
.