package ecaml
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=87e76473915e12d718096100a5c4d15d98aba6f99ecbf21814b7389e8c28bb25
doc/ecaml/Ecaml/index.html
Module Ecaml
Source
The "advice" feature lets you add to the existing definition of a function, by wrapping around the original function a "piece of advice".
Ansi_color
translates ANSI escape sequences to Emacs faces, like (find-library "ansi-color")
. Ansi_color
is significantly faster than ansi-color
, especially on larger inputs.
(describe-variable 'auto-mode-alist)
(Info-goto-node "(elisp)Auto Major Mode")
A background job is an Async job that the emacs UI is not blocking on. These jobs are special -- they can only interact with the UI in limited ways to avoid interfering with blocking jobs, or with the user. For example, background jobs may not change the current buffer.
Pass a URL to a WWW browser. Ecaml bindings for browse-url.el
Buffers are used to hold the contents of files that are being visited; there may also be buffers that are not visiting files.
A character code is an integer representing a character. Emacs character codes are a superset of the Unicode standard.
(Info-goto-node "(elisp)Compilation")
Prompts for input, with completion from a static collection of suggestions.
There are, in general, many buffers in an Emacs session. At any time, one of them is designated as the "current buffer". This is the buffer in which most editing takes place, because most of the primitives for examining or changing text in a buffer operate implicitly on the current buffer. Normally the buffer that is displayed on the screen in the selected window is the current buffer, but this is not always so: a program can temporarily designate any buffer as current in order to operate on its contents, without changing what is displayed on the screen.
Define constants. (N.B. Elisp constants are mutable. Read the docs.)
(Info-goto-node "(elisp)Display Property")
(Info-goto-node "(elisp)Documentation")
The "echo area" is used for displaying error messages for messages made with the `message' primitive, and for echoing keystrokes. It is not the same as the minibuffer, despite the fact that the minibuffer appears (when active) in the same place on the screen as the echo area.
Elisp's analog of Core.Time_ns
, but with picosecond precision and a wider range of allowed times.
View the current emacs stack.
Emacs_version
provides information about the version and build info of the running instance of Emacs.
A "face" is a collection of graphical attributes for displaying text: font family, foreground color, background color, optional underlining, and so on. Faces control how buffer text is displayed, and how some parts of the frame, such as the mode-line, are displayed.
A feature name is a symbol that stands for a collection of functions, variables, etc. The file that defines them should "provide" the feature. Another program that uses them may ensure they are defined by "requiring" the feature. This loads the file of definitions if it hasn't been loaded already.
The name of a file. Functions in this module work directly on names, but do not read from or write to the filesystem.
For jumping from an Elisp function name to the code that defines it, even when that code is Ecaml.
A "frame" is a screen object that contains one or more Emacs windows. It is the kind of object called a "window" in the terminology of graphical environments; but we can't call it a "window" here, because Emacs uses that word in a different way.
Just as you can run a compiler from Emacs and then visit the lines with compilation errors, you can also run ‘grep’ and then visit the lines on which matches were found. This works by treating the matches reported by ‘grep’ as if they were errors.
(Info-goto-node "(elisp)Hash Tables")
A hook is a variable where you can store a function or functions to be called on a particular occasion by an existing program. Emacs provides hooks for the sake of customization.
(Info-goto-node "(elisp)Input Events")
A key sequence is a sequence of one or more input events that form a unit. Input events include characters, function keys, and mouse actions.
The command bindings of input events are recorded in data structures called keymaps. Each entry in a keymap associates (or "binds") an individual event type, either to another keymap or to a command. When an event type is bound to a keymap, that keymap is used to look up the next input event; this continues until a command is found. The whole process is called "key lookup".
Loading a file of Lisp code means bringing its contents into the Lisp environment in the form of Lisp objects. Emacs finds and opens the file, reads the text, evaluates each form, and then closes the file.
load-history
is an Emacs alist that associates the names of loaded library files with the names of the functions and variables they defined, as well as the features they provided or required. This is used by find-function
, find-variable
, and in *Help*
buffers to jump from a symbol to its definition.
A Marker.t
specifies a position in a buffer relative to the surrounding text. A marker changes its offset from the beginning of the buffer automatically whenever text is inserted or deleted, so that it stays with the two characters on either side of it.
A minibuffer is a special buffer that Emacs commands use to read arguments more complicated than the single numeric prefix argument. These arguments include file names, buffer names, and command names (as in M-x
). The minibuffer is displayed on the bottom line of the frame, in the same place as the echo area, but only while it is in use for reading an argument.
A minor mode provides optional features that users may enable or disable independently of the choice of major mode. Minor modes can be enabled individually or in combination.
A Modified_tick.t
is an integer value of one of the two modification counters that Emacs maintains for each buffer:
An obarray is a hash table mapping strings to Symbol.t
s. Symbol.intern
and Form.read
use an obarray.
Overlays modify the appearance of a buffer's text, for presentation's sake.
A property list (“plist” for short) is a list of paired elements. Each of the pairs associates a property name (usually a symbol) with a property or value.
"Point" is a special buffer position used by many editing commands. Like other positions, point designates a place between two characters (or before the first character, or after the last character), rather than a particular character. The value of point is a number no less than 1, and no greater than the buffer size plus 1.
A "position" is the index of a character in the text of a buffer. More precisely, a position identifies the place between two characters (or before the first character, or after the last character), so we can speak of the character before or after a given position. However, we often speak of the character "at" a position, meaning the character after that position.
Process
is used to create "subprocesses" or "child processes" of the Emacs process, which is their "parent process". A subprocess of Emacs may be "synchronous" or "asynchronous", depending on how it is created. When you create a synchronous subprocess, the program waits for the subprocess to terminate before continuing execution. When you create an asynchronous subprocess, it can run in parallel with Emacs. This kind of subprocess is represented within Emacs by a Process.t
. Programs can use this object to communicate with the subprocess or to control it. For example, you can send signals, obtain status information, receive output from the process, or send input to it.
Report progress of long-running operations in the echo area.
A "regular expression", or "regexp" for short, is a pattern that denotes a (possibly infinite) set of strings.
The selected window is the one that you edit in. When a window is selected, the buffer in the window becomes the current buffer, and the cursor will appear in it.
An Emacs symbol, i.e., an Emacs value that satisfies Value.is_symbol
.
A syntax table specifies the syntactic textual function of each character. This information is used by the parsing functions, the complex movement commands, and others to determine where words, symbols, and other syntactic constructs begin and end.
Tabulated lists display table data, one line per record and one column per field.
A terminal is a device capable of displaying one or more Emacs frames.
Emacs text, which is a sequence of characters, along with text properties associated with each character.
Support for detecting something at point---a filename, URL, what-have-you.
You can set up a timer to call a function at a specified future time or after a certain length of idleness.
A variable watcher provides a way to run a function when the value of a variable is changed.
A Vector.t
is a general-purpose array whose elements are Value.t
's.
A "window" in Emacs is the physical area of the screen in which a buffer is displayed.
include module type of struct include Async_ecaml.Export end
Async.Process
is shadowed by Ecaml.Process
, so we make it available as Async_process
.
This lets us reliably shadow Async values in Import
.
module Async_kernel = Async_ecaml.Export.Async_kernel
val defalias :
Symbol.t ->
Core.Source_code_position.t ->
?docstring:string ->
alias_of:Ecaml_value.Value.t ->
unit ->
unit
val defconst :
Symbol.t ->
Core.Source_code_position.t ->
docstring:string ->
type_:'a Ecaml_value.Value.Type.t ->
value:'a ->
'a Var.t
val defconst_i :
Symbol.t ->
Core.Source_code_position.t ->
docstring:string ->
type_:'a Ecaml_value.Value.Type.t ->
value:'a ->
unit
val defcustom :
?show_form:bool ->
Symbol.t ->
Core.Source_code_position.t ->
docstring:string ->
group:Customization.Group.t ->
type_:'a Ecaml_value.Value.Type.t ->
customization_type:Customization.Type.t ->
standard_value:'a ->
?on_set:('a -> unit) ->
unit ->
'a Customization.t
val defcustom_enum :
Symbol.t ->
Core.Source_code_position.t ->
(module Customization.Enum_arg with type t = 'a) ->
docstring:string ->
group:Customization.Group.t ->
standard_value:'a ->
?on_set:('a -> unit) ->
unit ->
'a Customization.t
val defgroup :
string ->
Core.Source_code_position.t ->
docstring:string ->
parents:Customization.Group.t list ->
Customization.Group.t
val define_derived_mode :
?auto_mode:Major_mode.Auto_mode.t ->
Symbol.t ->
Core.Source_code_position.t ->
docstring:string ->
?define_keys:(string * Symbol.t) list ->
mode_line:string ->
?parent:Major_mode.t ->
?initialize:((unit, 'a) Defun.Returns.t * (unit -> 'a)) ->
unit ->
(module Major_mode.S)
val define_minor_mode :
Symbol.t ->
Core.Source_code_position.t ->
docstring:string ->
?define_keys:(string * Symbol.t) list ->
?mode_line:string ->
global:bool ->
?initialize:(Minor_mode.t -> unit) ->
unit ->
Minor_mode.t
val defun :
Symbol.t ->
Core.Source_code_position.t ->
docstring:string ->
?define_keys:(Keymap.t * string) list ->
?obsoletes:Defun.Obsoletes.t ->
?should_profile:bool ->
?interactive:Defun.Interactive.t ->
?disabled:Symbol.Disabled.t ->
?evil_config:Evil.Config.t ->
('a, 'b) Defun.Returns.t ->
'b Defun.t ->
unit
val defun_nullary :
Symbol.t ->
Core.Source_code_position.t ->
docstring:string ->
?define_keys:(Keymap.t * string) list ->
?obsoletes:Defun.Obsoletes.t ->
?should_profile:bool ->
?interactive:Defun.Interactive.t ->
?disabled:Symbol.Disabled.t ->
?evil_config:Evil.Config.t ->
('a, 'b) Defun.Returns.t ->
(unit -> 'b) ->
unit
val defun_nullary_nil :
Symbol.t ->
Core.Source_code_position.t ->
docstring:string ->
?define_keys:(Keymap.t * string) list ->
?obsoletes:Defun.Obsoletes.t ->
?should_profile:bool ->
?interactive:Defun.Interactive.t ->
?disabled:Symbol.Disabled.t ->
?evil_config:Evil.Config.t ->
(unit -> unit) ->
unit
val defvar :
Symbol.t ->
Core.Source_code_position.t ->
docstring:string ->
type_:'a Ecaml_value.Value.Type.t ->
initial_value:'a ->
?include_in_all_defvar_symbols:bool ->
unit ->
'a Var.t
val defvaralias :
Symbol.t ->
Core.Source_code_position.t ->
?docstring:string ->
alias_of:Symbol.t ->
unit ->
unit
val lambda :
Core.Source_code_position.t ->
?docstring:string ->
?interactive:Defun.Interactive.t ->
('a, 'b) Defun.Returns.t ->
'b Defun.t ->
Ecaml_value.Function.t
val lambda_nullary :
Core.Source_code_position.t ->
?docstring:string ->
?interactive:Defun.Interactive.t ->
('a, 'b) Defun.Returns.t ->
(unit -> 'b) ->
Ecaml_value.Function.t
val lambda_nullary_nil :
Core.Source_code_position.t ->
?docstring:string ->
?interactive:Defun.Interactive.t ->
(unit -> unit) ->
Ecaml_value.Function.t
val wrap_message :
?allow_in_background:bool ->
?echo:bool ->
Core.Source_code_position.t ->
('a, 'b) Sync_or_async.t ->
string ->
f:(unit -> 'b) ->
'b