This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/LAYERS.org

111 KiB
Raw Blame History

Configuration layers

THIS FILE IS AUTO GENERATED

Don't edit it directly. See "README.org tags" section of CONTRIBUTING.org for instructions.

Chats

Erc

+chat/erc/README.org

Layer for ERC IRC chat.

Features:

  • Highlight nicks (using erc-hl-nicks)
  • Image inline support (using erc-image)
  • Logging to ~/.emacs.d/.cache/erc-logs and ViewLogMode for viewing logs (using erc-view-log)
  • YouTube videos Thumbnails inline (using erc-yt)
  • Social Graph for ERC messages (using erc-social-graph)
  • Optional SASL authentication via the variable erc-enable-sasl-auth (using erc-sasl)
  • D-BUS notifications via the variable erc-enable-notifications
  • Completion of Emojis using company-emoji (still needs a way of showing, either using the emoji layer or having a proper font) 👏

Jabber

+chat/jabber/README.org

This layer adds support for the Jabber (XMPP) client for Emacs

Features:

  • Use Jabber without having to leave Spacemacs

Rcirc

+chat/rcirc/README.org

This layer provide support for rcirc with optional support for authinfo and ZNC.

Features:

  • Store channel logs into ~/.emacs.d/.cache/rcirc-logs/<channel>
  • Support for credentials stored in ~/.authinfo.gpg (need to have gnutls)
  • Support ZNC support (with optional ~/.authinfo.gpg)
  • Colored nicknames
  • Real-time change when people use s/foo/bar/ in chat
  • Completion of Emojis using company-emoji (still needs a way of showing, either using the emoji layer or having a proper font) 👏

Slack

+chat/slack/README.org

This layer provides an interface to the Slack chat service via the emacs-slack package. Where possible, this layer aims to reuse key bindings from the IRC packages in Spacemacs.

Features:

Checkers

Spell checking

+checkers/spell-checking/README.org

This layer provides spell checking capabilities to Spacemacs.

Features:

  • Buffer-wide spell checking via external command (ispell, hunspell, aspell) run through Flyspell.
  • Spell as you type
  • Optional correction popups, controlled by enable-flyspell-auto-completion variable.
  • Auto dictionary mode for some languages.

Syntax checking

+checkers/syntax-checking/README.org

This layer adds on the fly syntax checking to all supported language layers.

Features:

  • Support for automatic syntax checking with Flycheck for various language layers
  • Tooltip syntax errors with popwin

Completion

Auto-completion

+completion/auto-completion/README.org

This layer adds auto-completion to all supported language layers.

Features:

Helm

+completion/helm/README.org

This layer enables Helm everywhere in Spacemacs. The alternative to this layer is the Ivy layer which brings the same level of integration as Helm.

These completion systems are the central control towers of Spacemacs, they are used to manage buffers, projects, search results, configuration layers, toggles and more…

Mastering your choice of completion system will make you a Spacemacs power user.

Features:

  • Project wide grep like text search via helm-dir-smart-do-search
  • Project wide text replacements using helm-edit-mode
  • Buffer wide dynamic text search via helm-swoop
  • Fuzzy matching for most helm-sources
  • Detailed configuration parameters for helms appearance
  • Intuitive transient state

Ivy

+completion/ivy/README.org

This layer enables Ivy for completion. It will replace the default completion by Helm.

These completion systems are the central control towers of Spacemacs, they are used to manage buffers, projects, search results, configuration layers, toggles and more…

Mastering your choice of completion system will make you a Spacemacs power user.

Features:

  • Project wide grep like text search via search-auto
  • Project wide text replacements using counsel-imenu
  • Buffer wide dynamic text search via swiper
  • Detailed configuration parameters for ivy appearance
  • Intuitive transient state
  • Advanced buffer information with ivy-rich

Templates

+completion/templates/README.org

This layer provides templates to Spacemacs. A template consists of text that is automatically inserted into a new file when it is opened. This is done via yatemplate, which leverages yasnippet.

Features:

  • Auto-insert snippets when creating specific new files.

E-mail

Gnus

+email/gnus/README.org

This layer integrates a general purpose email/newsgroup client into Spacemacs.

Features:

  • Support for reading RSS feeds, newsgroups and mails directly within Emacs via Gnus.
  • Support for beautiful HTML mails generated from any org buffer.
  • Support for credential management via GnuPG.

Mu4e

+email/mu4e/README.org

This layer adds support for the Mu4e email client.

Features:

  • Search, read, reply, move, and delete email.
  • Search-based: no folders, only queries.
  • UI optimized for speed: quick keystrokes for common actions.
  • Very extendable and customizable.
  • Integration with Helm.
  • Maildir summary using mu4e-mailidrs-extension
  • Notifications using mu4e-alert

Notmuch

+email/notmuch/README.org

Notmuch offers a fast, global-search and tag-based email system to use within your text editor or in a terminal.

This layer integrates the Notmuch Emacs package into Spacemacs.

Features:

  • Email searching
  • Email tagging

Emacs

Better defaults

+emacs/better-defaults/README.org

This layer enhances the default commands of Emacs and is primarily intended to be used with the emacs editing style as it does not change anything in the Vim key bindings.

However the emacs editing style is not required, you can still use this layer while you are using the vim editing style if you have some kind of mixed style.

The commands defined in this layer are taken from various sources like Prelude.

Features:

  • Smart line navigation: Subsequent presses of C-a toggles between the beginning of the line and the first non-whitespace character. Similarly, subsequent presses of C-e will toggle between the end of the code and the end of the comments.
  • spacemacs/backward-kill-word-or-region: A combination of kill-region and backward-kill-word, depending on whether there is an active region. If there's an active region kill that. If not kill the preceding word.
  • Fill or unfill paragraph: Pressing M-q for the first time fills current paragraph and pressing M-q for the second time unfills it. Note that some modes override this key binding so it's not available everywhere. Due to implementation details unfilling doesn't work when called twice via M-x.

Ibuffer

+emacs/ibuffer/README.org

This layer configures Emacs IBuffer for Spacemacs.

Features:

  • Grouping of buffers by major-modes
  • Grouping of buffers by projects

Org

+emacs/org/README.org

This layer enables org mode for Spacemacs.

Features:

Semantic

+emacs/semantic/README.org

CEDET is a *C*ollection of *E*macs *D*evelopment *E*nvironment *T*ools written with the end goal of creating an advanced development environment in Emacs. CEDET includes common features such as intelligent completion, source code navigation, project management, code generation with templates. CEDET also provides a framework for working with programming languages; support for new programming languages can be added and use CEDET to provide IDE-like features. This framework is called Semantic.

Semantic is a package that provides a framework for writing parsers. Parsing is a process of analyzing source code based on programming language syntax. The packages relies on Semantic for analyzing source code and uses its results to perform smart code refactoring that based on code structure of the analyzed language, instead of plain text structure. Semantic is the core of CEDET.

Features:

  • Display function or variable definition at the bottom.
  • Display current function cursor is in at the top. See this page for demos in some programming languages.
  • Support common C/C++ refactoring with semantic-refactor. See this page for demonstration of refactoring features.
  • Support Lisp source code formatting with semantic-refactor. See this page for demonstration of Lisp formatting features.

Smex

+emacs/smex/README.org

This layer provides a more traditional alternative to helm-M-x based on ido.

Features:

  • Provides an alternative way for helm-M-x based on ido and smex

Typography

+emacs/typography/README.org

This layer provides support for typographic text editing in Spacemacs.

Features:

  • Modes to automatically insert and cycle among typographic characters
  • Typo Mode automatically inserts and cycles among typographic Unicode characters on some keys.
  • Tildify Mode automatically inserts non-breaking spaces where required (Only available on Emacs 25).

File trees

Neotree

+filetree/neotree/README.org

This layer setups a file tree navigator buffer using Neotree (replacing the Treemacs layer).

Features:

  • intuitive evil key bindings integration
  • supports multiple themes
  • transient state by pressing on ?
  • version-control integration

Treemacs

+filetree/treemacs/README.org

This layer sets up a file navigation and project explorer side-window via Treemacs.

Features:

