#+TITLE: Configuration layers * Table of Contents :TOC_4_gh:noexport: - [[#chats][Chats]] - [[#erc-layer][ERC layer]] - [[#jabber-layer][Jabber layer]] - [[#rcirc-layer][RCIRC layer]] - [[#slack-layer][Slack layer]] - [[#checkers][Checkers]] - [[#syntax-checking-layer][Syntax Checking layer]] - [[#spell-checking-layer][Spell Checking layer]] - [[#completion][Completion]] - [[#templates-layer][Templates layer]] - [[#helm-layer][Helm layer]] - [[#auto-completion-layer][Auto-completion layer]] - [[#ivy-layer][Ivy layer]] - [[#e-mail][E-mail]] - [[#mu4e-layer][Mu4e layer]] - [[#notmuch-layer][Notmuch layer]] - [[#gnus-layer][Gnus layer]] - [[#file-trees][File trees]] - [[#treemacs-layer][Treemacs layer]] - [[#neotree-layer][Neotree layer]] - [[#fonts][Fonts]] - [[#unicode-fonts-layer][unicode-fonts layer]] - [[#emacs][Emacs]] - [[#smex-layer][Smex layer]] - [[#org-layer][Org layer]] - [[#semantic-layer][Semantic layer]] - [[#better-defaults-layer][Better Defaults layer]] - [[#typography-layer][Typography layer]] - [[#ibuffer-layer][IBuffer layer]] - [[#frameworks][Frameworks]] - [[#django-layer][Django layer]] - [[#react-layer][React layer]] - [[#emberjs-layer][emberjs layer]] - [[#ruby-on-rails-layer][Ruby on Rails layer]] - [[#phoenix-layer][phoenix layer]] - [[#fun][Fun]] - [[#selectric-layer][selectric layer]] - [[#games-layer][Games layer]] - [[#emoji-layer][Emoji layer]] - [[#xkcd-layer][xkcd layer]] - [[#internationalization][internationalization]] - [[#japanese-layer][Japanese layer]] - [[#chinese-layer][Chinese layer]] - [[#keyboard-layout-layer][keyboard-layout layer]] - [[#miscellaneous][Miscellaneous]] - [[#multiple-cursors-layer][multiple-cursors layer]] - [[#parinfer-layer][Parinfer layer]] - [[#nlinum-layer][nlinum layer]] - [[#copy-as-format-layer][copy-as-format layer]] - [[#ietf-layer][ietf layer]] - [[#music][Music]] - [[#spotify-layer][Spotify layer]] - [[#operating-systems][Operating systems]] - [[#nixos-layer][NixOS layer]] - [[#osx-layer][OSX layer]] - [[#pair-programming][Pair programming]] - [[#floobits-layer][Floobits layer]] - [[#readers][Readers]] - [[#pdf-layer][PDF layer]] - [[#epub-layer][epub layer]] - [[#dash-layer][Dash layer]] - [[#deft-layer][Deft layer]] - [[#elfeed-layer][Elfeed layer]] - [[#speed-reading-layer][Speed Reading layer]] - [[#programming-languages][Programming languages]] - [[#general-purpose][General-purpose]] - [[#imperative][Imperative]] - [[#forth-layer][Forth layer]] - [[#asm-layer][asm layer]] - [[#source-control][Source control]] - [[#version-control-layer][Version-Control layer]] - [[#github-layer][GitHub layer]] - [[#perforce-layer][Perforce layer]] - [[#git-layer][Git layer]] - [[#spacemacs][Spacemacs]] - [[#distributions][Distributions]] - [[#spacemacs-docker-distribution][spacemacs-docker distribution]] - [[#utilities][Utilities]] - [[#spacemacs-purpose-layer][Spacemacs-purpose layer]] - [[#tagging][Tagging]] - [[#helm-gtags-layer][Helm Gtags layer]] - [[#cscope-layer][Cscope layer]] - [[#themes][Themes]] - [[#themes-megapack-layer][Themes Megapack layer]] - [[#colors-layer][Colors layer]] - [[#theming-layer][Theming layer]] - [[#tools][Tools]] - [[#cfengine-layer][CFEngine layer]] - [[#node-layer][Node layer]] - [[#ansible-layer][Ansible layer]] - [[#lsp-layer][LSP layer]] - [[#command-log-layer][command-log layer]] - [[#restclient-layer][Restclient layer]] - [[#import-js-layer][import-js layer]] - [[#systemd-layer][systemd layer]] - [[#saltstack-layer][Saltstack layer]] - [[#ranger-layer][Ranger layer]] - [[#rebox-layer][Rebox layer]] - [[#dap-layer][DAP layer]] - [[#bm-layer][bm layer]] - [[#terraform-layer][Terraform layer]] - [[#transmission-layer][Transmission layer]] - [[#docker-layer][Docker layer]] - [[#vagrant-layer][Vagrant layer]] - [[#ycmd-layer][YCMD layer]] - [[#sphinx-layer][Sphinx layer]] - [[#xclipboard-layer][xclipboard layer]] - [[#shell-layer][Shell layer]] - [[#tern-layer][Tern layer]] - [[#fasd-layer][fasd layer]] - [[#finance-layer][Finance layer]] - [[#tmux-layer][Tmux layer]] - [[#chrome-layer][Chrome layer]] - [[#web-beautify-layer][web-beautify layer]] - [[#nginx-layer][nginx layer]] - [[#pass-layer][Pass layer]] - [[#geolocation-layer][Geolocation layer]] - [[#prodigy-layer][Prodigy layer]] - [[#cmake-layer][CMake layer]] - [[#imenu-list-layer][imenu-list layer]] - [[#debug-layer][debug layer]] - [[#prettier-layer][prettier layer]] - [[#pandoc-layer][Pandoc layer]] - [[#puppet-layer][Puppet layer]] - [[#vim][Vim]] - [[#evil-snipe-layer][Evil-snipe layer]] - [[#vim-empty-lines-layer][Vim-empty-lines layer]] - [[#evil-commentary-layer][Evil-commentary layer]] - [[#vinegar-layer][Vinegar layer]] - [[#web-services][Web services]] - [[#evernote-layer][Evernote layer]] - [[#twitter-layer][Twitter layer]] - [[#wakatime-layer][Wakatime layer]] - [[#confluence-layer][Confluence layer]] - [[#search-engine-layer][Search Engine layer]] - [[#readmeorg-files-that-need-proper-tags][README.org files that need proper tags]] - [[#coffeescript-layer][CoffeeScript layer]] - [[#spacemacs-project-layer][spacemacs-project layer]] - [[#erlang-layer][Erlang layer]] - [[#json-layer][JSON layer]] - [[#spacemacs-evil-layer][spacemacs-evil layer]] - [[#crystal-layer][crystal layer]] - [[#javascript-layer][JavaScript layer]] - [[#emacs-lisp-layer][Emacs Lisp layer]] - [[#ocaml-layer][Ocaml layer]] - [[#ruby-layer][Ruby layer]] - [[#bibtex-layer][BibTeX layer]] - [[#spacemacs-visual-layer][spacemacs-visual layer]] - [[#perl6-layer][perl6 layer]] - [[#sml-layer][SML layer]] - [[#factor-layer][Factor Layer]] - [[#octave-layer][Octave layer]] - [[#vimscript-language-layer][Vimscript language layer]] - [[#elixir-layer][Elixir layer]] - [[#semantic-web-layer][Semantic Web layer]] - [[#spacemacs-navigation-layer][spacemacs-navigation layer]] - [[#spacemacs-layouts-layer][spacemacs-layouts layer]] - [[#gpu-layer][GPU layer]] - [[#spacemacs-distribution][spacemacs distribution]] - [[#spacemacs-org-layer][spacemacs-org layer]] - [[#graphviz-layer][graphviz layer]] - [[#scheme-layer][Scheme layer]] - [[#markdown-layer][Markdown layer]] - [[#yaml-layer][YAML layer]] - [[#python-layer][Python layer]] - [[#kotlin-layer][kotlin layer]] - [[#spacemacs-defaults][spacemacs-defaults]] - [[#elm-layer][Elm layer]] - [[#nyan-mode][nyan-mode]] - [[#go-layer][GO layer]] - [[#c-layer][C# layer]] - [[#asciidoc-layer][Asciidoc layer]] - [[#dhall-layer][Dhall layer]] - [[#groovy-layer][Groovy layer]] - [[#purescript-layer][Purescript layer]] - [[#idris-layer][Idris layer]] - [[#rust-layer][Rust layer]] - [[#spacemacs-editing-layer][spacemacs-editing layer]] - [[#jsonnet-layer][jsonnet layer]] - [[#scala-layer][Scala layer]] - [[#f-layer][F# layer]] - [[#spacemacs-modeline-layer][spacemacs-modeline layer]] - [[#pact-layer][Pact layer]] - [[#spacemacs-base-distribution][spacemacs-base distribution]] - [[#extra-languages][Extra Languages]] - [[#spacemacs-misc-layer][spacemacs-misc layer]] - [[#typescript-layer][TypeScript layer]] - [[#latex-layer][LaTeX layer]] - [[#d-language-layer][D language layer]] - [[#agda-layer][Agda layer]] - [[#spacemacs-completion-layer][spacemacs-completion layer]] - [[#ess-r-layer][ESS (R) layer]] - [[#haskell-layer][Haskell layer]] - [[#spacemacs-language-layer][spacemacs-language layer]] - [[#sql-layer][SQL layer]] - [[#php-layer][PHP layer]] - [[#julia-layer][julia layer]] - [[#ipython-notebook-layer][IPython Notebook layer]] - [[#protocol-buffers-layer][Protocol Buffers layer]] - [[#nim-layer][Nim layer]] - [[#coq-layer][Coq layer]] - [[#yang-layer][yang layer]] - [[#lua-layer][Lua layer]] - [[#plantuml-layer][plantuml layer]] - [[#spacemacs-editing-visual-layer][spacemacs-editing-visual layer]] - [[#java-layer][Java layer]] - [[#windows-scripting-layer][Windows Scripting layer]] - [[#prolog-layer][prolog layer]] - [[#dart-layer][dart layer]] - [[#perl5-layer][Perl5 layer]] - [[#faust-layer][faust layer]] - [[#spacemacs-bootstrap-distribution][spacemacs-bootstrap distribution]] - [[#shell-scripts-layer][Shell Scripts layer]] - [[#cc-layer][C/C++ layer]] - [[#jr-concurrent-programming-language-layer][JR Concurrent Programming Language layer]] - [[#restructuredtext-layer][reStructuredText layer]] - [[#csv-layer][CSV layer]] - [[#autohotkey-layer][Autohotkey layer]] - [[#hy-layer][Hy layer]] - [[#swift-layer][Swift layer]] - [[#common-lisp-layer][Common Lisp layer]] - [[#html-layer][HTML layer]] - [[#clojure-layer][Clojure layer]] - [[#racket-layer][Racket layer]] * Chats ** ERC layer [[file:+chat/erc/README.org][file:+chat/erc/README.org]] Layer for [[http://www.emacswiki.org/emacs/ERC][ERC IRC chat]]. Features: - Highlight nicks (using [[https://github.com/leathekd/erc-hl-nicks][erc-hl-nicks]]) - Image inline support (using [[https://github.com/kidd/erc-image.el][erc-image]]) - Logging to =~/.emacs.d/.cache/erc-logs= and =ViewLogMode= for viewing logs (using [[https://github.com/Niluge-KiWi/erc-view-log][erc-view-log]]) - YouTube videos Thumbnails inline (using [[https://github.com/yhvh/erc-yt][erc-yt]]) - Social Graph for ERC messages (using [[https://github.com/vibhavp/erc-social-graph][erc-social-graph]]) - Optional SASL authentication via the variable =erc-enable-sasl-auth= (using [[http://emacswiki.org/emacs/ErcSASL][erc-sasl]]) - D-BUS notifications via the variable =erc-enable-notifications= - Completion of Emojis using [[https://github.com/dunn/company-emoji][company-emoji]] (still needs a way of showing, either using the =emoji= layer or having a proper font) :clap: ** Jabber layer [[file:+chat/jabber/README.org][file:+chat/jabber/README.org]] This layer adds support for the Jabber (XMPP) client for Emacs Features: - Use Jabber without having to leave Spacemacs ** RCIRC layer [[file:+chat/rcirc/README.org][file:+chat/rcirc/README.org]] This layer provide support for [[http://www.gnu.org/software/emacs/manual/html_mono/rcirc.html][rcirc]] with optional support for authinfo and ZNC. Features: - Store channel logs into =~/.emacs.d/.cache/rcirc-logs/= - 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 [[https://github.com/dunn/company-emoji][company-emoji]] (still needs a way of showing, either using the =emoji= layer or having a proper font) :clap: ** Slack layer [[file:+chat/slack/README.org][file:+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: - Real time messaging with [[https://github.com/ahyatt/emacs-websocket][emacs-websocket]] - Connect to multiple slack instances - Notifications with [[https://github.com/jwiegley/alert][alert.el]] * Checkers ** Syntax Checking layer [[file:+checkers/syntax-checking/README.org][file:+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 [[http://www.flycheck.org/][Flycheck]] for various language layers - Tooltip syntax errors with =popwin= ** Spell Checking layer [[file:+checkers/spell-checking/README.org][file:+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 [[http://www-sop.inria.fr/members/Manuel.Serrano/flyspell/flyspell.html][Flyspell]]. - Spell as you type - Optional correction popups, controlled by =enable-flyspell-auto-completion= variable. - [[https://github.com/nschum/auto-dictionary-mode][Auto dictionary mode]] for some languages. * Completion ** Templates layer [[file:+completion/templates/README.org][file:+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 [[https://github.com/mineo/yatemplate][yatemplate]], which leverages [[https://github.com/joaotavora/yasnippet][yasnippet]]. Features: - Auto-insert snippets when creating specific new files. ** Helm layer [[file:+completion/helm/README.org][file:+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= ** Auto-completion layer [[file:+completion/auto-completion/README.org][file:+completion/auto-completion/README.org]] This layer adds auto-completion to all supported language layers. Features: - Support for code completion with [[http://company-mode.github.io/][company]] or [[https://github.com/auto-complete/auto-complete][auto-complete]] for various language layers - Frequency-based suggestions via [[https://github.com/company-mode/company-statistics][company-statistics]] for =company= - Integration with [[https://github.com/capitaomorte/yasnippet][yasnippet]] and [[https://github.com/abo-abo/auto-yasnippet][auto-yasnippet]] - Automatic configuration of [[https://www.emacswiki.org/emacs/HippieExpand][hippie-expand]] ** Ivy layer [[file:+completion/ivy/README.org][file:+completion/ivy/README.org]] This layer enables Ivy for completion. It will replace the default completion by [[https://github.com/emacs-helm/helm][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= * E-mail ** Mu4e layer [[file:+email/mu4e/README.org][file:+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 costumizable. - Integration with Helm. - Maildir summary using [[https://github.com/agpchil/mu4e-maildirs-extension][mu4e-mailidrs-extension]] - Notifications using [[https://github.com/iqbalansari/mu4e-alert][mu4e-alert]] ** Notmuch layer [[file:+email/notmuch/README.org][file:+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 notmuch emacs package into spacemacs. Features: - Email searching - Email tagging ** Gnus layer [[file:+email/gnus/README.org][file:+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 [[http://www.gnus.org/][Gnus]]. - Support for beautiful HTML mails generated from any =org= buffer. - Support for credential managment via [[https://gnupg.org/][GnuPG]]. * File trees ** Treemacs layer [[file:+filetree/treemacs/README.org][file:+filetree/treemacs/README.org]] This layer sets up a file navigation and project explorer side-window via [[https://github.com/Alexander-Miller/treemacs][Treemacs]]. Features: An detailed overview over Treemacs’ available features is available in [[https://github.com/Alexander-Miller/treemacs#detailed-feature-list][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. ** Neotree layer [[file:+filetree/neotree/README.org][file:+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 * Fonts ** unicode-fonts layer [[file:+fonts/unicode-fonts/README.org][file:+fonts/unicode-fonts/README.org]] This layer adds support for the [[https://github.com/rolandwalker/unicode-fonts][unicode-fonts]] package. It is recommended to install the fonts listed in the [[https://github.com/rolandwalker/unicode-fonts#quickstart][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). * Emacs ** Smex layer [[file:+emacs/smex/README.org][file:+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 [[https://github.com/nonsequitur/smex][smex]] ** Org layer [[file:+emacs/org/README.org][file:+emacs/org/README.org]] This layer enables [[http://orgmode.org/][org mode]] for Spacemacs. Features: - Vim inspired key bindings are provided by [[https://github.com/Somelauw/evil-org-mode][evil-org-mode]] - Nicer bullet via [[https://github.com/sabof/org-bullets][org-bullets]] - A [[https://cirillocompany.de/pages/pomodoro-technique][pomodoro method]] integration via [[https://github.com/lolownia/org-pomodoro][org-pomodoro]] - Presentation mode via [[https://github.com/rlister/org-present][org-present]] - Insertion of images via [[https://github.com/abo-abo/org-download][org-download]] - Project-specific TODOs via [[https://github.com/IvanMalison/org-projectile][org-projectile]] ** Semantic layer [[file:+emacs/semantic/README.org][file:+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 [[https://github.com/tuhdo/semantic-stickyfunc-enhance][this page]] for demos in some programming languages. - Support common C/C++ refactoring with [[https://github.com/tuhdo/semantic-refactor][semantic-refactor]]. See [[https://github.com/tuhdo/semantic-refactor/blob/master/srefactor-demos/demos.org][this page]] for demonstration of refactoring features. - Support Lisp source code formatting with [[https://github.com/tuhdo/semantic-refactor][semantic-refactor]]. See [[https://github.com/tuhdo/semantic-refactor/blob/master/srefactor-demos/demos-elisp.org][this page]] for demonstration of Lisp formatting features. ** Better Defaults layer [[file:+emacs/better-defaults/README.org][file:+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 [[https://github.com/bbatsov/prelude][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~. ** Typography layer [[file:+emacs/typography/README.org][file:+emacs/typography/README.org]] This layer provides support for typographic text editing in Spacemacs. Features: - Modes to automatically insert and cycle among typographic characters - [[https://github.com/jorgenschaefer/typoel][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). ** IBuffer layer [[file:+emacs/ibuffer/README.org][file:+emacs/ibuffer/README.org]] This layer configures Emacs IBuffer for Spacemacs. Features: - Grouping of buffers by major-modes - Grouping of buffers by projects * Frameworks ** Django layer [[file:+frameworks/django/README.org][file:+frameworks/django/README.org]] This layer adds support for the Python web framework [[https://www.djangoproject.com/][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 [[http://www.fabfile.org][Fabric]] directly from emacs - Control of [[http://south.aeracode.org/][South]] database migration tool ** React layer [[file:+frameworks/react/README.org][file:+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 ** emberjs layer [[file:+frameworks/emberjs/README.org][file:+frameworks/emberjs/README.org]] This enables helpers for working with Ember.js projects. This also includes [[https://github.com/ronco/ember-yasnippets.el][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: #+BEGIN_SRC emacs-lisp ((nil . ((mode . ember)))) #+END_SRC 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=: #+BEGIN_SRC emacs-lisp (setq backup-directory-alist `((".*" . ,temporary-file-directory))) (setq auto-save-file-name-transforms `((".*" ,temporary-file-directory t))) (setq create-lockfiles nil) #+END_SRC 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 ** Ruby on Rails layer [[file:+frameworks/ruby-on-rails/README.org][file:+frameworks/ruby-on-rails/README.org]] This layer aims at providing support for the Ruby on Rails framework. Features: - Quick file navigation with with [[https://github.com/asok/projectile-rails][projectile-rails]] - Run server - Run generators - Rake runner - Interactive Rails console ** phoenix layer [[file:+frameworks/phoenix/README.org][file:+frameworks/phoenix/README.org]] This layer adds key bindings for [[https://github.com/tonini/alchemist.el][Alchemist]]’s already built in phoenix mode. Features: - Key bindings for navigation to files * Fun ** selectric layer [[file:+fun/selectric/README.org][file:+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 monochrom display working on the latest IBM Iseries server. ** Games layer [[file:+fun/games/README.org][file:+fun/games/README.org]] This layer allows you to play evilified games in spacemacs. Features: - 2048-game - Pacmacs (Pacman for Emacs) - Sudoku - Tetris - Typit ** Emoji layer [[file:+fun/emoji/README.org][file:+fun/emoji/README.org]] This layer adds support for Emoji emoticons from [[https://www.webpagefx.com/tools/emoji-cheat-sheet/][emoji-cheat-sheet]]. Features: - Browse Emoji in a dedicated buffer - Display Emoji images in buffer - Insert one or several Emoji with an helm front-end - Completion of Emojis using [[https://github.com/dunn/company-emoji][company-emoji]] ** xkcd layer [[file:+fun/xkcd/README.org][file:+fun/xkcd/README.org]] This layer adds a [[http://xkcd.com/][xkcd]] navigation mode using [[https://github.com/vibhavp/emacs-xkcd][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 ** Japanese layer [[file:+intl/japanese/README.org][file:+intl/japanese/README.org]] This Layer adds Japanese related packages. Features: - [[https://github.com/kenjimyzk/evil-tutor-ja][evil-tutor-ja]]: Japanese Vimtutor adapted to Emacs+Evil and wrapped in a major mode - [[https://github.com/emacs-jp/migemo][migemo]]: Japanese incremental search through dynamic pattern expansion - [[https://github.com/emacs-helm/helm/wiki/Migemo][helm-migemo-mode]]: helm with migemo - [[https://github.com/momomo5717/avy-migemo/blob/master/README.jp.org][avy-migemo]]: avy with migemo - [[https://github.com/hsaito/ddskk][ddskk]]: Simple Kana to Kanji conversion program (SKK) - [[https://github.com/emacs-jp/japanese-holidays][japanese-holidays]]: calendar functions for the Japanese calendar - [[https://github.com/coldnew/pangu-spacing][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. ** Chinese layer [[file:+intl/chinese/README.org][file:+intl/chinese/README.org]] This layer adds support for traditional Chinese script to Spacemacs. Features: - Support for the [[https://en.wikipedia.org/wiki/Pinyin][Pinyin(拼音)]] input method via [[https://github.com/tumashu/chinese-pyim][chinese-pyim]]. - Support for the [[https://en.wikipedia.org/wiki/Wubi_method][Wubi(五笔)]] input method via [[https://github.com/andyque/chinese-wbim][chinese-wbim]]. - Integration of the native input method framework [[https://en.wikipedia.org/wiki/Fcitx][fcitx]] via [[https://github.com/cute-jumper/fcitx.el][cute-jumper/fcitx.el]]. - Integration of the [[https://en.wikipedia.org/wiki/Youdao][Youdao(有道) Dictionary]] via [[https://github.com/xuchunyang/youdao-dictionary.el][youdao-dictionary]]. - Support for file searches in =dired= using Chinese Pinyin characters via [[https://github.com/redguardtoo/find-by-pinyin-dired][find-by-pinyin-dired]]. - Support for jumping to Chinese Pinyin characters with =ace-jump-mode= via [[https://github.com/cute-jumper/ace-pinyin][ace-pinyin]]. - Support for conversion between simplified and traditional Chinese texts via [[https://github.com/gucong/emacs-chinese-conv/][chinese-conv]]. - Automatic visual separation of Chinese and Latin characters via [[https://github.com/coldnew/pangu-spacing][coldnew/pangu-spacing]]. - Automatic joining of consecutive Chinese lines into a single long line without unwanted space when exporting org-mode to html. ** keyboard-layout layer [[file:+intl/keyboard-layout/README.org][file:+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 alernative keyboard layouts within spacemacs - Remap navigation commands to the homerow of your chosen layout - Remap missing commands automatically to elsewhere in the layout * Miscellaneous ** multiple-cursors layer [[file:+misc/multiple-cursors/README.org][file:+misc/multiple-cursors/README.org]] Features: - support for multiple cursors. ** Parinfer layer [[file:+misc/parinfer/README.org][file:+misc/parinfer/README.org]] This layer provides an implementation of [[https://shaunlebron.github.io/parinfer/][parinfer]], a lisp editing paradigm that controls indentation based on parentheses or vice versa. Features: - Automatic managment of parenthesis in clojure, emacs lisp, common-lisp and scheme following the parinfer editing paradigm. ** nlinum layer [[file:+misc/nlinum/README.org][file:+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. ** copy-as-format layer [[file:+misc/copy-as-format/README.org][file:+misc/copy-as-format/README.org]] This layer adds support for [[https://github.com/sshaw/copy-as-format][copy-as-format]]. Features: - Function to copy buffer locations as GitHub/Slack/JIRA/HipChat/... formatted code ** ietf layer [[file:+misc/ietf/README.org][file:+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. * Music ** Spotify layer [[file:+music/spotify/README.org][file:+music/spotify/README.org]] This layer integrates an online music service into Spacemacs. Features: - Support for listening to music from within Emacs via [[https://www.spotify.com][Spotify]]. * Operating systems ** NixOS layer [[file:+os/nixos/README.org][file:+os/nixos/README.org]] This layer adds tools for better integration of emacs in NixOS. Features: - Nix-mode using [[https://github.com/NixOS/nix-mode][nix-mode]] - Auto-completion of NixOS Options using [[https://github.com/travisbhartwell/nix-emacs/blob/master/company-nixos-options.el][company-nixos-options]] - Helm Lookup for NixOS Options [[https://github.com/travisbhartwell/nix-emacs/blob/master/helm-nixos-options.el][helm-nixos-options]] ** OSX layer [[file:+os/osx/README.org][file:+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 layer [[file:+pair-programming/floobits/README.org][file:+pair-programming/floobits/README.org]] This layer adds support for the peer programming tool [[https://github.com/Floobits/floobits-emacs][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 * Readers ** PDF layer [[file:+readers/pdf/README.org][file:+readers/pdf/README.org]] This layer enables support for PDF with the [[https://github.com/politza/pdf-tools][pdf-tools]] package. According to the official repository: #+BEGIN_QUOTE “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.” #+END_QUOTE Features: - Searching and slicing with =occur=. - Show document headings in outline buffer. - Manipulate annotations. - Fit PDF to screen. ** epub layer [[file:+readers/epub/README.org][file:+readers/epub/README.org]] This layer provides support for reading EPUB-formatted eBooks in Spacemacs using the excellent [[https://github.com/wasamasa/nov.el][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 (