GNU Emacs is an extensible and highly customizable text editor. It is based on an Emacs Lisp interpreter with extensions for text editing. Emacs has been extended in essentially all areas of computing, giving rise to a vast array of packages supporting, e.g., email, IRC and XMPP messaging, spreadsheets, remote server editing, and much more. Emacs includes extensive documentation on all aspects of the system, from basic editing to writing large Lisp programs. It has full Unicode support for nearly all human languages.
GNU Emacs is an extensible and highly customizable text editor. It is based on an Emacs Lisp interpreter with extensions for text editing. Emacs has been extended in essentially all areas of computing, giving rise to a vast array of packages supporting, e.g., email, IRC and XMPP messaging, spreadsheets, remote server editing, and much more. Emacs includes extensive documentation on all aspects of the system, from basic editing to writing large Lisp programs. It has full Unicode support for nearly all human languages.
GNU Emacs is an extensible and highly customizable text editor. It is based on an Emacs Lisp interpreter with extensions for text editing. Emacs has been extended in essentially all areas of computing, giving rise to a vast array of packages supporting, e.g., email, IRC and XMPP messaging, spreadsheets, remote server editing, and much more. Emacs includes extensive documentation on all aspects of the system, from basic editing to writing large Lisp programs. It has full Unicode support for nearly all human languages.
This package provides font-lock and basic REPL integration for the [J programming language](http://www.jsoftware.com) ; Installation The only method of installation is to check out the project, add it to the load path, and load normally. This may change one day. Put this in your emacs config (add-to-list load-path "/path/to/j-mode/") (load "j-mode") Add for detection of j source files if the auto-load fails (add-to-list auto-mode-alist ("\\.ij[rstp]$" . j-mode)))
Packed provides some package manager agnostic utilities to work with Emacs Lisp packages. As far as Packed is concerned packages are collections of Emacs Lisp libraries that are stored in a dedicated directory such as a Git repository. And libraries are Emacs Lisp files that provide the correct feature (matching the filename).
Where a package manager might depend on metadata, Packed instead uses some heuristics to get the same information---that is slower and might also fail at times but makes it unnecessary to maintain package recipes.
This provides functions to support ert, the Emacs Regression Test framework. It includes
a set of predicates for comparing strings, buffers and file contents.
explainer functions for all predicates giving useful output macros for creating many temporary buffers at once, and for restoring the buffer list.
methods for testing indentation, by comparison or "round-tripping".
methods for testing fontification.
Assess aims to be a stateless and noiseless as possible, leaving Emacs unchanged whether the tests succeed or fail and suppressing extraneous messages.
Geiser is a collection of Emacs major and minor modes that conspire with one or more Scheme implementations to keep the Lisp Machine Spirit alive. The continuously running Scheme interpreter takes the center of the stage in Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme implementation, Emacs and, ultimately, the schemer, giving them access to live metadata.
This package provides just the core of Geiser. To effectively use it with your favourite Scheme implementation, you also need the corresponding geiser package, e.g. emacs-geiser-guile for Guile.
Geiser is a collection of Emacs major and minor modes that conspire with one or more Scheme implementations to keep the Lisp Machine Spirit alive. The continuously running Scheme interpreter takes the center of the stage in Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme implementation, Emacs and, ultimately, the schemer, giving them access to live metadata.
This package provides just the core of Geiser. To effectively use it with your favourite Scheme implementation, you also need the corresponding geiser package, e.g. emacs-geiser-guile for Guile.
Geiser is a collection of Emacs major and minor modes that conspire with one or more Scheme implementations to keep the Lisp Machine Spirit alive. The continuously running Scheme interpreter takes the center of the stage in Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme implementation, Emacs and, ultimately, the schemer, giving them access to live metadata.
This package provides just the core of Geiser. To effectively use it with your favourite Scheme implementation, you also need the corresponding geiser package, e.g. emacs-geiser-guile for Guile.
Geiser is a collection of Emacs major and minor modes that conspire with one or more Scheme implementations to keep the Lisp Machine Spirit alive. The continuously running Scheme interpreter takes the center of the stage in Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme implementation, Emacs and, ultimately, the schemer, giving them access to live metadata.
This package provides just the core of Geiser. To effectively use it with your favourite Scheme implementation, you also need the corresponding geiser package, e.g. emacs-geiser-guile for Guile.
AWK it! allows you to see AWK output as you are typing the script; it sends selected region to awk and uses yasnippet as interactive UI.
There are 3 modes of AWK code: simplified syntax(default, see below), single line AWK syntax (regular AWK syntax but only inside the default match) and raw AWK syntax(full AWK code). AWK it! can transfrom code from one mode to another(not perfect, but it will make an effort) and there is also support for multiple lines. Data is expanded with selected yasnippet expand keybinding.
Bufler is like a butler for your buffers, presenting them to you in an organized way based on your instructions. The instructions are written as grouping rules in a simple language, allowing you to customize the way buffers are grouped. The default rules are designed to be generally useful, so you don't have to write your own.
It also provides a workspace mode which allows frames to focus on buffers in certain groups. Since the groups are created automatically, the workspaces are created dynamically, rather than requiring you to put buffers in workspaces manually..
Bufler is like a butler for your buffers, presenting them to you in an organized way based on your instructions. The instructions are written as grouping rules in a simple language, allowing you to customize the way buffers are grouped. The default rules are designed to be generally useful, so you don't have to write your own.
It also provides a workspace mode which allows frames to focus on buffers in certain groups. Since the groups are created automatically, the workspaces are created dynamically, rather than requiring you to put buffers in workspaces manually.
assess
provides additional support for testing Emacs packages.
It provides:
A set of predicates for comparing strings, buffers and file contents.
Explainer functions for all predicates giving useful output.
Macros for creating many temporary buffers at once, and for restoring the buffer list.
Methods for testing indentation, by comparision or roundtripping.
Methods for testing fontification.
Assess aims to be a stateless as possible, leaving Emacs unchanged whether the tests succeed or fail, with respect to buffers, open files and so on. This helps to keep tests independent from each other.
To allow for the usage of Emacs functions and macros that are defined in newer versions of Emacs, compat.el
provides definitions that are installed ONLY if necessary. These reimplementations of functions and macros are at least subsets of the actual implementations. Be sure to read the documentation string to make sure.
Not every function provided in newer versions of Emacs is provided here. Some depend on new features from the core, others cannot be implemented to a meaningful degree. The main audience for this library are not regular users, but package maintainers. Therefore commands and user options are usually not implemented here.
To allow for the usage of Emacs functions and macros that are defined in newer versions of Emacs, compat.el
provides definitions that are installed ONLY if necessary. These reimplementations of functions and macros are at least subsets of the actual implementations. Be sure to read the documentation string to make sure.
Not every function provided in newer versions of Emacs is provided here. Some depend on new features from the core, others cannot be implemented to a meaningful degree. The main audience for this library are not regular users, but package maintainers. Therefore commands and user options are usually not implemented here.
This package provides a library to manipulate persistent identifiers that are used to locate scholar resources online. The library knows about the following formats:
pmid: PubMed
pmcid: PubMed Central
arxiv: Cornell University
Given an identifier in one of the known formats, the libray can query information about the resources and format it as a bibtex entry.
This package provides a sort of right-click contextual menu for Emacs offering you relevant actions to use on a target determined by the context.
In the minibuffer, the target is the current best completion candidate. In the *Completions*
buffer the target is the completion at point. In a regular buffer, the target is the region if active, or else the file, symbol or URL at point.
The type of actions offered depend on the type of the target. For files you get offered actions like deleting, copying, renaming, visiting in another window, running a shell command on the file, etc. For buffers the actions include switching to or killing the buffer. For package names the actions include installing, removing or visiting the homepage.
This package provides a sort of right-click contextual menu for Emacs offering you relevant actions to use on a target determined by the context.
In the minibuffer, the target is the current best completion candidate. In the *Completions*
buffer the target is the completion at point. In a regular buffer, the target is the region if active, or else the file, symbol or URL at point.
The type of actions offered depend on the type of the target. For files you get offered actions like deleting, copying, renaming, visiting in another window, running a shell command on the file, etc. For buffers the actions include switching to or killing the buffer. For package names the actions include installing, removing or visiting the homepage.
pcache provides a persistent way of caching data, in a hashtable-like structure. It relies on `eieio-persistent in the backend, so that any object that can be serialized by EIEIO can be stored with pcache. pcache handles objects called "repositories" (`pcache-repository') and "entries" (`pcache-entry'). Each repository is identified by a unique name, that defines an entry in `pcache-directory'. Subdirectories are allowed, by the use of a directory separator in the repository name. Example: (let ((repo (pcache-repository "plop"))) (pcache-put repo foo 42) ; store value 42 with key foo (pcache-get repo foo) ; => 42 ) Keys can be pretty much any Lisp object, and are compared for equality using `eql Optionally, cache entries can expire: (let ((repo (pcache-repository "plop"))) (pcache-put repo foo 42 1) ; store value 42 with key foo for 1 second (sleep-for 1) (pcache-get repo foo) ; => nil )
Do trivial arithmetic on the numbers at point. Attempts to preserve padding when it can. Examples: M-x number/add 1 RET 1 -> 2 05 -> 06 6.30 -> 7.30 07.30 -> 08.30 -08.30 -> -07.30 M-x number/pad 2 RET 5 -> 05 M-x number/pad 2 RET 6 RET 3.141 -> 03.141000 The "guessing" where the number is isn't yet quite awesome, e.g. it doesn't know that the 05 in "2014-05-01" is a month and not, e.g. the number -05. But you can use the region to explicitly denote the start and end of the number. The following keybindings might be nice to use: (global-set-key (kbd "C-c C-+") number/add) (global-set-key (kbd "C-c C--") number/sub) (global-set-key (kbd "C-c C-*") number/multiply) (global-set-key (kbd "C-c C-/") number/divide) (global-set-key (kbd "C-c C-0") number/pad) (global-set-key (kbd "C-c C-=") number/eval)
ggtags
provides a frontend to the GNU Global source code tagging system.
Features:
Build on
compile.el
for asynchronicity and its large feature-set.Automatically update Global's tag files when needed with tuning for large source trees.
Intuitive navigation among multiple matches with mode-line display of current match, total matches and exit status.
Read tag with completion.
Show definition at point.
Jump to #include files.
Support search history and saving a search to register/bookmark.
Query replace.
Manage Global's environment variables on a per-project basis.
Highlight (definition) tag at point.
Abbreviated display of file names.
Support all Global search backends:
grep
,idutils
, etc.Support exuberant ctags http://ctags.sourceforge.net/ and
pygments
backend.Support all Global's output formats:
grep
,ctags-x
,cscope
etc.Support projects on remote hosts (e.g. via
tramp
).Support eldoc.
Search
GTAGSLIBPATH
for references and symbols.
Documentation at https://melpa.org/#/emacsql