An detailed overview over Treemacs' available features is available in its readme. In a short summary Treemacs offers the following:

  • Simple and powerful navigation and ability to detail exactly how and where a file should be opened
  • Good looking png icons.
  • Display of multiple file trees organized as projects residing in a workspace.
  • Ability to show tags contained in files. Tags are provided by imenu, so nearly every filetype is supported.
  • Mouse interface for single and double left clicks in line with modern GUI standards. (Clicking on an icon will also display a file's tags)
  • Locational awareness: commands like find-file or magit-status will use the location of the node at point (with $HOME as fallback)
  • Optionally fontifying files based on their git status.
  • Optionally collapsing single-dir-child directories into one.
  • Doing both asynchronously for an imperceptible performance cost.
  • Optional follow-mode to automatically focus the currently selected file.
  • Optional filewatch-mode to automatically refresh the view after (and only after) changes to the shown filesystem.

Fonts

Unicode-fonts

+fonts/unicode-fonts/README.org

This layer adds support for the unicode-fonts package. It is recommended to install the fonts listed in the Quickstart section of the unicode-fonts README.

Features:

  • Display unicode glyphs using the best available font.
  • Easily override glyphs or sections of glyphs.
  • Display color emoji on both the Mac port version of Emacs and emacs-plus (with unicode-fonts-force-multi-color-on-mac set to non nil).

Fun

Emoji

+fun/emoji/README.org

This layer adds support for Emoji emoticons from emoji-cheat-sheet.

Features:

  • Browse Emoji in a dedicated buffer
  • Display Emoji images in buffer
  • Insert one or several Emoji with a helm front-end
  • Completion of Emojis using company-emoji

Games

+fun/games/README.org

This layer allows you to play evilified games in Spacemacs.

Features:

  • 2048-game
  • Pacmacs (Pacman for Emacs)
  • Sudoku
  • Tetris
  • Typit

Selectric

+fun/selectric/README.org

This layer makes your Emacs sound like an IBM Selectric typewriter, for those moments when your loud, clicky mechanical keyboard is not at hand, yet, you'd still wish to enjoy the sound.

Features:

  • Brings back fond memories about your first programming job where you started with that big mechanical keyboard and the small monochrome display working on the latest IBM Iseries server.

Xkcd

+fun/xkcd/README.org

This layer adds a xkcd navigation mode using emacs-xkcd.

Features:

  • Load a random xkcd
  • Show the text in the modeline
  • Open explanation and current comic in browser
  • Cache the comics in .cache/xkcd

Internationalization

Chinese

+intl/chinese/README.org

This layer adds support for traditional Chinese script to Spacemacs.

Features:

Japanese

+intl/japanese/README.org

This Layer adds Japanese related packages.

Features:

  • evil-tutor-ja: Japanese Vimtutor adapted to Emacs+Evil and wrapped in a major mode
  • migemo: Japanese incremental search through dynamic pattern expansion
  • helm-migemo-mode: helm with migemo
  • avy-migemo: avy with migemo
  • ddskk: Simple Kana to Kanji conversion program (SKK)
  • japanese-holidays: calendar functions for the Japanese calendar
  • pangu-spacing: emacs minor-mode to add space between Japanese and English characters.
  • Join consecutive Japanese lines into a single long line without unwanted space when exporting org-mode to html.

Keyboard-layout

+intl/keyboard-layout/README.org

This layer configures some key bindings in Spacemacs, to make it compatible with keyboard layouts that differs from the traditional en-us QWERTY layout.

Features:

  • Support alternative keyboard layouts within Spacemacs
  • Remap navigation commands to the homerow of your chosen layout
  • Remap missing commands automatically to elsewhere in the layout

Miscellaneous

Copy-as-format

+misc/copy-as-format/README.org

This layer adds support for copy-as-format.

Features:

  • Function to copy buffer locations as GitHub/Slack/JIRA/HipChat/… formatted code

Ietf

+misc/ietf/README.org

The IETF layer collects various useful packages for participating in the Internet Engineering Task Force (https://www.ietf.org).

Features:

  • Fetching and opening IETF documents.
  • Viewing IETF documents.
  • Writing IETF documents.

Multiple-cursors

+misc/multiple-cursors/README.org

Features:

  • support for multiple cursors.

Nlinum

+misc/nlinum/README.org

This layer provides various styles of line numbering in Spacemacs. It replaces linum and linum-relative with the improved nlinum and nlinum-relative packages.

Please note that on Emacs 26 and newer, this layer also replaces the new native line numbers mode (display-line-numbers-mode), and because of that it is not recommended to use nlinum layer on Emacs 26 or newer.

Features:

  • Support for classic ascending line numbering.
  • Support for line numbering relative to the current cursor position.

Parinfer

+misc/parinfer/README.org

This layer provides an implementation of parinfer, a lisp editing paradigm that controls indentation based on parentheses or vice versa.

Features:

  • Automatic management of parenthesis in clojure, emacs lisp, common-lisp and scheme following the parinfer editing paradigm.

Spacemacs-completion

+spacemacs/spacemacs-completion/README.org

This layer does basic setup for completion frameworks like helm, ivy and ido.

Its main role is to ensure sane defaults and consistent UI between helm and ivy because even when you are using only one of them you could still need to use the other (for instance a package that supports only helm).

Advanced configuration of these packages can be found in their respective layers in +completion layer directory.

Features:

  • Base preconfiguration of helm and ivy for other layers to use.
  • Basic support for ido-navigation configuration and transient state.

Spacemacs-defaults

+spacemacs/spacemacs-defaults/README.org

This layer configures mostly Emacs built-in packages to given them better defaults.

Features:

  • Configures packages:

    • abbrev
    • archive-mode
    • bookmark
    • conf-mode
    • dired
    • dired-x
    • display-line-numbers (only in Emacs 26.x and newer)
    • electric-indent-mode
    • ediff
    • eldoc
    • help-fns+
    • hi-lock
    • image-mode
    • imenu
    • linum (only in Emacs 25.x and older)
    • occur-mode
    • package-menu
    • page-break-lines
    • process-menu
    • recentf
    • savehist
    • saveplace
    • subword
    • tar-mode
    • uniquify
    • url
    • visual-line-mode
    • whitespace
    • winner
    • zone

Spacemacs-editing

+spacemacs/spacemacs-editing/README.org

This layer adds packages to improve editing with Spacemacs.

Features:

  • Support for automatic indentation of code via aggressive-indent.
  • Support for jumping to chars using a decision tree via avy.
  • Improvements for evaluating sexps via eval-sexp-fu.
  • Selecting and editing of multiple text elements via expand-region.
  • Support for editing files in hex format via hexl.
  • Deletion of consecutive horizontal whitespace with a single key via hungry-delete.
  • Support for selecting, copying and opening links using avy via link-hint.
  • Adding of sample text via lorem-ipsum.
  • Transient state for moving text via move-text.
  • Support for folding of code via origami.
  • Support for password generation via password-generator.
  • Support for improving parenthesis handling via smartparens.
  • Automatic whitespace cleanup on save via spacemacs-whitespace-cleanup.
  • Support for converting definitions to certain styles via string-inflection.
  • Support for generating UUIDs via uuidgen.
  • Support for conversion between Emacs regexps and PCRE regexps.

Spacemacs-editing-visual

+spacemacs/spacemacs-editing-visual/README.org

This layer defines a lot of functions used to visually enhance the currently edited line in Spacemacs.

Features:

  • Adaptive wrapping
  • Hiding of comments
  • Highlighting of columns longer than 80 chars
  • Highlighting of different indentations
  • Automatic highlighting of numbers
  • Automatic highlighting of parentheses

Spacemacs-evil

+spacemacs/spacemacs-evil/README.org

This layer adds various adjustments to packages to create an evilified experience throughout the entirety of Spacemacs.

Features:

  • Add evil tutorial with evil-tutor
  • Add relative line number with linum-relative (only in Emacs 25.x and older)
  • Add escaping under fd by default with evil-escape
  • Add occurrences count in mode-line when searching a buffer
  • Add support for lisp structure manipulation with evil-lisp-state
  • Add safe structural editing of lisp dialects with evil-cleverparens
  • Add evil-exchange to swap text
  • Add easy live editing of multiple occurrences with evil-iedit-state
  • Add new vim text objects for indentation with evil-indent-plus
  • Add operations to align text with evil-lion
  • Easy management of comments with evil-nerd-commenter
  • Navigation between pairs with evil-matchit
  • Advanced navigation on brackets with evil-unimpaired
  • Easy increment and decrement of numbers with evil-number
  • Support for additional vim movements via evil-args
  • Support for surrounding the marked area with a given character via evil-surround
  • Evilification of various modes if the editing style is vim or hybrid
  • Improves the comment function to be able to also do the inverse operation
  • Persistent highlight of searched text with evil-search-highlight-persist
  • Display tildes in non-buffer area with vi-tilde-fringe

Spacemacs-language

+spacemacs/spacemacs-language/README.org

This layer adds support various language related services to Spacemacs.

Features:

Spacemacs-layouts

+spacemacs/spacemacs-layouts/README.org

This layer adds support for distinct layouts/workspaces to Spacemacs.

Features:

  • Support for distinct layouts via eyebrowse
  • Integration with helm and ivy to search for buffers within layouts

Spacemacs-misc

+spacemacs/spacemacs-misc/README.org

This layer adds some general packages into Spacemacs.

Features:

  • Support for jumping to definitions via dumb-jump or evil-goto-definition.
  • Support for an easy http request client via request.

Spacemacs-modeline

+spacemacs/spacemacs-modeline/README.org

This layer adds various mode-lines to Spacemacs.

Features:

  • Display of a vim-powerline like mode-line being able to show various information like

    • Current battery status
    • All active minor modes displayed as unicode symbols
    • The active major mode
    • The current branch if the file is in version control
    • The current cursor position
    • The system clock
  • Display of a small system monitor in a separate mode-line.

Spacemacs-navigation

+spacemacs/spacemacs-navigation/README.org

This layer adds general navigation functions to all supported layers.

Features:

  • Support for ace-links in

    • spacemacs buffer
    • info-mode
    • help-mode
    • eww-mode
  • Support for keeping the cursor centered on the screen
  • Evilified version of doc-view-mode
  • Tweaks for golden-ratio-mode
  • Support for paradox a modern emacs package manager
  • Shortcuts for restarting emacs
  • Shortcuts for easily switching between windows

Spacemacs-org

+spacemacs/spacemacs-org/README.org

This layer tweaks org-mode to integrate nicely into Spacemacs.

Features:

  • Configuration for flyspell to check org-buffers for typos.
  • Support for automatically generated Table-Of-Contents via toc-org.
  • Support for custom bullet markers via org-bullets.
  • Support for a special view mode for org documents via space-doc.

Spacemacs-project

+spacemacs/spacemacs-project/README.org

This layer tweaks projectile to integrate nicely into Spacemacs.

Features:

  • Setup of projectile key bindings, including functions for project search, switching, version control and compilation.
  • Additional path helper functions, to copy the location of a buffer relative to the project root.

Spacemacs-purpose

+spacemacs/spacemacs-purpose/README.org

This layer enables window-purpose, which provides an alternative, purpose-based window manager for Emacs. With this layer, your window layout should be robust and shouldn't change too much when opening all sorts of buffers.

Regular popwin is not triggered when window-purpose is enabled. However, the window-purpose layer provides a purpose-popwin extension, which brings popwin's behavior to window-purpose and solves that problem.

Features:

  • Window layout is more robust and less likely to change unintentionally
  • Dedicate window to a purpose
  • User-defined purposes
  • Extensible window display behavior
  • Empty purpose-mode-map, to avoid conflicts with other key maps
  • Replicate popwin behavior for purpose-mode - almost no regression in popup behavior from using window-purpose.
  • Reuses popwin's settings: popwin:special-display-config, popwin:popup-window-height and popwin:popup-window-width.
  • Difference from popwin: when several windows are open, popup window is sometimes bigger than with regular popwin in the same situation.

Spacemacs-visual

+spacemacs/spacemacs-visual/README.org

This layer adds various modes to enhance Spacemacs visual appearance.

Features:

  • Automatic colorization of compilation buffers via ansi-colors.
  • Support for resuming the last layout when starting Spacemacs via desktop.
  • Support for showing a thin vertical line to indicate the fill column via fill-column-indicator.
  • Automatic highlighting of TODO-tags in programming and text modes via hl-todo.
  • Support for temporary windows which close automatically via popwin.
  • Support for text zooming via zoom-frm.

Music

Alda layer

+lang/alda/README.org

Alda is a music composition language allowing music to easily be written and edited in a text file.

This layer adds key bindings for alda-mode's functions, which allow Alda code to be interpreted and played by the running Alda server. It will also start the Alda server if it is not running.

Features:

  • Syntax highlighting for Alda files.
  • Play portions of a buffer, or the entire buffer, through a running Alda server.

Spotify

+music/spotify/README.org

This layer integrates an online music service into Spacemacs.

Features:

  • Support for listening to music from within Emacs via Spotify.

Operating systems

Nixos

+os/nixos/README.org

This layer adds tools for better integration of Emacs in NixOS.

Features:

Osx

+os/osx/README.org

Spacemacs is not just emacs+vim. It can have OSX key bindings too! This layer globally defines common OSX key bindings.

Features:

  • is set to hyper and is set to meta
  • In dired use gls instead of ls
  • Fix separator colors of Spaceline mode-line

Pair programming

Floobits

+pair-programming/floobits/README.org

This layer adds support for the peer programming tool floobits to Spacemacs.

Features:

  • Loading of floobits configuration files with fixed commands
  • Creation of floobits workspaces and populating it with content
  • Marking of the current cursor position for all users within the current workspace
  • Follow recent changes by other users

Programming languages

Domain-specific (DSLs)

Coq

+lang/coq/README.org

This layer adds support for the Coq proof assistant (adapted from spacemacs-coq) to Spacemacs.

Features:

  • Syntax highlighting
  • Syntax-checking
  • Auto-completion
  • Debugging of mathematical proofs from within Emacs using a special proof layout
  • Replacement of certain constants with the correct mathematical signs
  • Inserting of certain preconfigured proof elements

Ess (r)

+lang/ess/README.org

This layer adds support for statistical programming languages to Spacemacs.

Features:

  • Syntax highlighting
  • Auto-completion
  • Syntax-checking via lintr
  • Additional data viewer for R via ess-R-data-view
  • Support for Org-Babel
  • Showing of inline help for R constructs
  • Repl support via R terminal
  • Support for S, SAS and R
  • Much more via the ESS Project

Extra languages

+lang/major-modes/README.org

This layer adds a number of packages for less common languages and major modes.

Features:

  • Support for:

    • Arch Linux PKGBUILDs
    • Arduino
    • Android Logcat (not associated with any file types by default)
    • Gentoo ebuilds
    • Hoon
    • Kivy
    • MATLAB
    • QML
    • OpenScad
    • Stan
    • Thrift
    • Vala
    • Wolfram Language / Mathematica

Faust

+lang/faust/README.org

This layer adds support for the faust language to Spacemacs.

Features:

  • Syntax highlighting
  • Auto-completion

Gpu

+lang/gpu/README.org

This layer adds support for GPU related languages like CUDA, OpenCL and various Shader formats to Spacemacs.

Features:

  • Syntax highlighting for

    • .cl (OpenCL)
    • .cu (CUDA)
    • .cuh (CUDA)
    • .fsh (Shaders)
    • .vsh (Shaders)
    • .glsl (Shaders)
    • .vert (Shaders)
    • .frag (Shaders)
    • .comp (Shaders)
    • .geom (Shaders)
    • .tesc (Shaders)
    • .tese (Shaders)
  • Simple auto-completion via company-glsl for

    • .vert (Shaders)
    • .geom (Shaders)
    • .tesc (Shaders)
    • .tese (Shaders)
    • .frag (Shaders)
    • .comp (Shaders)

Octave

+lang/octave/README.org

This layer adds support for GNU Octave files to Spacemacs.

Features:

  • Syntax highlighting for .m files via octave-mode.
  • REPL support
  • Support for directly running Octave scripts from Emacs.
  • Integration with Octaves documentation search function.

Prolog

+lang/prolog/README.org

This layer adds support for Prolog using the bundled Prolog mode for Emacs. In addition it also adds ediprolog support for better interaction with SWI-Prolog.

Features:

  • Designed for SWI-Prolog as a default, but can be used with other Prologs that Prolog mode supports.
  • Interactive consulting and compiling.
  • Auto-formatting.
  • Apropos and help lookup.

Sql

+lang/sql/README.org

This layer adds support for a wide range of SQL dialects to Spacemacs.

Features:

  • Syntax highlighting for the following SQL dialects

    • ANSI
    • DB2
    • Informix
    • Ingres
    • Interbase
    • Linter
    • Microsoft
    • MySQL
    • Oracle
    • Postgres
    • Solid
    • SQLite
    • Sybase
    • Vertica
  • Syntax-checking via sqlint for ANSI SQL.
  • Format code with sqlfmt
  • Snippet insertion for the more general SQL constructs.
  • REPL support via SQLi buffer.
  • Automatic capitalization of keywords.

Lisp dialects

Clojure

+lang/clojure/README.org

This layer adds support for Clojure language using CIDER.

Features:

Common lisp

+lang/common-lisp/README.org

This layer provides support for Common Lisp to Spacemacs.

Features:

  • Syntax highlighting
  • Auto-completion using company
  • Repl support via SLIME
  • Support for specific lisp navigation styles via common-lisp-mode
  • Support for sbcl backend or any other common-lisp implementation
Emacs lisp

+lang/emacs-lisp/README.org

This layer gathers all the configuration related to emacs-lisp. This should always be in your dotfile, it is not recommended to uninstall it.

Features:

  • Auto-completion using company
  • Linting using flycheck integration
  • Linting package file metadata using flycheck-package
  • Repl support via IELM
  • Support for specific lisp navigation styles via emacs-lisp-mode
  • Auto-compile via auto-compile package
  • Debugging via edebug
  • Ert test runner with overseer
  • Nameless package prefix with optional nameless
  • Structurally safe editing using optional evil-cleverparens
  • Visual feedback when evaluation using eval-sexp-fu
Scheme

+lang/scheme/README.org

This layer adds support for Scheme via Geiser. Note that combined usage of racket-mode and geiser has not been tested.

Features:

  • Support the Scheme compiler Chicken
  • Support for the extension language platform Guile
  • Structurally safe editing using optional evil-cleverparens

Markup & configuration

Asciidoc

+lang/asciidoc/README.org

This layer adds AsciiDoc markup language support to Spacemacs.

Features:

  • asciidoc format support via adoc-mode
  • .adoc files are associated with adoc-mode by default
Bibtex

+lang/bibtex/README.org

BibTeX and BibLaTeX files are a common way to manage bibliographies. The format was original designed to work with LaTeX files and subsequently has been adopted by other markup formats such as MarkDown and Org mode.

This layer adds support to manipulate BibTeX and BibLaTeX files in Spacemacs.

Features:

  • Syntax highlighting for BibTeX and BibLaTeX files.
  • Utilities for automatically adding entries from different data sources.
  • Support for inserting citations in various other modes.
Csv

+lang/csv/README.org

This layer adds tools for better integration of CSV files in Spacemacs.

Features:

  • Detecting of fields for various separators
  • Aligning of fields
  • Traversal of fields
  • Killing of fields
  • Sorting of rows
  • Transposing of rows/columns
  • Intelligent yanking of fields
Dhall

+lang/dhall/README.org

This layer adds support for the Dhall Configuration Language, a non-repetitive alternate to YAML.

Features:

  • Syntax highlighting for .dhall source files
  • Automatic buffer reformatting on save (configurable)
  • Type error display in side-buffer

Note: You will need a dhall binary on your PATH. Official releases can be found here.

Graphviz

+lang/graphviz/README.org

This layer adds support for the open-source graph declaration system graphviz to Spacemacs.

Features:

  • Syntax highlighting for .dot files
  • Integration of a live-preview of .dot files via graphviz-dot-mode.
  • Control of the graphviz compiler directly from emacs.
  • Support for formatting .dot files automatically.
Html

+lang/html/README.org

This layer adds support for editing HTML and CSS.

Features:

Json

+lang/json/README.org

This layer adds support for JSON files with json-mode

Features:

Jsonnet

+lang/jsonnet/README.org

This layer provides support for Jsonnet template provided by jsonnet-mode.

Features:

  • syntax highlighting
  • buffer formatting
  • jump to definition
  • buffer evaluation
Latex

+lang/latex/README.org

This layer adds support for LaTeX files with AucTeX.

Features:

Markdown

+lang/markdown/README.org

This layer adds markdown support to Spacemacs.

Features:

  • markdown files support via markdown-mode
  • Fast Github-flavored live preview via vmd-mode
  • TOC generation via markdown-toc
  • Completion of Emojis using company-emoji (still needs a way of showing, either using the emoji layer or having a proper font) 👏
Plantuml

+lang/plantuml/README.org

This layer enables support for plantuml-mode, which provides a major-mode for plantuml. PlantUML is a tool to generate UML diagrams from plain-text.

For help with how to use plantuml, see the plantuml website and the reference guide.

The official file extension supported by this layer is .pum. If you want something else, set it in your user-config function of your ~/.spacemacs file.

For example, the following diagram can be defined as follows:

  @startuml
  JAremko->robbyoconnor : I think the docs can benefit from some kind of illustration
  JAremko<-robbyoconnor : I'm too lazy -- I have actual work to do. I link to the docs. If you can write me a diagram in plantuml, I'll gladly compile and add it.
  JAremko->robbyoconnor : *gives ths diagram*
  robbyoconnor<-JAremko : *robbyoconnor adds it and JAremko is happy*
  ...
  robbyoconnor->theOtherPerson : And they thinks it's funny? Yup, they definitely finds it funny. Right?
  @enduml

/TakeV/spacemacs/media/commit/f86d187a6d91c11254dccb2f426c5eb7f947e527/layers/+lang/plantuml/img/dia.png

Features:

  • Syntax highlighting
  • Diagram preview in various output formats
  • Embedding into org documents
  • Controlling the Plantuml compiler directly from emacs
Restructuredtext

+lang/restructuredtext/README.org

The layer adds ReStructuredText (ReST) support to Spacemacs and adds some functions to rst-mode.

Note: to add Sphinx specific support use the layer sphinx.

Features:

  • rst files are supported via Emacs built-in rst.el.
  • Lists are inserted by new functions.
  • Directives can be inserted easily.
  • auto-completion for directives and options via auto-complete-rst.
  • snippet support via yasnippet.
Semantic web

+lang/semantic-web/README.org

This layer adds support for RDF files in N3 and Turtle syntax using ttl-mode and for SPARQL queries using sparql-mode.

SPARQL-mode supports the execution of queries. When first called, you will be prompted for a SPARQL HTTP endpoint in the minibuffer, which defaults to http://localhost:2020/. Once set, it will be used for all subsequent queries in that buffer. Results will be displayed in another buffer in CSV format.

Features:

  • Provides an alternative way to search the web using SPARQL queries.
Yaml

+lang/yaml/README.org

This layer provides support for the YAML file format.

Features:

  • Syntax highlighting
  • Syntax checking via flycheck
Yang

+lang/yang/README.org

This layer provides support for the YANG file format.

Features:

  • Syntax highlighting
  • Syntax checking via flycheck

Scripting

Autohotkey

+lang/autohotkey/README.org

Syntax highlighting and Emacs functions for use with AutoHotkey or AutoHotkey_L.

Using a combined implementation of ahk-mode from Xah Lee's xahk-mode and Robert Widhopf-Fenk's autohotkey-mode. Updated with the latest ahk and ahk_l commands found in the latest revision of SciTE4AutoHotkey.

Contributed and maintained by Rich Alesi.

Features:

  • Auto-completion
  • Documentation Lookup
  • Execute Code Snippets
  • Correct Indentation and Commenting
Shell scripts

+lang/shell-scripts/README.org

This simple layer adds support for shell scripting.

Supported scripting files:

Note: For Windows scripting see the layer windows-scripts

Features:

Vimscript language

+lang/vimscript/README.org

This layer adds basic support for vimscript and pentadactyl config files.

Features:

  • Syntax highlighting
Windows scripting

+lang/windows-scripts/README.org

This simple layer adds support for the Powershell scripting language as well as support for batch files.

Features:

  • Syntax highlighting of powershell .ps1 files via powershell.el
  • Syntax highlighting of batch .bat files via dos.el

Frameworks

Django

+frameworks/django/README.org

This layer adds support for the Python web framework Django to Spacemacs.

Features:

  • Test execution directly from emacs
  • Starting/stopping of the Django test server
  • Starting of an interactive Python shell in the current project for debugging
  • Fixed commands to open various Django specific settings files
  • Automatic deployment with Fabric directly from emacs
  • Control of South database migration tool

Emberjs

+frameworks/emberjs/README.org

This enables helpers for working with Ember.js projects.

This also includes ember-yasnippets. See the README for ember-yansippets for the snippet keys.

To use this, you need to add add a .dir-locals.el file with the following in the root of your ember project:

  ((nil . ((mode . ember))))

If you do not wish to do the following, you may also just do M-x ember-mode, however it will make things easier.

Additionally, temporary backup, autosave, and lockfiles interfere with broccoli watcher, so they need to either be moved out of the way or disabled.

Add the following to your dotspacemacs/user-config:

  (setq backup-directory-alist `((".*" . ,temporary-file-directory)))
  (setq auto-save-file-name-transforms `((".*" ,temporary-file-directory t)))
  (setq create-lockfiles nil)

Features:

  • Ability to easily switch between various files
  • Key bindings for generators and also easily revert generator actions
  • Ability to build, start server, and run tests

Phoenix

+frameworks/phoenix/README.org

This layer adds key bindings for Alchemist's already built in phoenix mode.

Features:

  • Key bindings for navigation to files

React

+frameworks/react/README.org

ES6 and JSX ready configuration layer for React It will automatically recognize .jsx files and files with react imported.

Features:

  • on-the-fly syntax checking
  • proper syntax highlight and indentation with jsx
  • backend support for autocompletion as in rjsx-mode
  • jsfmt automatic formatting
  • js2-refactor
  • js-doc

Ruby on rails

+frameworks/ruby-on-rails/README.org

This layer aims at providing support for the Ruby on Rails framework.

Features:

  • Quick file navigation with with projectile-rails
  • Run server
  • Run generators
  • Rake runner
  • Interactive Rails console

General-purpose

Imperative

Asm

+lang/asm/README.org

This layer adds support for Assembly code. The built-in major mode for editing assembly code in Emacs is asm-mode.

The layer also adds nasm-mode for NASM-specific syntax. Although nasm-mode is intended for NASM, it actually works well with other variants of Assembly in general, and provides Imenu integration so you can jump around with SPC s j.

Features:

  • Improved syntax highlighting.
  • Automatic indentation.
  • Auto-completion for symbol in opened buffers.
  • Look up documentation for current instruction at cursor.
  • Imenu integration.
Forth

+lang/forth/README.org

This layer adds basic support for the Forth family of languages to spacemacs.

Features:

  • Syntax highlighting
  • Showing meaning of objects in context of the current Forth session.
  • Eval of entire files or regions in current Forth session.
  • Passing interactive commands to current Forth session.

Multi-paradigm

C#

+lang/csharp/README.org

This layer adds support for C# language using the omnisharp-roslyn language server and corresponding omnisharp-emacs package.

Please report any issues encountered to omnisharp-emacs issue page on github. PRs are welcome too!

Features:

  • Syntax checking with flycheck (when syntax-checking layer is used)
  • Support for auto-completion (when auto-completion layer is used)
  • Refactoring
  • Navigation to cross-references
  • Inspecting types in metadata
C/c++

+lang/c-c++/README.org

This layer adds configuration for C/C++ language.

Features:

  • Support syntax checking via flycheck with Clang.
  • Support for disassembly of code with disaster.
  • Support code reformatting with clang-format.
  • Display function or variable definition at the bottom. (when semantic layer is included)
  • Display current function cursor is in at the top. See stickyfunc-demos for demos in some programming languages. (when semantic layer is included)
  • Support common refactoring with semantic-refactor. See srefactor-demos for demonstration of refactoring features. (when semantic layer is included)
  • Support code navigation via cscope (when cscope layer is included) and gtags.
  • Support auto-completion (when auto-completion layer is included) via company-clang (when c-c++-enable-clang-support is turned on), or company-ycmd (when ycmd layer is included).
  • Support for realgud debugger.
  • Support for rtags.
  • Support for cquery or ccls as an lsp backend.
Crystal

+lang/crystal/README.org

This layer provides support for the Crystal language.

Features:

D language

+lang/d/README.org

This simple layer adds support for the D language to Spacemacs.

Features:

  • Syntax highlighting
  • Auto completion via company
  • Syntax checking via flycheck
Dart

+lang/dart/README.org

This layer adds support for Dart language, and could be optionally used for Flutter development as well.

Features:

  • Syntax Highlight
  • Error checking with flycheck
  • Go to Definition
  • Dart Analyzer integration
  • Key bindings
Elixir

+lang/elixir/README.org

This layer adds support for Elixir.

Alchemist brings the Elixir tooling to Emacs and comes with a bunch of features.

Features:

  • Powerful IEx integration
  • Mix integration
  • Compile & Execution of Elixir code
  • Inline code evaluation
  • Documentation lookup
  • Definition lookup
  • Smart code completion
  • Elixir project management
  • Integration with company-mode
  • Flycheck support for mix compile
  • Flycheck support for credo
  • Flycheck support for test results
Erlang

+lang/erlang/README.org

This layer adds very basic support for Erlang to Spacemacs.

Features:

  • Syntax highlighting
  • Syntax checking via Flycheck integration
  • Auto-completion via Company integration
F#

+lang/fsharp/README.org

This layer adds support for F# language using fsharpbinding and fsharp-mode.

Features:

  • Syntax highlighting
  • Code completion
  • Flycheck integration
  • REPL
  • Compile/Run/Interpreter and info tooltip shortcuts
Factor layer

+lang/factor/README.org

A spacemacs layer for Factor language support.

Features:

  • Syntax Highlighting
  • Factor REPL integration
  • Auto-Completion in REPL
  • Scaffolding support
  • Refactoring support
Go

+lang/go/README.org

This layer adds extensive support for go to Spacemacs.

Features:

  • gofmt/goimports on file save (to enable, see Configuration)
  • Auto-completion using go-autocomplete (with the auto-completion layer)
  • Source analysis using go-guru
  • Refactoring with godoctor
  • Edit struct field tag with gomodifytags
  • Linting with flycheck's built-in checkers or flycheck-gometalinter
  • Coverage profile visualization
  • Test generation with go-gen-test
  • Get packages faster with gopkgs
  • Fill a structure with default values using the fillstruct
  • LSP backend
Groovy

+lang/groovy/README.org

This layer supports Groovy development in Spacemacs.

Features:

  • Basic dabbrev auto-completion with company
  • Auto-generate imports with groovy-imports
  • Groovy REPL integration
Hy

+lang/hy/README.org

This layer adds support for the Hy language based on Python.

Features:

  • syntax-highlighting
  • Auto-completion
  • Code Navigation
  • Python test runners (see python layer)
  • Virtual Environment using pyvenv and pyenv
  • Org Babel support
Java

+lang/java/README.org

This layer adds support for the Java language.

Features:

  • Support for the following backends:

  • Each provides:

    • Auto-completion using company
    • Linting using flycheck integration
    • Maven and Gradle integration
Jr concurrent programming language

+lang/jr/README.org

This layer adds syntax highlighting for the JR Concurrent Programming Language. JR is the implementation of the SR language for Java.

Features:

  • Syntax highlighting
Julia

+lang/julia/README.org

This layer adds support for Julia to Spacemacs.

Features:

  • Syntax highlighting
  • Repl support
  • Linting
  • Completion
  • Jump-to-definition
  • Documentation on hover
Kotlin

+lang/kotlin/README.org

This layer adds support for Kotlin in Spacemacs

Features:

Lua

+lang/lua/README.org

This layer adds support for editing Lua.

Features:

  • Editing lua files using lua-mode
  • Sending code to a lua REPL
  • Code linting using Luacheck
Nim

+lang/nim/README.org

This layer adds support for the multi-paradigm language Nim.

Features:

  • Code completion.
  • Jump to definition.
  • Syntax checking.
Ocaml

+lang/ocaml/README.org

This is a very basic layer for editing ocaml files.

Features:

  • Syntax highlighting (major-mode) via tuareg-mode
  • Error reporting, completion and type display via merlin
  • auto-completion with company mode via merlin
  • syntax-checking via flycheck-ocaml (or alternatively merlin)
  • dune file syntax highlighting and template insertion via dune-mode
Pact

+lang/pact/README.org

This layer adds support for the Pact Smart Contract Language.

Features:

  • Syntax highlighting for .pact source files
  • Easy interaction with an embedded Pact REPL
  • Flycheck integration

Note: You will need a pact binary on your PATH for REPL features to function.

Perl5

+lang/perl5/README.org

This layer adds support for the Perl5 language.

Features:

Perl6

+lang/perl6/README.org

This layer provides an environment for the Perl 6 Programming Language.

Features:

  • Jump to definition & Code completion via ctags-universal
  • Syntax checking via flycheck-perl6 and perl6 -c
  • Syntax highlighting & Syntax indentation via perl6-mode
  • META6.json highlighting via json-mode
  • Provides Evil text objects for:

    • double-angle-brackets
    • corner-brackets
    • single-quotation-marks
    • double-quotation-marks
Php

+lang/php/README.org

This layer adds PHP language support to Spacemacs.

Features:

  • Edit PHP files using php-mode
  • Edit Drupal files
  • Complete and jump to define with company-php
  • Run tests with PHPUnit
  • Reformat code with PHP CBF

The gtags layer is recommended to benefit from better eldoc and helm-gtags.

Python

+lang/python/README.org

This layer adds support for the Python language.

Features:

Racket

+lang/racket/README.org

Adds support for the Racket programming language.

Features:

  • Syntax highlighting with racket-mode
  • Test runner
  • Interactive REPL
  • Code navigation with gtags
  • Structurally safe editing using optional evil-cleverparens
Reasonml

+lang/reasonml/README.org

Spacemacs layer for ReasonML, based around reason-mode.

Features:

  • Syntax highlighting / indentation
  • Autocomplete (via merlin)
  • Lint / error display (via merlin, and flycheck if syntax-checking layer is enabled)
  • REPL via rtop
  • Auto-formatting (via refmt)
Ruby

+lang/ruby/README.org

This layer provides support for the Ruby programming language.

Features:

  • Version manager (rbenv, rvm or chruby)
  • Integration with bundler
  • Test runner (ruby-test and rspec)
  • Rake runner
  • Linter (rubocop)
  • Interactive REPL and code navigation (robe)
Rust

+lang/rust/README.org

This layer supports Rust development in Spacemacs.

Features:

  • Auto-completion and navigation support through lsp or Racer
  • support for the Rust package manager Cargo
Scala

+lang/scala/README.org

This layer adds support for the Scala language to Spacemacs.

Features:

  • Syntax highlighting
  • Auto-completion
  • Syntax-checking
  • Refactoring
  • Incremental compilation
  • Scala Repl
  • Style linting
  • Eldoc integration
  • Test execution directly from Emacs
  • Automatic replacement of ASCII arrows with unicode ones
  • Automatic starting/stopping of ENSIME IDE server
Sml

+lang/sml/README.org

Adds support for the SML programming language to Spacemacs.

Features:

  • Syntax highlighting
  • Integration of the SML Repl into Emacs
  • Basic completion of SML forms via sml-electric-space
Swift

+lang/swift/README.org

This layer adds support for Apple's Swift programming language, used as a general purpose scripting language.

Features:

  • Syntax highlighting with swift-mode
  • Indentation
  • Code navigation using imenu (built-in)
  • Automatic syntax checking with flycheck (available with the syntax-checking layer)
JavaScript dialects
Coffeescript

+lang/coffeescript/README.org

This layer adds support for the CoffeeScript language using coffee-mode.

Features:

  • Syntax highlighting
  • Auto-completion with auto-completion layer
  • Syntax checking and linting with syntax-checking layer
  • Org-Babel integration
  • REPL support
Javascript

+lang/javascript/README.org

This layer adds support for the JavaScript language using js2-mode.

Features:

Purescript

+lang/purescript/README.org

This layer provides basic Purescript editing support for spacemacs.

Features:

  • Syntax highlighting through purescript-mode
  • Automatic insert of imports through psc-ide-emacs
  • REPL through psci
  • Syntax checking through flycheck
  • Autocompletion through company
Typescript

+lang/typescript/README.org

This layer adds support for TypeScript and TSX editing.

Features:

  • Multiple backends support: Tide and LSP
  • Eldoc-mode
  • Documentation at point
  • Auto complete
  • Flycheck with either tslint or eslint
  • Jump to definition, Jump to type definition
  • Find occurrences (Imenu-mode)
  • Rename symbol
  • tsx mode
  • formatting
  • TypeScript playground integration

Purely functional

Agda

+lang/agda/README.org

This layer adds support for the Agda programming language.

Features:

  • Faces redefined to correctly play with themes.
  • Spacemacs bindings to Agda's interactive tools.

This layer is in construction, it needs your contributions and bug reports.

Elm

+lang/elm/README.org

This layer adds support for Elm.

It relies on elm-mode and flycheck-elm.

Features:

  • Syntax highlighting.
  • Intelligent indentation
  • Auto-completion integration for company (default) or auto-complete modes, with using elm-oracle
  • Syntax checking support using flycheck
  • Integration with elm-make
  • Integration with elm-repl
  • Integration with elm-reactor
  • Integration with elm-package
Haskell

+lang/haskell/README.org

This layer adds support for the Haskell language.

Features:

This layer is under construction, it needs your contributions and bug reports.

Idris

+lang/idris/README.org

This layer adds support for the Idris language to Spacemacs.

Features:

  • Syntax highlighting
  • Syntax checking via flycheck
  • Integration of the Idris REPL
  • Integration of the Idris build system

Utilities

Dotnet

+tools/dotnet/README.org

This layer adds support for the dotnet cli package.

Features:

  • dotnet operations

Ipython notebook

+lang/ipython-notebook/README.org

This layer adds support for the package emacs-ipython-notebook.

Do not hesitate to check the original package README here. Also the wiki has lots of informative stuff.

Features:

  • Key bindings available through transient-state or leader key
  • Lazy-loading

Protocol buffers

+lang/protobuf/README.org

Highlighting and syntax checking for Protocol Buffer files.

Features:

  • Syntax highlighting
  • Syntax checking using Flycheck (protoc compiler must be available)
  • Correct indentation and commenting
  • Quickly browse file contents using imenu (default key binding SPC j i).

Sailfish os developer

+tools/sailfish-developer/README.org

This layer adds support of sailfish-os development packages.

Features:

Readers

Dash

+readers/dash/README.org

This layer integrates offline api browsers into Emacs. It provides one for OS X, Linux and Windows.

Features:

  • Searching for word at point in offline api browser's UI.
  • Integration of offline api browser search results in helm and ivy.
  • Support for dash offline api browser for OS X.
  • Support for zeal offline api browser for Linux.

Deft

+readers/deft/README.org

This layer adds a search driven note taking system into Spacemacs.

Features:

  • Browsing and creating notes with a powerful search function via Deft.
  • Integration of org-mode as note editor.
  • Configurable list of extensions to recognize as notes.

Elfeed

+readers/elfeed/README.org

This layer integrates a web feed reader into spacemacs.

Features:

  • Support for reading RSS and Atom feeds directly within emacs via Elfeed.
  • Support for managing feeds via org files supplied by elfeed-org.
  • Support for displaying feed database content in the browser via web interface.

Epub

+readers/epub/README.org

This layer provides support for reading EPUB-formatted eBooks in Spacemacs using the excellent nov.el package.

Features:

  • 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

Pdf

+readers/pdf/README.org

This layer enables support for PDF with the pdf-tools package.

According to the official repository:

"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."

Features:

  • Searching and slicing with occur.
  • Show document headings in outline buffer.
  • Manipulate annotations.
  • Fit PDF to screen.

Speed reading

+readers/speed-reading/README.org

A speed reading mode for Emacs.

Features:

  • Support for speed-reading of arbitrary texts

README.org files that need proper tags

Zig

+lang/zig/README.org

This layer adds support for the zig programming language https://ziglang.org/

Features:

  • Syntax Highlighting

Source control

Git

+source-control/git/README.org

This layers adds extensive support for git to Spacemacs.

Features:

New to Magit? Checkout the official intro.

Github

+source-control/github/README.org

This layers adds support for GitHub.

Features:

  • forge: integration with various forges, such as GitHub and GitLab.
  • gist.el: full-featured mode to browse and post GitHub gists.
  • git-link: quickly generate URLs for commits or files.
  • github-clone allows for easy cloning and forking of repositories.

Perforce

+source-control/perforce/README.org

This layer integrates Perforce SCM system into Spacemacs.

Features:

  • Support for running Perforce (p4) SCM commands directly from Emacs.

Version-control

+source-control/version-control/README.org

This layers adds general configuration for Emacs VC. It should work with all VC backends such as Git, Mercurial, Bazaar, SVN, etc…

Features:

  • highlights uncommitted changes in the fringe or margin with diff-hl, git-gutter, or git-gutter+
  • adds vcs transient-state SPC g. to allow quick navigation and modification of buffer hunks.

Spacemacs

Distributions

Spacemacs distribution

+distributions/spacemacs/README.org

This is the default distribution for Spacemacs.

Features:

  • Easy access to the Spacemacs experience by adding below auxiliary layers to the base distribution.

    • helm
    • treemacs
    • spacemacs-completion
    • spacemacs-layouts
    • spacemacs-editing
    • spacemacs-editing-visual
    • spacemacs-evil
    • spacemacs-language
    • spacemacs-misc
    • spacemacs-modeline
    • spacemacs-navigation
    • spacemacs-org
    • spacemacs-purpose
    • spacemacs-visual

Spacemacs-base distribution

+distributions/spacemacs-base/README.org

This is the base distribution for Spacemacs.

Features:

  • Minimalistic approach to Spacemacs, contains only the core packages. Good starting point to make something completely new. This distribution should not be used for a new standalone Spacemacs installation except you have very good reasons to.

Spacemacs-bootstrap distribution

+distributions/spacemacs-bootstrap/README.org

This layer loads the necessary packages for spacemacs to start-up.

Features:

  • Loads evil key bindings and macros for auto-evilifcation of maps
  • Loads holy and hybrid modes
  • Loads the official Spacemacs theme
  • Loads use-package which is used to load other packages more easily
  • Loads hydra which is used to create transient modes
  • Loads which-key which is used to show key bindings in other modes
  • Loads async which is used to run background processes
  • Loads bind-map and bind-key which are used to realize various Spacemacs specific key binding commands

Spacemacs-docker distribution

+distributions/spacemacs-docker/README.org

Spacemacs distribution that aims to automate dependency installation for Spacemacs layers and provide well tested Docker based development environment with GUI support on all major platforms and even your web browser.

Features:

  • Automatically get Spacemacs layers dependency installed with installer scripts
  • Reap the benefit of Emacs and other GNU/Linux tools on Windows/MacOS machines
  • Use docker hub to auto-build your environment and store full backups for free
  • Build once and work with the same development environment everywhere
  • Run untrusted/risky code in the tunable sandbox with CPU/network/disk quotas
  • Try new tools, experiment and roll back changes when something goes wrong
  • Share your setup with others or extend someone else's development environment
  • Run multiple Emacs instances on the same machine isolated
  • pause container to free resources temporarily
  • Checkpoint & Restore - maybe the fastest way to start a "heavy" environment
  • Friendly for networks with low upload speed/quotas.

Tagging

Cscope

+tags/cscope/README.org

This layer provides bindings for using Cscope and PyCscope in Spacemacs.

See here for a comparison between Cscope and other similar tools (such as gtags).

Features:

  • Tag indexing and searching for C-C++ via Cscope
  • Tag indexing and searching for python via PyCscope

Helm gtags

+tags/gtags/README.org

counsel-gtags, helm-gtags and ggtags are clients for GNU Global. GNU Global is a source code tagging system that allows querying symbol locations in source code, such as definitions or references. Adding the gtags layer enables both of these modes.

Features:

  • Select any tag in a project retrieved by gtags
  • Resume previous helm-gtags session
  • Jump to a location based on context
  • Find definitions
  • Find references
  • Present tags in current function only
  • Create a tag database
  • Jump to definitions in file
  • Show stack of visited locations
  • Manually update tag database
  • Jump to next location in context stack
  • Jump to previous location in context stack
  • Jump to a file in tag database
  • Enables eldoc in modes that otherwise might not support it.
  • Enables company complete in modes that otherwise might not support it.

Themes

Colors

+themes/colors/README.org

This layer colors your life by enhancing the existing coloration of identifiers as well as providing you with a more colorful process indicator.

Features:

  • Colorize all identifiers (Christmas tree mode :-)) with mostly unique colors, and the ability to choose saturation and lightness with rainbow-identifiers.
  • Colorize only identifiers recognized as variables with color-identifiers.
  • Colorize strings representing colors with the color they represent as background with rainbow-mode.
  • Display a Nyan cat progress bar in the mode-line with nyan-mode.

Nyan-mode

+themes/colors/local/nyan-mode/README.org

Nyan Mode - Turn your Emacs into Nyanmacs! :) The mode is an analog indicator of your position in the buffer. The Cat should go from left to right in your mode-line, as you move your point from 0% to 100%.

