Packages — E (Page 4 of 6)

emacs-mmm-mode 0.5.5 — Allow multiple major modes in an Emacs buffer

MMM Mode is a minor mode that allows multiple major modes to coexist in a single buffer.

emacs-mocker 0.3.1 — Mocking framework for Emacs Lisp

Mocker.el is a framework for writing tests in Emacs Lisp. It uses regular Lisp rather than a domain specific language (DSL), which maximizes flexibility (at the expense of conciseness).

emacs-monroe 0.3.1 — Clojure nREPL client for Emacs

Monroe is a nREPL client for Emacs, focused on simplicity and easy distribution, primarily targeting Clojure users

emacs-move-text 2.0.8 — Move current line or region with M-up or M-down

This package provide functions to move the current line using M-up or M-down if a region is marked, it will move the region instead.

emacs-mu4e-alert 1.0 — Desktop notification for mu4e

This package provides desktop notifications for mu4e. Additionally it can display the number of unread emails in the mode-line.

emacs-mu4e-conversation 20180722-2.223cc66 — Show a complete thread in a single buffer

This package offers an alternate view to mu4e's e-mail display. It shows all e-mails of a thread in a single view, where each correspondent has their own face. Threads can be displayed linearly (in which case e-mails are displayed in chronological order) or as an Org document where the node tree maps the thread tree.

emacs-multiple-cursors 1.4.0 — Multiple cursors for Emacs

This package adds support to Emacs for editing text with multiple simultaneous cursors.

emacs-mustache 0.23 — Mustache templating library for Emacs

Mustache templating library for Emacs, mustache is a simple web template system, which is described as a logic-less system because it lacks any explicit control flow statements, both looping and conditional evaluation can be achieved using section tags processing lists and lambdas.

emacs-navi-mode 2.0-1.c1d38e8 — Emacs major-mode for easy buffer-navigation

This package provides an Emacs major-mode for easy buffer-navigation

emacs-neotree 0.5.2 — Folder tree view for Emacs

This Emacs package provides a folder tree view.

emacs-nginx-mode 1.1.4 — Emacs major mode for editing nginx config files

This package provides an Emacs major mode for editing nginx config files.

emacs-nix-mode 1.2.2 — Emacs major mode for editing Nix expressions

nixos-mode provides an Emacs major mode for editing Nix expressions. It supports syntax highlighting, indenting and refilling of comments.

emacs-nnreddit 0.0.1-1.9843f99 — Reddit backend for the Gnus newsreader backend for the Gnus newsreader.

emacs-no-x 26.1 — The extensible, customizable, self-documenting text editor (console only)

This is a GNU package.

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.

emacs-no-x-toolkit 26.1 — The extensible, customizable, self-documenting text editor (without an X toolkit)

This is a GNU package.

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.

emacs-nodejs-repl 0.1.6 — Node.js REPL inside Emacs

This program is derived from comint-mode and provides the following features:

  • TAB completion same as Node.js REPL

  • file name completion in string

  • incremental history search

emacs-noflet 20170629-1.7ae84dc — Locally override functions

emacs-noflet let's you locally override functions, in the manner of flet, but with access to the original function through the symbol: this-fn.

emacs-nov-el 0.2.2 — Major mode for reading EPUBs in Emacs

nov.el provides a major mode for reading EPUB documents.


  • Basic navigation (jump to TOC, previous/next chapter)

  • Remembering and restoring the last read position

  • Jump to next chapter when scrolling beyond end

  • Renders EPUB2 (.ncx) and EPUB3 (<nav>) TOCs

  • Hyperlinks to internal and external targets

  • Supports textual and image documents

  • View source of document files

  • Metadata display

  • Image rescaling

emacs-npm-mode 0.6.0 — Minor mode for working with npm projects

npm-mode provides a minor mode to work with npm projects.

emacs-oauth2 0.11 — OAuth 2.0 authorization protocol implementation

This package provides an Elisp implementation of the OAuth 2.0 draft. The main entry point is oauth2-auth-and-store which will return a token structure. This token structure can be then used with oauth2-url-retrieve-synchronously or oauth2-url-retrieve to retrieve any data that need OAuth authentication to be accessed. If the token needs to be refreshed, the code handles it automatically and stores the new value of the access token.

