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
Documentation at https://melpa.org/#/wikinfo
Documentation at https://melpa.org/#/vagrant
Documentation at https://melpa.org/#/schrute
Documentation at https://melpa.org/#/xmltokf
Documentation at https://melpa.org/#/hardhat
Documentation at https://melpa.org/#/elysium
Documentation at https://melpa.org/#/uniline
Documentation at https://melpa.org/#/marshal
Documentation at https://melpa.org/#/kubedoc