Features:

  • Mind dumbing content included,
  • Experimental animation (M-x nyan-start-animation, M-x nyan-stop-animation),
  • Wavy rainbow (M-x set-variable <ret> nyan-wavy-trail <ret> t),
  • Music, mplayer is needed (M-x nyan-start-music, M-x nyan-stop-music),
  • Customizable properties.

Themes megapack

+themes/themes-megapack/README.org

This layer installs around 100 themes for Emacs.

Features:

  • Have access to all included themes in this theme gallery from Rob Merrell.
  • Easily try a theme by invoking helm-themes with: SPC T s.
  • Theme Spacemacs using pywal by choosing one of the ewal-spacemacs-* themes.

Theming

+themes/theming/README.org

This layer allows for a simple way of modifying themes.

Features:

  • Modify themes from your .spacemacs.
  • Tweak face attributes and other aspects of themes.
  • Includes three additional layer variables for tweaking headings.

Tools

Ansible

+tools/ansible/README.org

This layer adds support for editing Ansible configuration files in Spacemacs.

Features:

  • Syntax highlighting for Ansible-flavored YAML and Jinja2 templates.
  • Auto-completion via company-ansible.
  • Integration of ansible-vault into emacs for automatic encryption/decryption of files.

Bm

+tools/bm/README.org