emacs-ob-ipython 20150704.8807064693 — Org-Babel functions for IPython evaluation

This package adds support to Org-Babel for evaluating Python source code using IPython.

emacs-olivetti 1.5.7 — Emacs minor mode for a nice writing environment

This package provides an Emacs minor mode that puts writing in the center.

emacs-on-screen 1.3.2 — Guide your eyes while scrolling

Scrolling can be distracting because your eyes may lose orientation. This library implements a minor mode that highlights the previously visible buffer part after each scroll.

emacs-org 9.1.14 — Outline-based notes management and organizer

Org is an Emacs mode for keeping notes, maintaining TODO lists, and project planning with a fast and effective lightweight markup language. It also is an authoring system with unique support for literate programming and reproducible research.

emacs-org-brain 0.5 — Org-mode wiki and concept-mapping for Emacs

emacs-org-brain implements a variant of concept mapping in Emacs, using org-mode. An org-brain is a network of org-mode entries, where each entry is a file or a headline, and you can get a visual overview of the relationships between the entries: parents, children, siblings and friends. This visual overview can also be used to browse your entries. You can think of entries as nodes in a mind map, or pages in a wiki.

emacs-org-bullets 0.2.4 — Show bullets in org-mode as UTF-8 characters

This package provides an Emacs minor mode causing bullets in org-mode to be rendered as UTF-8 characters.

emacs-org-caldav 20180403 — Sync Org files with external calendars via the CalDAV protocol

Synchronize between events in Org-mode files and a CalDAV calendar. This code is still alpha.

emacs-org-contrib 20180507 — Contributed packages to Org mode

Org is an Emacs mode for keeping notes, maintaining TODO lists, and project planning with a fast and effective plain-text system.

This package is equivalent to org-plus-contrib, but only includes additional files that you would find in contrib/ from the git repository.

emacs-org-edit-latex 0.8.0 — Edit a latex fragment just like editing a src block

emacs-org-edit-latex is an extension for org-mode. It lets you edit a latex fragment in a dedicated buffer just like editing a src block.

emacs-org-mind-map 0.0.1-1.9d6e262 — Create Graphviz directed graphs from Org files

This package creates Graphviz directed graphs from Org files.

emacs-org-pomodoro 2.1.0 — Pomodoro technique for org-mode

emacs-org-pomodoro adds very basic support for Pomodoro technique in Emacs org-mode.

Run M-x org-pomodoro for the task at point or select one of the last tasks that you clocked time for. Each clocked-in pomodoro starts a timer of 25 minutes and after each pomodoro a break timer of 5 minutes is started automatically. Every 4 breaks a long break is started with 20 minutes. All values are customizable.

emacs-org-ref 1.1.1-1.8c9b5d7 — Citations, cross-references and bibliographies in org-mode

Lisp code to setup bibliography, cite, ref and label org-mode links. Also sets up reftex and helm for org-mode citations. The links are clickable and do things that are useful.

The default setup uses helm-bibtex.

You should really read in this package for details.

emacs-org-reveal 20161027.926 — Org and Reveal.js powered HTML presentation tool