BM provides visible, buffer local, bookmarks and the ability to jump forward and backward to the next bookmark.

Features:

  • Auto remove bookmark after jump to it by bm-next or bm-previous
  • Cycle through bookmarks in all open buffers in LIFO order
  • Toggle bookmarks. Jump to next/previous bookmark.
  • Setting bookmarks based on a regexp. (Useful when searching logfiles.)
  • Mouse navigation.
  • Annotate bookmarks.
  • Different wrapping modes.
  • Different bookmarks styles, line-only, fringe-only or both.
  • Persistent bookmarks.
  • List bookmarks (in all buffers) in a separate buffer.
  • Cycle through bookmarks in all open buffers.

Cfengine

+tools/cfengine/README.org

This layer adds support for CFEngine policies to Spacemacs.

Features:

  • Syntax highlighting
  • On the fly syntax checking via flycheck integration.
  • Auto completion via company integration.
  • Execution of cfengine3 SRC blocks in org-mode via ob-cfengine3 package.

Chrome

+tools/chrome/README.org

This layer provides some integration with the Google Chrome browser.

Features:

  • Edit text boxes with Emacs using edit-server
  • Write markdown in Emacs and realtime show in chrome using flymd
  • gmail message mode uses standard markdown key bindings

Cmake

+tools/cmake/README.org