Org-Reveal is a command{org-mode

emacs-org-tree-slide 0.1-0.dff8f1a — Presentation tool for org-mode

Org-tree-slide provides a slideshow mode to view org-mode files. Use org-tree-slide-mode to enter the slideshow mode, and then C-> and C-< to jump to the next and previous slide.

emacs-org-trello 0.8.0 — Emacs minor mode for interacting with Trello

This package provides an Emacs minor mode to extend org-mode with Trello abilities. Trello is an online project organizer.

emacs-org-web-tools 1.0 — Display/Process web page as Org-mode content

This package contains library functions and commands useful for retrieving web page content and processing it into Org-mode content.

For example, you can copy a URL to the clipboard or kill-ring, then run a command that downloads the page, isolates the “readable” content with eww-readable, converts it to Org-mode content with Pandoc, and displays it in an Org-mode buffer. Another command does all of that but inserts it as an Org entry instead of displaying it in a new buffer.

emacs-org2web 0.9.1 — Static site generator based on org-mode

Org2web is a static site generator based on org-mode, which code derived from Kelvin H's org-page.

emacs-orgalist 1.9 — Manage Org-like lists in non-Org buffers

Write Org mode's plain lists in non-Org buffers. More specifically, Orgalist supports the syntax of Org mode for numbered, unnumbered, description items, checkboxes, and counter cookies.

The library also implements radio lists, i.e., lists written in Org syntax later translated into the host format, e.g., LaTeX or HTML.

emacs-outorg 2.0-1.78b0695 — Org-style comment editing

Outorg is for editing comment-sections of source-code files in temporary Org-mode buffers. It turns conventional literate-programming upside-down in that the default mode is the programming-mode, and special action has to be taken to switch to the text-mode (i.e. Org-mode).

emacs-outshine 2.0-1.5f1a6b7 — Emacs outline with outshine

Outshine attempts to bring the look and feel of org-mode to an Emacs outside of the Org major-mode. It is an extension of outline-minor-mode (org-mode itself derives from outline-mode), so there is no such thing like an outshine mode, only outline-minor-mode with outshine extensions loaded.

emacs-ox-twbs 1.1.1 — Export org-mode docs as HTML compatible with Twitter Bootstrap

This Emacs package outputs your org-mode docs with a simple, clean and modern look. It implements a new HTML back-end for exporting org-mode docs as HTML compatible with Twitter Bootstrap. By default, HTML is exported with jQuery and Bootstrap resources included via osscdn.

emacs-package-lint 0.5-1.69bb89d — Linting library for elisp package authors

This provides a list of issues with the Emacs package metadata of a file, e.g. the package dependencies it requires. See function package-lint-buffer. Checks will currently be enabled only if a "Package-Requires:" or "Package-Version:" header is present in the file.

emacs-page-break-lines 0.11 — Display page breaks as tidy horizontal lines

This library provides a global mode which displays form feed characters as horizontal rules.

emacs-paredit 24 — Emacs minor mode for editing parentheses

ParEdit (paredit.el) is a minor mode for performing structured editing of S-expression data. The typical example of this would be Lisp or Scheme source code.

ParEdit helps **keep parentheses balanced** and adds many keys for moving S-expressions and moving around in S-expressions. Its behavior can be jarring for those who may want transient periods of unbalanced parentheses, such as when typing parentheses directly or commenting out code line by line.

emacs-paren-face 1.0.0 — Face for parentheses in lisp modes

This library defines a face named parenthesis used just for parentheses. The intended purpose of this face is to make parentheses less visible in Lisp code by dimming them. Lispers probably don't need to be constantly made aware of the existence of the parentheses. Dimming them might be even more useful for people new to lisp who have not yet learned to subconsciously blend out the parentheses.

emacs-parent-mode 2.3 — Get major mode's parent modes

Get major mode's parent modes

emacs-parinfer-mode 0.4.10 — Lisp structure editing mode

parinfer-mode is a proof-of-concept editor mode for Lisp programming languages. It will infer some changes to keep Parens and Indentation inline with one another.

emacs-parsebib 2.3.1 — Library for parsing bib files

This package provides an Emacs library for parsing bib files.

emacs-pass 1.7 — Major mode for password-store.el

This is a major mode for managing password-store (pass) keychains. The keychain entries are displayed in a directory-like structure and can be consulted and modified.

emacs-password-store 1.7.3 — Password store (pass) support for Emacs

This package provides functions for working with pass ("the standard Unix password manager").

emacs-pcre2el 1.8-1.0b5b2a2 — Convert between PCRE, Emacs and rx regexp syntax

pcre2el or rxt (RegeXp Translator or RegeXp Tools) is a utility for working with regular expressions in Emacs, based on a recursive-descent parser for regexp syntax. In addition to converting (a subset of) PCRE syntax into its Emacs equivalent, it can do the following:

  • convert Emacs syntax to PCRE

  • convert either syntax to rx, an S-expression based regexp syntax

  • untangle complex regexps by showing the parse tree in rx form and highlighting the corresponding chunks of code

  • show the complete list of strings (productions) matching a regexp, provided the list is finite

  • provide live font-locking of regexp syntax (so far only for Elisp buffers – other modes on the TODO list).

emacs-pdf-tools 0.80 — Emacs support library for PDF files

PDF Tools is, among other things, a replacement of DocView for PDF files. The key difference is that pages are not pre-rendered by e.g. ghostscript and stored in the file-system, but rather created on-demand and stored in memory.

emacs-perspective 1.12 — Switch between named "perspectives"

This package provides tagged workspaces in Emacs, similar to workspaces in windows managers such as Awesome and XMonad. perspective.el provides multiple workspaces (or "perspectives") for each Emacs frame. Each perspective is composed of a window configuration and a set of buffers. Switching to a perspective activates its window configuration, and when in a perspective only its buffers are available by default.

emacs-pg 0.1-1.4f6516e — Emacs Lisp interface for PostgreSQL

This package provides an Emacs Lisp interface for PostgreSQL.

emacs-php-mode 20171225.342 — Major mode for editing PHP code

php-mode is a major mode for editing PHP source code. It's an extension of C mode; thus it inherits all C mode's navigation functionality. But it colors according to the PHP grammar and indents according to the PEAR coding guidelines. It also includes a couple handy IDE-type features such as documentation search and a source and class browser.

emacs-picpocket 20180610.1059 — Image viewer for Emacs

Picpocket is an image viewer for GNU Emacs. It has commands for:

  • File operations on the picture files (delete, move, copy, hardlink).

  • Scale and rotate the picture.

  • Associate pictures with tags which are saved to disk.

  • Filter pictures according to tags.

  • Customizing keystrokes for quick tagging and file operations.

  • Undo and browse history of undoable commands.

emacs-pinentry 0.1-1.dcc9ba0 — GnuPG Pinentry server implementation

This package allows GnuPG passphrase to be prompted through the minibuffer instead of graphical dialog.

To use, add allow-emacs-pinentry to ~/.gnupg/gpg-agent.conf, reload the configuration with gpgconf --reload gpg-agent, and start the server with M-x pinentry-start.

emacs-pkg-info 0.6 — Information about Emacs packages

This library extracts information from the installed Emacs packages.

emacs-polymode 1.0-1.0340f5e — Framework for multiple Emacs modes based on indirect buffers

Polymode is an Emacs package that offers generic support for multiple major modes inside a single Emacs buffer. It is lightweight, object oriented and highly extensible. Creating a new polymode typically takes only a few lines of code. Polymode also provides extensible facilities for external literate programming tools for exporting, weaving and tangling.

emacs-popup 0.5.3 — Visual Popup User Interface for Emacs

Popup.el is a visual popup user interface library for Emacs. This provides a basic API and common UI widgets such as popup tooltips and popup menus.

emacs-pos-tip 0.4.6 — Show tooltip at point

The standard library tooltip.el provides a function for displaying a tooltip at the mouse position. However, locating a tooltip at an arbitrary buffer position in a window is not easy. Pos-tip provides such a function to be used by other frontend programs.

emacs-powerline 2.4 — Mode-line plugin for Emacs

Powerline is a utility plugin which allows you to create a better-looking, more functional Emacs mode-line. A collection of predefined themes comes with the package.

emacs-pretty-mode 2.0.3 — Redisplay parts of the buffer as Unicode symbols

Emacs minor mode for redisplaying parts of the buffer as pretty symbols.

emacs-projectile 0.14.0 — Manage and navigate projects in Emacs easily

This library provides easy project management and navigation. The concept of a project is pretty basic - just a folder containing special file. Currently git, mercurial and bazaar repos are considered projects by default. If you want to mark a folder manually as a project just create an empty .projectile file in it.

emacs-prop-menu 0.1.2 — Create and display a context menu based on text and overlay properties

This is a library for computing context menus based on text properties and overlays. The intended use is to have tools that annotate source code and others that use these annotations, without requiring a direct coupling between them, but maintaining discoverability.

Major modes that wish to use this library should first define an appropriate value for prop-menu-item-functions. Then, they should bind prop-menu-by-completing-read to an appropriate key. Optionally, a mouse pop-up can be added by binding prop-menu-show-menu to a mouse event.

emacs-pulseaudio-control 0.0.1-2.1da372e — Control pulseaudio from Emacs

This package allows to control pulseaudio from Emacs.

emacs-puppet-mode 0.3-1.b3ed505 — Emacs major mode for the Puppet configuration language

This package provides support for the Puppet configuration language, including syntax highlighting, indentation of expressions and statements, linting of manifests and integration with Puppet Debugger.

emacs-pyim 1.6.4 — Chinese input method

Chinese input method which supports quanpin, shuangpin, wubi and cangjie.

emacs-pyim-basedict 0.3.1 — Input method dictionary of pyim

Pyim-basedict is the default pinyin input method dictionary, containing words from the rime project.

emacs-pyvenv 1.11 — Virtualenv minor mode for Emacs

pyvenv.el is a minor mode to support using Python virtual environments (virtualenv) inside Emacs.

emacs-queue 0.2 — Queue data structure for Emacs

This Emacs library provides queue data structure. These queues can be used both as a first-in last-out (FILO) and as a first-in first-out (FIFO) stack, i.e. elements can be added to the front or back of the queue, and can be removed from the front. This type of data structure is sometimes called an "output-restricted deque".

emacs-racket-mode 0.0.2-2.b977873 — Major mode for Racket language

racket-mode provides:

  • Focus on Racket (not various Schemes).

  • Follow DrRacket concepts where applicable.

  • Thorough font-lock and indent.

emacs-rainbow-blocks 1.0.0-1.dd435d7 — Highlight sexp blocks

Rainbow-blocks is an Emacs mode that highlights blocks made of parentheses, brackets, and braces according to their depth. Each successive level is highlighted in a different color. This makes it easy to orient yourself in the code, and tell which statements are at a given level.

emacs-rainbow-delimiters 2.1.3 — Highlight brackets according to their depth

Rainbow-delimiters is a "rainbow parentheses"-like mode for Emacs which highlights parentheses, brackets, and braces according to their depth. Each successive level is highlighted in a different color, making it easy to spot matching delimiters, orient yourself in the code, and tell which statements are at a given level.

emacs-rainbow-identifiers 0.2.2 — Highlight identifiers in source code

Rainbow identifiers mode is an Emacs minor mode providing highlighting of identifiers based on their names. Each identifier gets a color based on a hash of its name.

emacs-rainbow-mode 0.13 — Colorize color names in buffers

This minor mode sets background color to strings that match color names, e.g. #0000ff is displayed in white with a blue background.

emacs-realgud 1.4.5 — Modular front-end for interacting with external debuggers

RealGUD is a modular, extensible GNU Emacs front-end for interacting with external debuggers. It integrates various debuggers such as gdb, pdb, ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the sources. Unlike GUD, it also supports running multiple debug sessions in parallel.

emacs-recent-addresses 0.1-1.afbbfdc — Record recently-used email addressed and auto-complete them

recent-addresses is an Emacs package that allows you to quickly look up previously used email addresses. It can be used alongside the Gnus email client.

emacs-request 0.3.0 — Package for speaking HTTP in Emacs Lisp

This package provides a HTTP request library with multiple backends. It supports url.el which is shipped with Emacs and the curl command line program.

emacs-restclient 1.07a3888 — Explore and test HTTP REST webservices

This tool allows for testing and exploration of HTTP REST Web services from within Emacs. Restclient runs queries from a plan-text query sheet, displays results pretty-printed in XML or JSON with restclient-mode

emacs-rfcview 0.13 — Prettify Request for Comments (RFC) documents

The Internet Engineering Task Force (IETF) and the Internet Society (ISOC) publish various Internet-related protocols and specifications as "Request for Comments" (RFC) documents and Internet Standard (STD) documents. RFCs and STDs are published in a simple text form. This package provides an Emacs major mode, rfcview-mode, which makes it more pleasant to read these documents in Emacs. It prettifies the text and adds hyperlinks/menus for easier navigation. It also provides functions for browsing the index of RFC documents and fetching them from remote servers or local directories.

emacs-rich-minority 1.0.1 — Clean-up and beautify the list of minor modes

This Emacs package hides and/or highlights minor modes in the mode-line.

emacs-robe 0.8.1 — Ruby code assistance tool for Emacs

Robe can provide information on loaded classes and modules in Ruby code, as well as where methods are defined. This allows the user to jump to method definitions, modules and classes, display method documentation and provide method and constant name completion.

emacs-rpm-spec-mode 0.16 — Emacs major mode for editing RPM spec files

emacs-rpm-spec-mode provides an Emacs major mode for editing RPM spec files.

emacs-rspec 1.11 — Provides a rspec mode for working with RSpec

The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to verify the spec associated with the current buffer, or entire project, as well as moving between the spec files, and coresponding code files.

Also included are keybindings for spec files and Dired buffers, as well as snippets for yasnippet.

emacs-rsw-elisp 1.0.5 — Improved expressions that interactively evaluate Emacs Lisp

This package improves and replaces the GNU Emacs commands that interactively evaluate Emacs Lisp expressions. The new commands replace standard key bindings and are all prefixed with rsw-elisp-. They work the same way as the old commands when called non-interactively; only the interactive behavior should be different.

emacs-rudel 0.3.1 — Collaborative editing framework

Rudel is a collaborative editing environment for GNU Emacs. Its purpose is to share buffers with other users in order to edit the contents of those buffers collaboratively. Rudel supports multiple backends to enable communication with other collaborative editors using different protocols, though currently Obby (for use with the Gobby editor) is the only fully-functional one.

emacs-rust-mode 0.3.0-0.64b4a24 — Major Emacs mode for editing Rust source code

This package provides a major Emacs mode for editing Rust source code.

emacs-s 1.12.0 — Emacs string manipulation library

This package provides an Emacs library for manipulating strings.

emacs-scel 20170629-1.aeea3ad — SuperCollider Emacs interface

emacs-scel is an Emacs interface to SuperCollider. SuperCollider is a platform for audio synthesis and algorithmic composition.

emacs-scheme-complete 20151223.9b5cf224 — Smart tab completion for Scheme in Emacs

This file provides a single function, scheme-smart-complete, which you can use for intelligent, context-sensitive completion for any Scheme implementation in Emacs. To use it just load this file and bind that function to a key in your preferred mode.

emacs-scratch-el 1.2-1.2cdf2b8 — Create scratch buffers with the same mode as current buffer

Scratch is an extension to Emacs that enables one to create scratch buffers that are in the same mode as the current buffer. This is notably useful when working on code in some language; you may grab code into a scratch buffer, and, by virtue of this extension, do so using the Emacs formatting rules for that language.

emacs-seq 2.20 — Sequence manipulation functions

Sequence-manipulation functions that complement basic functions provided by subr.el.

emacs-shell-switcher 1.0.1 — Provide fast switching between shell buffers

This package provides commands to quickly switch between shell buffers.

emacs-shift-number 0.1 — Increase or decrease the number at point

emacs-shift-number provides commands shift-number-up to increase and shift-number-down to decrease the number at point.

emacs-shut-up 0.3.2 — Silence Emacs

This package silences most output of Emacs when running an Emacs shell script.

emacs-simple-httpd 1.4.6 — HTTP server in pure Emacs Lisp

This package provides a simple HTTP server written in Emacs Lisp to serve files and directory listings.

emacs-skewer-mode 1.6.2 — Live web development in Emacs

Skewer-mode provides live interaction with JavaScript, CSS, and HTML in a web browser. Expressions are sent on-the-fly from an editing buffer to be evaluated in the browser, just like Emacs does with an inferior Lisp process in Lisp modes.

emacs-slack 0-4.d903954 — Slack client for Emacs

This package provides an Emacs client for the Slack messaging service.

emacs-slime 2.22 — Superior Lisp Interaction Mode for Emacs

SLIME extends Emacs with support for interactive programming in Common Lisp. The features are centered around slime-mode, an Emacs minor mode that complements the standard lisp-mode. While lisp-mode supports editing Lisp source files, slime-mode adds support for interacting with a running Common Lisp process for compilation, debugging, documentation lookup, and so on.