This layer adds support CMake scripts.

Features:

  • Support for CMake configure/build (with limited support for other build systems), automatic generation of compile_commands.json (compile flags), on-the-fly configuration of flycheck, company-clang and RTags (if installed) with cmake-ide.
  • Run selected test using Helm interface via helm-ctest.

Command-log

+tools/command-log/README.org

This layer adds a handy command demonstration mode to Spacemacs.

Features:

  • Support for logging all entered keys and triggered commands in a designated buffer via command-log-mode.
  • Provides the best way to demonstrate the connection between keystrokes and commands in Emacs.
  • Provides an easy way to create command logs for training classes.

Dap

+tools/dap/README.org

Experimental integrated visual debugger using Debug Adapter Protocol.

Debug Adapter Protocol is a wire protocol for communication between client and Debug Server. It similar to the LSP but providers integration with debug server.

Features:

Fully featured IDE-like debugger providing:

  • Launch/Attach
  • Breakpoints
  • Exceptions
  • Pause & Continue
  • Step In/Out/Over
  • Callstacks
  • Threads
  • Multiple simultaneous debug sessions
  • Evaluating statements
  • Debug/Run configurations
  • Debug REPL

Debug

+tools/debug/README.org

This layer adds interactive debuggers for multiple languages using realgud.

Features:

  • Modern rewrite of the Emacs GUD debugger family
  • Visual interface including breakpoint and line indicators
  • Advanced features like stack frame navigation and mouse support
  • Extensible framework for adding your own external debuggers

Docker

+tools/docker/README.org

This layer integrates basic container management into Spacemacs.

Features:

  • Syntax highlighting for Docker files
  • Docker build integration
  • TRAMP access to running Docker containers
  • Docker container and image management via docker.el
  • docker-compose integration via docker.el
  • Syntax checking via hadolint

Fasd

+tools/fasd/README.org

This layer integrates the fasd command line tool into Spacemacs.

Features:

  • Adds easy shortcuts to reference recent files and directories.
  • Provides fasd with recent open file lists from Emacs.
  • Allows to filter fasd results with helm or ivy.

Finance

+tools/finance/README.org

This layer integrates a full fledged accounting system into Spacemacs.

Features:

  • Support for maintaining a double-entry accounting system run by text files via ledger-mode.
  • Display of finance reports directly within Emacs.
  • Integration of Emacs calculator mode for editing post amounts.
  • Support for easy account reconciliation via Ledger-Reconcile.
  • Extended support for evil style editing with evil-ledger.

Geolocation

+tools/geolocation/README.org

This layer offers location sensitive adjustments to Emacs.

Features:

  • Supports the following adjustments:

    • Automatic switching between light (day) and dark (night) themes via theme-changer
    • Local weather forecast via sunshine
    • Integration with OS X's CoreLocation service via osx-location
    • Manual location setting via variables in your dotfile

Imenu-list

+tools/imenu-list/README.org

This layer uses imenu-list to show the current buffer's index in a side bar.

This is similar to `SPC j i` but displayed in a persistent sidebar instead of a completion buffer.

Features:

  • IDE like outline view of current buffer showing all significant symbols in one view

Import-js

+tools/import-js/README.org

This layer adds support for import-js

Features:

  • Import Javascript/Typescript modules to buffer
  • Import missing modules and remove unused one
  • Go to module location

Lsp

+tools/lsp/README.org

This layer adds support for basic language server protocol packages speaking language server protocol.

Different language servers may support the language server protocol to varying degrees and they may also provide extensions; check the language server's website for details. M-x lsp-describe-session in a LSP buffer to list capabilities of the server.

Features:

  • Cross references (definitions, references, document symbol, workspace symbol search and others)
  • Workspace-wide symbol rename
  • Symbol highlighting
  • Flycheck
  • Completion with company-lsp
  • Signature help with eldoc
  • Symbol documentation in a child frame (lsp-ui-doc)
  • Navigation using imenu
  • Consistent core key bindings in LSP modes

Nginx

+tools/nginx/README.org

This layer adds support for configuring nginx a powerful alternative for the Apache web server.

Features:

  • Syntax highlighting of nginx configuration files via nginx-mode.
  • Syntax-aware indentation

Node

+tools/node/README.org

This layer introduces packages that target Node.js. Currently this layer should not be used directly, as it will be used by other layers.

Features:

  • Integration of packages necessary to execute node.js modules from other layers.

Pandoc

+tools/pandoc/README.org

This layer adds support for Pandoc.

Pandoc is a universal document converter. It makes it easy to e.g. convert a Markdown file to org mode or vice versa. It can also export your text to PDF or DOCX.

Features:

  • Mode independent document conversions via global pandoc menu
  • Org-export integration via ox-pandoc

Pass

+tools/pass/README.org

This layer adds integration with pass, the unix password manager. You must have pass installed and available in your path for this layer to function properly.

Features:

  • Use Spacemacs as your password manager

Prettier

+tools/prettier/README.org

This layer adds support for prettier

Features:

  • Format buffer in a consistent style

Prodigy

+tools/prodigy/README.org

This layer adds support for the prodigy package to manage external services from within Emacs, check the package's documentation for more details.

It is recommended to put your prodigy services in the dotspacemacs/user-config part of your ~/.spacemacs file.

Features:

  • Managing of pre-declared services from within Emacs
  • Showing of process output in special buffers
  • Filtering of processes for tags or names

Puppet

+tools/puppet/README.org

This layer provides support for the Puppet DSL to Spacemacs.

Features:

  • Syntax highlighting via puppet-mode
  • Syntax-checking via puppet-lint
  • Navigation commands to jump between blocks
  • Applying the content of the current manifest directly from Emacs

Ranger

+tools/ranger/README.org

This layer brings Ranger features to spacemacs from the ranger package.

To use this configuration layer, add it to your ~/.spacemacs. You will need to add ranger to the existing dotspacemacs-configuration-layers list in this file.

To default with preview enabled when entering ranger:

  (setq-default dotspacemacs-configuration-layers
                '(ranger :variables
                         ranger-show-preview t))

Features:

  • use ranger to display dired with ranger like preview and stacked parent windows.

Rebox

+tools/rebox/README.org

This layer adds support for rebox2 package which is a minor-mode allowing to easily add ASCII text boxes to a buffer.

A nice video demonstration by the package author can be found here.

Features:

  • Auto-wrap correctly in comments,
  • Auto-fill correctly in comments,
  • Boxes auto-adapt as text is inserted or deleted,
  • S-RET to continue a comment on the next line,
  • Kill/yank within the box,
  • Apparently works well with ancient filladpt-mode (see authors video).

Restclient

+tools/restclient/README.org

This layer provides a REPL-like interface for http requests.

Features:

Saltstack

+tools/salt/README.org

This layer provides syntax highlighting for Saltstack files.

Features:

  • Syntax highlighting
  • Display of salt documentation

Shell

+tools/shell/README.org

This layer configures the various shells available in Emacs.

Features:

  • Shell integration

Sphinx

+tools/sphinx/README.org

The layer adds support for the documentation generation system Sphinx to the restructuredtext layer.

Features:

  • Support for Sphinx project compilation
  • Support for opening Sphinx project target
  • Support for opening Sphinx config file

Systemd

+tools/systemd/README.org

This layer adds support for editing systemd configuration files in Spacemacs.

Features:

  • Syntax highlighting
  • Auto completion
  • Syntax checking via systemd-analyze

Tern

+tools/tern/README.org

This layer adds support for tern stand-alone code-analysis engine for JavaScript.

Features:

  • TODO: list the feature of tern supported by tern package

Terraform

+tools/terraform/README.org

This layer provides basic support for Terraform .tf files.

Features:

  • Basic syntax highlighting via terraform-mode
  • Auto formatting on save via terraform fmt

Tmux

+tools/tmux/README.org

This layer adds basic tmux key bindings to Spacemacs.

Features:

Transmission

+tools/transmission/README.org

This layer integrates a BitTorrent client into Spacemacs.

Features:

Vagrant

+tools/vagrant/README.org

This layer adds support for working with Vagrant using vagrant.el and vagrant-tramp.

Features:

  • Manage boxes (under the SPC a V prefix)
  • Remote editing on Vagrant boxes via Tramp

Web-beautify

+tools/web-beautify/README.org

This layer adds support for web-beautify.

Features:

  • Format buffer to be beautiful

Xclipboard

+tools/xclipboard/README.org

xclipboard integration layer.

Features:

  • adds copy support to the X-clipboard from the terminal.
  • adds paste support to the X-clipboard from the terminal.
  • cliphist package: integration with clipboard managers on Linux and Mac.

Ycmd

+tools/ycmd/README.org

This layer adds emacs-ycmd support.

Features:

  • YouCompleteMe based code-completion
  • Integrations with company, flycheck, and eldoc

Vim

Evil-commentary

+vim/evil-commentary/README.org

This layer replaces evil-nerd-commenter with evil-commentary for those who prefer the behaviour of vim-commentary.

Features:

  • Provides the original vim behaviour for commenting out lines via evil-commentary.

Evil-snipe

+vim/evil-snipe/README.org

This layer adds various replacements for vim's default search functions.

Features:

  • Alternative implementation of vim's default search operations.
  • Replacement of evil-surround with a two-character search.
  • Support for alternative scopes for default search operations.
  • Support for alternative motions based on configurable regexps.

Vim-empty-lines

+vim/vim-empty-lines/README.org

This layer is a drop-in replacement for the vi-tilde-fringe mode, for those who desire behaviour closer to vim's.

It has better compatibility with retina displays, as it uses a text overlay using your font, rather than a pixel-art tilde. The empty line indicators are overlaid in within the buffer as in vim, and not in the fringe. The indicator behaviour with trailing empty lines matches vim's behaviour.

For details, see the vim-empty-lines-mode repository.

Features:

  • Emulation of original vim behaviour.
  • Brings you as close to vim as one can be without using vim itself.

Vinegar

+vim/vinegar/README.org

This layer is a port of vim-vinegar for Emacs.

It is based on tpope's vinegar.vim, simplifying dired with a limited number of details and exposing the - command in all buffers to enter dired.

Features:

  • navigation up folders with - key
  • simplify dired buffer to show only file names
  • better evil/vim bindings for navigation within dired buffer
  • keep only one active dired buffer
  • Use dired-k extension to show time / vcs related information in single bar
  • right mouse click moves up directory if in blank space or shows context menu

Web services

Confluence

+web-services/confluence/README.org

This layer adds support for Atlassian Confluence.

Features:

  • Creating/editing of Confluence pages
  • Exporting of org buffers to Confluence wiki format

Evernote

+web-services/evernote/README.org

This layer adds support for the famous Evernote note taking service to Spacemacs. It does so by grouping together various packages to work with Evernote.

Features:

  • Create notes in markdown and sync with Evernote via geeknote.
  • Search for notes using keywords
  • Move notes between notebooks

Search engine

+web-services/search-engine/README.org

This layer adds support for the Search Engine package.

Features:

  • Browser search integration

Twitter

+web-services/twitter/README.org

This layer adds Twitter support to Spacemacs via the package twittering-mode.

Features:

  • Activities on Twitter

    • Viewing various timelines

      • Home timeline
      • Replies
      • User's timeline
      • Public timeline
      • Favorites timeline
      • Retweets timeline
      • Merged timeline
      • Timeline without tweets satisfying a condition
    • Posting tweets

      • Direct message
      • ReTweet
      • Hash tag
      • Signature
    • Following and removing users
    • Marking tweets as favorites
  • HTTP Proxy support
  • Secure connection via HTTPS (cURL, GNU Wget, OpenSSL or GnuTLS is required)

Wakatime

+web-services/wakatime/README.org

This layer adds support for Wakatime.

WakaTime was built to solve time tracking for programmers. Since we work inside a text editor, why should we have to start and stop a timer? WakaTime uses open-source text editor plugins to automatically track the time you spend programming so you never have to manually track it again!

P.S. wakati means time in Swahili

Features:

  • Integration with Wakatime cloud based time tracking service