#+TITLE: Configuration layers * Table of Contents :TOC_5_gh:noexport: - [[#checkers][Checkers]] - [[#spell-checking][Spell checking]] - [[#syntax-checking][Syntax checking]] - [[#web-services][Web services]] - [[#confluence][Confluence]] - [[#evernote][Evernote]] - [[#search-engine][Search engine]] - [[#twitter][Twitter]] - [[#wakatime][Wakatime]] - [[#spacemacs][Spacemacs]] - [[#distributions][Distributions]] - [[#spacemacs-docker-distribution][Spacemacs-docker distribution]] - [[#utilities][Utilities]] - [[#spacemacs-purpose][Spacemacs-purpose]] - [[#music][Music]] - [[#spotify][Spotify]] - [[#miscellaneous][Miscellaneous]] - [[#parinfer][Parinfer]] - [[#copy-as-format][Copy-as-format]] - [[#ietf][Ietf]] - [[#multiple-cursors][Multiple-cursors]] - [[#nlinum][Nlinum]] - [[#fun][Fun]] - [[#emoji][Emoji]] - [[#games][Games]] - [[#selectric][Selectric]] - [[#xkcd][Xkcd]] - [[#programming-languages][Programming languages]] - [[#domain-specific-dsls][Domain-specific (DSLs)]] - [[#coq][Coq]] - [[#ess-r][Ess (r)]] - [[#extra-languages][Extra languages]] - [[#gpu][Gpu]] - [[#octave][Octave]] - [[#sql][Sql]] - [[#faust][Faust]] - [[#prolog][Prolog]] - [[#lisp-dialects][Lisp dialects]] - [[#clojure][Clojure]] - [[#common-lisp][Common lisp]] - [[#emacs-lisp][Emacs lisp]] - [[#scheme][Scheme]] - [[#markup--configuration][Markup & configuration]] - [[#asciidoc][Asciidoc]] - [[#bibtex][Bibtex]] - [[#csv][Csv]] - [[#dhall][Dhall]] - [[#html][Html]] - [[#json][Json]] - [[#latex][Latex]] - [[#markdown][Markdown]] - [[#semantic-web][Semantic web]] - [[#yaml][Yaml]] - [[#graphviz][Graphviz]] - [[#jsonnet][Jsonnet]] - [[#plantuml][Plantuml]] - [[#restructuredtext][Restructuredtext]] - [[#yang][Yang]] - [[#scripting][Scripting]] - [[#autohotkey][Autohotkey]] - [[#shell-scripts][Shell scripts]] - [[#vimscript-language][Vimscript language]] - [[#windows-scripting][Windows scripting]] - [[#general-purpose][General-purpose]] - [[#imperative][Imperative]] - [[#forth][Forth]] - [[#asm][Asm]] - [[#multi-paradigm][Multi-paradigm]] - [[#c][C#]] - [[#cc][C/c++]] - [[#d-language][D language]] - [[#elixir][Elixir]] - [[#erlang][Erlang]] - [[#f][F#]] - [[#factor-layer][Factor layer]] - [[#go][Go]] - [[#groovy][Groovy]] - [[#hy][Hy]] - [[#jr-concurrent-programming-language][Jr concurrent programming language]] - [[#java][Java]] - [[#lua][Lua]] - [[#nim][Nim]] - [[#ocaml][Ocaml]] - [[#php][Php]] - [[#pact][Pact]] - [[#perl5][Perl5]] - [[#python][Python]] - [[#racket][Racket]] - [[#ruby][Ruby]] - [[#rust][Rust]] - [[#sml][Sml]] - [[#scala][Scala]] - [[#swift][Swift]] - [[#crystal][Crystal]] - [[#dart][Dart]] - [[#julia][Julia]] - [[#kotlin][Kotlin]] - [[#perl6][Perl6]] - [[#javascript-dialects][JavaScript dialects]] - [[#coffeescript][Coffeescript]] - [[#javascript][Javascript]] - [[#purescript][Purescript]] - [[#typescript][Typescript]] - [[#purely-functional][Purely functional]] - [[#agda][Agda]] - [[#elm][Elm]] - [[#haskell][Haskell]] - [[#idris][Idris]] - [[#frameworks][Frameworks]] - [[#django][Django]] - [[#react][React]] - [[#ruby-on-rails][Ruby on rails]] - [[#emberjs][Emberjs]] - [[#phoenix][Phoenix]] - [[#utilities-1][Utilities]] - [[#ipython-notebook][Ipython notebook]] - [[#protocol-buffers][Protocol buffers]] - [[#readers][Readers]] - [[#dash][Dash]] - [[#deft][Deft]] - [[#elfeed][Elfeed]] - [[#pdf][Pdf]] - [[#speed-reading][Speed reading]] - [[#epub][Epub]] - [[#fonts][Fonts]] - [[#unicode-fonts][Unicode-fonts]] - [[#completion][Completion]] - [[#auto-completion][Auto-completion]] - [[#helm][Helm]] - [[#ivy][Ivy]] - [[#templates][Templates]] - [[#operating-systems][Operating systems]] - [[#nixos][Nixos]] - [[#osx][Osx]] - [[#themes][Themes]] - [[#colors][Colors]] - [[#themes-megapack][Themes megapack]] - [[#theming][Theming]] - [[#readmeorg-files-that-need-proper-tags][README.org files that need proper tags]] - [[#alda-layer][Alda layer]] - [[#nyan-mode][Nyan-mode]] - [[#spacemacs-distribution][Spacemacs distribution]] - [[#spacemacs-base-distribution][Spacemacs-base distribution]] - [[#spacemacs-bootstrap-distribution][Spacemacs-bootstrap distribution]] - [[#spacemacs-completion][Spacemacs-completion]] - [[#spacemacs-defaults][Spacemacs-defaults]] - [[#spacemacs-editing][Spacemacs-editing]] - [[#spacemacs-editing-visual][Spacemacs-editing-visual]] - [[#spacemacs-evil][Spacemacs-evil]] - [[#spacemacs-language][Spacemacs-language]] - [[#spacemacs-layouts][Spacemacs-layouts]] - [[#spacemacs-misc][Spacemacs-misc]] - [[#spacemacs-modeline][Spacemacs-modeline]] - [[#spacemacs-navigation][Spacemacs-navigation]] - [[#spacemacs-org][Spacemacs-org]] - [[#spacemacs-project][Spacemacs-project]] - [[#spacemacs-visual][Spacemacs-visual]] - [[#pair-programming][Pair programming]] - [[#floobits][Floobits]] - [[#e-mail][E-mail]] - [[#gnus][Gnus]] - [[#mu4e][Mu4e]] - [[#notmuch][Notmuch]] - [[#source-control][Source control]] - [[#git][Git]] - [[#github][Github]] - [[#perforce][Perforce]] - [[#version-control][Version-control]] - [[#file-trees][File trees]] - [[#neotree][Neotree]] - [[#treemacs][Treemacs]] - [[#chats][Chats]] - [[#erc][Erc]] - [[#jabber][Jabber]] - [[#rcirc][Rcirc]] - [[#slack][Slack]] - [[#tools][Tools]] - [[#ansible][Ansible]] - [[#cfengine][Cfengine]] - [[#cmake][Cmake]] - [[#chrome][Chrome]] - [[#dap][Dap]] - [[#docker][Docker]] - [[#finance][Finance]] - [[#geolocation][Geolocation]] - [[#lsp][Lsp]] - [[#node][Node]] - [[#pandoc][Pandoc]] - [[#pass][Pass]] - [[#prodigy][Prodigy]] - [[#puppet][Puppet]] - [[#ranger][Ranger]] - [[#rebox][Rebox]] - [[#restclient][Restclient]] - [[#saltstack][Saltstack]] - [[#shell][Shell]] - [[#sphinx][Sphinx]] - [[#tern][Tern]] - [[#terraform][Terraform]] - [[#tmux][Tmux]] - [[#transmission][Transmission]] - [[#vagrant][Vagrant]] - [[#ycmd][Ycmd]] - [[#bm][Bm]] - [[#command-log][Command-log]] - [[#debug][Debug]] - [[#fasd][Fasd]] - [[#imenu-list][Imenu-list]] - [[#import-js][Import-js]] - [[#nginx][Nginx]] - [[#prettier][Prettier]] - [[#systemd][Systemd]] - [[#web-beautify][Web-beautify]] - [[#xclipboard][Xclipboard]] - [[#internationalization][Internationalization]] - [[#chinese][Chinese]] - [[#japanese][Japanese]] - [[#keyboard-layout][Keyboard-layout]] - [[#tagging][Tagging]] - [[#cscope][Cscope]] - [[#helm-gtags][Helm gtags]] - [[#vim][Vim]] - [[#evil-commentary][Evil-commentary]] - [[#evil-snipe][Evil-snipe]] - [[#vim-empty-lines][Vim-empty-lines]] - [[#vinegar][Vinegar]] - [[#emacs][Emacs]] - [[#better-defaults][Better defaults]] - [[#ibuffer][Ibuffer]] - [[#org][Org]] - [[#semantic][Semantic]] - [[#smex][Smex]] - [[#typography][Typography]] * Checkers ** Spell checking [[file:+checkers/spell-checking/README.org][+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. ** Syntax checking [[file:+checkers/syntax-checking/README.org][+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= * Web services ** Confluence [[file:+web-services/confluence/README.org][+web-services/confluence/README.org]] This layer adds support for Atlassian [[https://www.atlassian.com/software/confluence][Confluence]]. Features: - Creating/editing of Confluence pages - Exporting of org buffers to Confluence =wiki= format ** Evernote [[file:+web-services/evernote/README.org][+web-services/evernote/README.org]] This layer adds support for the famous [[https://evernote.com/][Evernote]] note taking service to Spacemacs. It does so by grouping together various packages to work with [[https://evernote.com/][Evernote]]. Features: - Create notes in markdown and sync with [[https://evernote.com/][Evernote]] via [[http://www.geeknote.me][geeknote]]. - Search for notes using keywords - Move notes between notebooks ** Search engine [[file:+web-services/search-engine/README.org][+web-services/search-engine/README.org]] This layer adds support for the [[https://github.com/hrs/engine-mode][Search Engine]] package. Features: - Browser search integration ** Twitter [[file:+web-services/twitter/README.org][+web-services/twitter/README.org]] This layer adds Twitter support to Spacemacs via the package [[https://github.com/hayamiz/twittering-mode][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 [[file:+web-services/wakatime/README.org][+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 * Spacemacs ** Distributions *** Spacemacs-docker distribution [[file:+distributions/spacemacs-docker/README.org][+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 [[https://i.imgur.com/wDLDMZN.gif][your web browser]]. Features: - Automatically get Spacemacs layers dependency installed with [[https://github.com/syl20bnr/spacemacs/blob/develop/layers/%2Bdistributions/spacemacs-docker/deps-install/README.org][installer scripts]] - Reap the benefit of Emacs and other GNU/Linux tools on Windows/MacOS machines - Use [[https://hub.docker.com/][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 - An easy way to swap Emacs version (=emacs25= =emacs-snapshot=) for debugging - [[https://docs.docker.com/engine/reference/commandline/pause/][pause]] container to free resources temporarily - [[https://github.com/docker/docker/blob/1.13.x/experimental/checkpoint-restore.md][Checkpoint & Restore]] - maybe the fastest way to start a “heavy” environment - Friendly for networks with low upload speed/quotas. ** Utilities *** Spacemacs-purpose [[file:+spacemacs/spacemacs-purpose/README.org][+spacemacs/spacemacs-purpose/README.org]] This layer enables [[https://github.com/bmag/emacs-purpose][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 [[https://github.com/m2ym/popwin-el][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. * Music ** Spotify [[file:+music/spotify/README.org][+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]]. * Miscellaneous ** Parinfer [[file:+misc/parinfer/README.org][+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. ** Copy-as-format [[file:+misc/copy-as-format/README.org][+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 [[file:+misc/ietf/README.org][+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 [[file:+misc/multiple-cursors/README.org][+misc/multiple-cursors/README.org]] Features: - support for multiple cursors. ** Nlinum [[file:+misc/nlinum/README.org][+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. * Fun ** Emoji [[file:+fun/emoji/README.org][+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]] ** Games [[file:+fun/games/README.org][+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 [[file:+fun/selectric/README.org][+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. ** Xkcd [[file:+fun/xkcd/README.org][+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= * Programming languages ** Domain-specific (DSLs) *** Coq [[file:+lang/coq/README.org][+lang/coq/README.org]] This layer adds support for the [[https://coq.inria.fr/][Coq]] proof assistant (adapted from [[https://github.com/tchajed/spacemacs-coq][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) [[file:+lang/ess/README.org][+lang/ess/README.org]] This layer adds support for statistical programming languages to Spacemacs. Features: - Syntax highlighting - Auto-completion - Syntax-checking via [[https://github.com/jimhester/lintr][lintr]] - Additional data viewer for R via [[https://github.com/myuhe/ess-R-data-view.el][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 [[https://ess.r-project.org/Manual/ess.html#Current-Features][ESS Project]] *** Extra languages [[file:+lang/major-modes/README.org][+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 *** Gpu [[file:+lang/gpu/README.org][+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 [[https://github.com/Kaali/company-glsl][company-glsl]] for - =.vert= (Shaders) - =.geom= (Shaders) - =.tesc= (Shaders) - =.tese= (Shaders) - =.frag= (Shaders) - =.comp= (Shaders) *** Octave [[file:+lang/octave/README.org][+lang/octave/README.org]] This layer adds support for =GNU Octave= files to Spacemacs. Features: - Syntax highlighting for =.m= files via [[https://www.gnu.org/software/emacs/manual/html_mono/octave-mode.html][octave-mode]]. - REPL support - Support for directly running =Octave= scripts from emacs. - Integration with =Octaves= documentation search function. *** Sql [[file:+lang/sql/README.org][+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 [[https://github.com/purcell/sqlint][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. *** Faust [[file:+lang/faust/README.org][+lang/faust/README.org]] This layer adds support for the [[https://en.wikipedia.org/wiki/FAUST_(programming_language)][faust language]] to Spacemacs. Features: - Syntax highlighting - Auto-completion *** Prolog [[file:+lang/prolog/README.org][+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. *** Lisp dialects **** Clojure [[file:+lang/clojure/README.org][+lang/clojure/README.org]] This layer adds support for [[https://clojure.org/][Clojure]] language using [[https://github.com/clojure-emacs/cider][CIDER]]. Features: - REPL via [[https://github.com/clojure-emacs/cider][CIDER]] - Code formatting via [[https://github.com/clojure-emacs/cider][CIDER]] using [[https://github.com/weavejester/cljfmt][Cljfmt]] - Refactoring via [[https://github.com/clojure-emacs/clj-refactor.el][clj-refactor]] - Aligning of code forms via [[https://github.com/clojure-emacs/clojure-mode][clojure-mode]] - Debugging with [[https://github.com/clojure-emacs/sayid][sayid]] - Clojure cheatsheet - Structuraly safe editing using optional [[https://github.com/luxbock/evil-cleverparens][evil-cleverparens]] **** Common lisp [[file:+lang/common-lisp/README.org][+lang/common-lisp/README.org]] This layer provides support for Common Lisp to Spacemacs. Features: - Syntax highlighting - Auto-completion using company - Repl support via [[https://github.com/slime/slime][SLIME]] - Support for specific lisp navigation styles via =common-lisp-mode= - Support for [[http://www.sbcl.org/][sbcl]] backend or any other =common-lisp= implementation **** Emacs lisp [[file:+lang/emacs-lisp/README.org][+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 [[https://github.com/purcell/flycheck-package][flycheck-package]] - Repl support via =IELM= - Support for specific lisp navigation styles via =emacs-lisp-mode= - Auto-compile via [[https://github.com/tarsius/auto-compile][auto-compile]] package - Debuggin via [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Edebug.html#Edebug][edebug]] - Ert test runner with [[https://github.com/tonini/overseer.el][overseer]] - Nameless package prefix with optional [[https://github.com/Malabarba/Nameless][nameless]] - Structuraly safe editing using optional [[https://github.com/luxbock/evil-cleverparens][evil-cleverparens]] - Visual feedback when evaluation using [[https://github.com/hchbaw/eval-sexp-fu.el][eval-sexp-fu]] **** Scheme [[file:+lang/scheme/README.org][+lang/scheme/README.org]] This layer adds support for Scheme via [[http://geiser.nongnu.org][Geiser]]. Note that combined usage of racket-mode and geiser has not been tested. Features: - Support the Scheme compiler [[https://www.call-cc.org/][Chicken]] - Support for the extension language platform [[https://www.gnu.org/software/guile/][Guile]] - Structuraly safe editing using optional [[https://github.com/luxbock/evil-cleverparens][evil-cleverparens]] *** Markup & configuration **** Asciidoc [[file:+lang/asciidoc/README.org][+lang/asciidoc/README.org]] This layer adds [[https://asciidoctor.org][AsciiDoc]] markup language support to Spacemacs. Features: - asciidoc format support via [[https://github.com/sensorflo/adoc-mode][adoc-mode]] - =.adoc= files are associated with =adoc-mode= by default **** Bibtex [[file:+lang/bibtex/README.org][+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 [[file:+lang/csv/README.org][+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 [[file:+lang/dhall/README.org][+lang/dhall/README.org]] This layer adds support for the [[https://dhall-lang.org/][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 [[https://github.com/dhall-lang/dhall-haskell/releases][can be found here]]. **** Html [[file:+lang/html/README.org][+lang/html/README.org]] This layer adds support for editing HTML and CSS. Features: - Editing HTML and CSS file using [[http://web-mode.org/][web-mode]] - Support for Sass/Scss and Less files - Generate HTML and CSS coding using [[https://github.com/smihica/emmet-mode][emmet-mode]] - Tags navigation on key ~%~ using [[https://github.com/redguardtoo/evil-matchit][evil-matchit]] - Support for editing Slim and Pug templates using [[https://github.com/slim-template/emacs-slim][slim-mode]] and [[https://github.com/hlissner/emacs-pug-mode][pug-mode]] - See the effects of typed HTML using [[https://github.com/skeeto/impatient-mode][impatient-mode]] - imenu support for CSS and Sass through [[https://github.com/hlissner/emacs-counsel-css][counsel-css]] - Formatting with [[https://github.com/yasuyk/web-beautify][web-beautify]] **** Json [[file:+lang/json/README.org][+lang/json/README.org]] This layer adds support for JSON files with [[https://github.com/joshwnj/json-mode][json-mode]] Features: - Syntax highlighting - Auto-completion - Get the path to a JSON value with [[https://github.com/Sterlingg/json-snatcher][json-snatcher]] - Navigate JSON hierarchy with [[https://github.com/DamienCassou/json-navigator][json-nagivator]] - Formatting with [[https://github.com/yasuyk/web-beautify][web-beautify]] or [[https://github.com/prettier/prettier][prettier]] **** Latex [[file:+lang/latex/README.org][+lang/latex/README.org]] This layer adds support for LaTeX files with [[https://savannah.gnu.org/projects/auctex/][AucTeX]]. Features: - Auto-build with [[https://github.com/tom-tan/auctex-latexmk/][auctex-latexmk]] - Auto-completion with [[https://github.com/alexeyr/company-auctex][company-auctex]] - Tags navigation on ~%~ with [[https://github.com/redguardtoo/evil-matchit][evil-matchit]] - Labels, references, citations and index entries management with [[http://www.gnu.org/software/emacs/manual/html_node/reftex/index.html][RefTeX]] **** Markdown [[file:+lang/markdown/README.org][+lang/markdown/README.org]] This layer adds markdown support to Spacemacs. Features: - markdown files support via [[http://jblevins.org/git/markdown-mode.git/][markdown-mode]] - Fast Github-flavored live preview via [[https://github.com/blak3mill3r/vmd-mode][vmd-mode]] - TOC generation via [[https://github.com/ardumont/markdown-toc][markdown-toc]] - 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: **** Semantic web [[file:+lang/semantic-web/README.org][+lang/semantic-web/README.org]] This layer adds support for RDF files in N3 and [[https://www.w3.org/TR/turtle/][Turtle syntax]] using [[https://bitbucket.org/nxg/ttl-mode][ttl-mode]] and for [[https://www.w3.org/TR/sparql11-query/][SPARQL]] queries using [[https://github.com/ljos/sparql-mode][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 [[file:+lang/yaml/README.org][+lang/yaml/README.org]] This layer provides support for the YAML file format. Features: - Syntax highlighting - Syntax checking via [[http://www.flycheck.org/en/latest/languages.html#yaml][flycheck]] **** Graphviz [[file:+lang/graphviz/README.org][+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 [[https://github.com/ppareit/graphviz-dot-mode][graphviz-dot-mode]]. - Control of the graphviz compiler directly from emacs. - Support for formatting =.dot= files automatically. **** Jsonnet [[file:+lang/jsonnet/README.org][+lang/jsonnet/README.org]] This layer provides support for [[https://jsonnet.org/][Jsonnet template]] provided by [[https://github.com/mgyucht/jsonnet-mode][jsonnet-mode]]. Features: - syntax highlighting - buffer formatting - jump to definition - buffer evaluation **** Plantuml [[file:+lang/plantuml/README.org][+lang/plantuml/README.org]] This layer enables support for [[https://github.com/skuro/plantuml-mode][plantuml-mode]], which provides a major-mode for [[http://plantuml.com][plantuml]]. PlantUML is a tool to generate [[https://en.wikipedia.org/wiki/Unified_Modeling_Language][UML diagrams]] from plain-text. For help with how to use plantuml, see the [[http://plantuml.com][plantuml website]] and the [[http://plantuml.com/PlantUML_Language_Reference_Guide.pdf][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: #+BEGIN_SRC plantuml @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 #+END_SRC [[file:+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 [[file:+lang/restructuredtext/README.org][+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=. **** Yang [[file:+lang/yang/README.org][+lang/yang/README.org]] This layer provides support for the YANG file format. Features: - Syntax highlighting - Syntax checking via [[http://www.flycheck.org/en/latest/languages.html#yaml][flycheck]] *** Scripting **** Autohotkey [[file:+lang/autohotkey/README.org][+lang/autohotkey/README.org]] Syntax highlighting and Emacs functions for use with [[https://autohotkey.com/][AutoHotkey]] or [[http://ahkscript.org][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 [[http://fincs.ahk4.net/scite4ahk/][SciTE4AutoHotkey]]. Contributed and maintained by [[https://www.github.com/ralesi][Rich Alesi]]. Features: - Auto-completion - Documentation Lookup - Execute Code Snippets - Correct Indentation and Commenting **** Shell scripts [[file:+lang/shell-scripts/README.org][+lang/shell-scripts/README.org]] This simple layer adds support for shell scripting. Supported scripting files: - =.sh= - =.fish=: [[https://github.com/fish-shell/fish-shell][fish shell]] *Note:* For Windows scripting see the layer =windows-scripts= Features: - Auto-completion using [[https://github.com/Alexander-Miller/company-shell][company-shell]] - =Sh= scripts linting using [[https://www.shellcheck.net/][shellcheck]] - =Sh= scripts style checking using [[https://github.com/openstack-dev/bashate][bashate]] **** Vimscript language [[file:+lang/vimscript/README.org][+lang/vimscript/README.org]] This layer adds basic support for vimscript and pentadactyl config files. Features: - Syntax highlighting **** Windows scripting [[file:+lang/windows-scripts/README.org][+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 [[https://github.com/jschaf/powershell.el][powershell.el]] - Syntax highlighting of batch =.bat= files via [[https://www.emacswiki.org/emacs/DosMode][dos.el]] ** General-purpose *** Imperative **** Forth [[file:+lang/forth/README.org][+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. **** Asm [[file:+lang/asm/README.org][+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. *** Multi-paradigm **** C# [[file:+lang/csharp/README.org][+lang/csharp/README.org]] This layer adds support for C# language using the [[https://github.com/OmniSharp/omnisharp-roslyn][omnisharp-roslyn]] language server and corresponding [[https://github.com/OmniSharp/omnisharp-emacs][omnisharp-emacs]] package. Please report any issues encountered to [[https://github.com/OmniSharp/omnisharp-emacs/issues][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++ [[file:+lang/c-c++/README.org][+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 [[https://github.com/jart/disaster][disaster]]. - Support code reformatting with [[http://clang.llvm.org/docs/ClangFormat.html][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 [[https://github.com/tuhdo/semantic-stickyfunc-enhance][stickyfunc-demos]] for demos in some programming languages. (when =semantic= layer is included) - Support common refactoring with [[https://github.com/tuhdo/semantic-refactor][semantic-refactor]]. See [[https://github.com/tuhdo/semantic-refactor/blob/master/srefactor-demos/demos.org][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 [[https://github.com/realgud/realgud][realgud]] debugger. - Support for [[https://github.com/Andersbakken/rtags][rtags]]. - Support for [[https://github.com/cquery-project/cquery][cquery]] or [[https://github.com/MaskRay/ccls][ccls]] as an lsp backend. **** D language [[file:+lang/d/README.org][+lang/d/README.org]] This simple layer adds support for the [[http://dlang.org/][D language]] to Spacemacs. Features: - Syntax highlighting - Auto completion via =company= - Syntax checking via =flycheck= **** Elixir [[file:+lang/elixir/README.org][+lang/elixir/README.org]] This layer adds support for [[http://elixir-lang.org/][Elixir]]. [[https://github.com/tonini/alchemist.el][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 [[http://company-mode.github.io/][company-mode]] - Flycheck support for mix compile - Flycheck support for [[https://github.com/rrrene/credo][credo]] - Flycheck support for test results **** Erlang [[file:+lang/erlang/README.org][+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# [[file:+lang/fsharp/README.org][+lang/fsharp/README.org]] This layer adds support for F# language using [[https://github.com/fsharp/fsharpbinding][fsharpbinding]] and [[https://github.com/fsharp/fsharpbinding][fsharp-mode]]. Features: - Syntax highlighting - Code completion - Flycheck integration - REPL - Compile/Run/Interpreter and info tooltip shortcuts **** Factor layer [[file:+lang/factor/README.org][+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 [[file:+lang/go/README.org][+lang/go/README.org]] This layer adds extensive support for go to Spacemacs. Features: - gofmt/goimports on file save (to enable, see [[file:+lang/go/README.org][Configuration]]) - Auto-completion using [[https://github.com/nsf/gocode/tree/master/emacs][go-autocomplete]] (with the =auto-completion= layer) - Source analysis using [[https://docs.google.com/document/d/1_Y9xCEMj5S-7rv2ooHpZNH15JgRT5iM742gJkw5LtmQ][go-guru]] - Refactoring with [[http://gorefactor.org/][godoctor]] - Edit struct field tag with [[https://github.com/fatih/gomodifytags][gomodifytags]] - Linting with flycheck’s built-in checkers or flycheck-gometalinter - Coverage profile visualization - Test generation with [[https://github.com/s-kostyaev/go-gen-test][go-gen-test]] - Get packages faster with [[https://github.com/haya14busa/gopkgs][gopkgs]] - Fill a structure with default values using the [[https://github.com/davidrjenni/reftools/tree/master/cmd/fillstruct][fillstruct]] - LSP backend **** Groovy [[file:+lang/groovy/README.org][+lang/groovy/README.org]] This layer supports [[http://www.groovy-lang.org/][Groovy]] development in Spacemacs. Features: - Basic dabbrev auto-completion with company - Auto-generate imports with [[https://github.com/mbezjak/emacs-groovy-imports][groovy-imports]] - Groovy REPL integration **** Hy [[file:+lang/hy/README.org][+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 [[file:+lang/hy/../python/README.org][python layer]]) - Virtual Environment using [[https://github.com/jorgenschaefer/pyvenv][pyvenv]] and [[https://github.com/yyuu/pyenv][pyenv]] - Org Babel support **** Jr concurrent programming language [[file:+lang/jr/README.org][+lang/jr/README.org]] This layer adds syntax highlighting for the [[http://web.cs.ucdavis.edu/~olsson/research/jr/][JR Concurrent Programming Language]]. JR is the implementation of the [[https://www2.cs.arizona.edu/sr/][SR]] language for Java. Features: - Syntax highlighting **** Java [[file:+lang/java/README.org][+lang/java/README.org]] This layer adds support for the Java language. Features: - Support for the following backends: - [[https://github.com/mopemope/meghanada-emacs][Meghanada]] client/server (default), - [[http://eclim.org][Eclim]] client/server, - [[https://ensime.github.io/][ENSIME]] client/server. - [[https://github.com/emacs-lsp/lsp-java][LSP Java]] client/server. - Each provides: - Auto-completion using company - Linting using flycheck integration - Maven and Gradle integration **** Lua [[file:+lang/lua/README.org][+lang/lua/README.org]] This layer adds support for editing Lua. Features: - Editing lua files using [[https://github.com/immerrr/lua-mode][lua-mode]] - Sending code to a lua REPL - Code linting using [[https://github.com/mpeterv/luacheck][Luacheck]] **** Nim [[file:+lang/nim/README.org][+lang/nim/README.org]] This layer adds support for the multi-paradigm language =Nim=. Features: - Code completion. - Jump to definition. - Syntax checking. **** Ocaml [[file:+lang/ocaml/README.org][+lang/ocaml/README.org]] This is a very basic layer for editing ocaml files. Features: - Syntax highlighting (major-mode) via [[https://github.com/ocaml/tuareg][tuareg-mode]] - Error reporting, completion and type display via [[https://github.com/ocaml/merlin][merlin]] - auto-completion with company mode via [[https://github.com/ocaml/merlin][merlin]] - syntax-checking via [[https://github.com/flycheck/flycheck-ocaml][flycheck-ocaml]] (or alternatively [[https://github.com/ocaml/merlin][merlin]]) - =dune= file syntax highlighting and template insertion via [[https://github.com/ocaml/dune/][dune-mode]] **** Php [[file:+lang/php/README.org][+lang/php/README.org]] This layer adds PHP language support to Spacemacs. Features: - Edit PHP files using [[https://github.com/ejmr/php-mode][php-mode]] - Edit Drupal files - Complete and jump to define with [[https://github.com/xcwen/ac-php][company-php]] - Run tests with PHPUnit - Reformat code with PHP CBF The =gtags= layer is recommended to benefit from better =eldoc= and =helm-gtags=. **** Pact [[file:+lang/pact/README.org][+lang/pact/README.org]] This layer adds support for the [[https://github.com/kadena-io/pact][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 [[file:+lang/perl5/README.org][+lang/perl5/README.org]] This layer adds support for the Perl5 language. Features: - Syntactic and semantic checking using [[https://github.com/flycheck/flycheck][flycheck]] - Auto-completion using [[https://github.com/CeleritasCelery/company-plsense][company-plsense]] - Format code with =perltidy= - Jump to symbol definition - Interactive debug via [[https://github.com/realgud/realgud][realgud]] with [[http://search.cpan.org/~rocky/Devel-Trepan-0.73/lib/Devel/Trepan.pm][trepan.pl]] **** Python [[file:+lang/python/README.org][+lang/python/README.org]] This layer adds support for the Python language. Features: - Support for the following backends: - [[https://github.com/proofit404/anaconda-mode][anaconda]] (default), - [[https://github.com/emacs-lsp/lsp-python][Language Server Protocol]] (experimental), - Auto-completion - Code Navigation - Documentation Lookup using [[https://github.com/proofit404/anaconda-mode][anaconda-mode]] and [[https://github.com/tsgates/pylookup][pylookup]] - Test Runners using [[https://github.com/syl20bnr/nose.el][nose.el]] or [[https://github.com/ionrock/pytest-el][pytest]] - Virtual Environment using [[https://github.com/jorgenschaefer/pyvenv][pyvenv]] and [[https://github.com/yyuu/pyenv][pyenv]] - semantic mode is enabled - PEP8 compliant formatting via [[https://github.com/google/yapf][YAPF]] or [[https://github.com/ambv/black][black]] - PEP8 checks with [[https://pypi.python.org/pypi/flake8][flake8]] or [[https://pypi.python.org/pypi/pylint/1.6.4][pylint]] - Suppression of unused import with [[https://github.com/myint/autoflake][autoflake]] - Use the ~%~ key to jump between blocks with [[https://github.com/redguardtoo/evil-matchit][evil-matchit]] - Sort imports with [[https://pypi.python.org/pypi/isort][isort]] - Fix a missing import statement with [[https://github.com/anachronic/importmagic.el][importmagic]] - Pip package manager with [[https://github.com/brotzeit/pippel][pippel]] **** Racket [[file:+lang/racket/README.org][+lang/racket/README.org]] Adds support for the [[http://racket-lang.org/][Racket]] programming language. Features: - Syntax highlighting with =racket-mode= - Test runner - Interactive REPL - Code navigation with =gtags= - Structuraly safe editing using optional [[https://github.com/luxbock/evil-cleverparens][evil-cleverparens]] **** Ruby [[file:+lang/ruby/README.org][+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 [[file:+lang/rust/README.org][+lang/rust/README.org]] This layer supports [[https://www.rust-lang.org][Rust]] development in Spacemacs. Features: - Auto-completion and navigation support through [[https://github.com/emacs-lsp/lsp-rust][lsp]] or [[https://github.com/phildawes/racer][Racer]] - support for the Rust package manager [[http://doc.crates.io/index.html][Cargo]] **** Sml [[file:+lang/sml/README.org][+lang/sml/README.org]] Adds support for the [[http://www.smlnj.org][SML]] programming language to Spacemacs. Features: - Syntax highlighting - Integration of the =SML Repl= into emacs - Basic completion of SML forms via =sml-electric-space= **** Scala [[file:+lang/scala/README.org][+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 [[https://ensime.github.io/][ENSIME]] IDE server **** Swift [[file:+lang/swift/README.org][+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 [[https://github.com/swift-emacs/swift-mode][swift-mode]] - Indentation - Code navigation using =imenu= (built-in) - Automatic syntax checking with =flycheck= (available with the =syntax-checking= layer) **** Crystal [[file:+lang/crystal/README.org][+lang/crystal/README.org]] This layer provides support for the Crystal language. Features: - =crystal tool format= on file save - integration [[https://play.crystal-lang.org][play.crystal-lang.org]] using [[https://github.com/veelenga/play-crystal.el][play-crystal.el]] - Linting with flycheck - test runner (=crystal spec=) - =crystal tool= integration - Interactive REPL ([[https://github.com/brantou/inf-crystal.el][inf-crystal.el]] and [[https://github.com/crystal-community/icr][icr]]) - static code analysis using [[https://github.com/veelenga/ameba.el][ameba]] **** Dart [[file:+lang/dart/README.org][+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 **** Julia [[file:+lang/julia/README.org][+lang/julia/README.org]] This layer adds support for [[https://julialang.org][Julia]] to Spacemacs. Features: - Syntax highlighting - Repl support - Linting - Completion - Jump-to-definition - Documentation on hover **** Kotlin [[file:+lang/kotlin/README.org][+lang/kotlin/README.org]] This layer adds support for [[http://kotlinlang.org/][Kotlin]] in Spacemacs Features: - Linting with [[https://github.com/shyiko/ktlint][ktlint]] and [[https://github.com/whirm/flycheck-kotlin][flycheck-kotlin]] - navigation with =ggtags= **** Perl6 [[file:+lang/perl6/README.org][+lang/perl6/README.org]] This layer provides an environment for the [[https://perl6.org/][Perl 6 Programming Language]]. Features: - Jump to definition & Code completion via [[https://github.com/universal-ctags/ctags][ctags-universal]] - Syntax checking via [[https://github.com/hinrik/flycheck-perl6][flycheck-perl6]] and =perl6 -c= - Syntax highlighting & Syntax indentation via [[https://github.com/hinrik/perl6-mode][perl6-mode]] - =META6.json= highlighting via [[https://github.com/joshwnj/json-mode][json-mode]] - Provides Evil text objects for: - double-angle-brackets - corner-brackets - single-quotation-marks - double-quotation-marks **** JavaScript dialects ***** Coffeescript [[file:+lang/coffeescript/README.org][+lang/coffeescript/README.org]] This layer adds support for the CoffeeScript language using [[https://github.com/defunkt/coffee-mode][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 [[file:+lang/javascript/README.org][+lang/javascript/README.org]] This layer adds support for the JavaScript language using [[https://github.com/mooz/js2-mode][js2-mode]]. Features: - Multiple backends support: Tern and LSP - Smart code folding - Refactoring: done using [[https://github.com/magnars/js2-refactor.el][js2-refactor]]. - Auto-completion and documentation - REPL available via [[https://github.com/skeeto/skewer-mode][skewer-mode]] and [[https://github.com/pandeiro/livid-mode][livid-mode]] - Formatting with [[https://github.com/yasuyk/web-beautify][web-beautify]] ***** Purescript [[file:+lang/purescript/README.org][+lang/purescript/README.org]] This layer provides basic Purescript editing support for spacemacs. Features: - Syntax highlighting through [[https://github.com/dysinger/purescript-mode][purescript-mode]] - Automatic insert of imports through [[https://github.com/epost/psc-ide-emacs][psc-ide-emacs]] - REPL through [[https://github.com/ardumont/emacs-psci][psci]] - Syntax checking through flycheck - Autocompletion through company ***** Typescript [[file:+lang/typescript/README.org][+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 linter - Jump to definition, Jump to type definition - Find occurrences (Imenu-mode) - Rename symbol - tsx mode - formatting - TypeScript playground integration *** Purely functional **** Agda [[file:+lang/agda/README.org][+lang/agda/README.org]] This layer adds support for the [[http://wiki.portal.chalmers.se/agda/pmwiki.php][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 [[file:+lang/elm/README.org][+lang/elm/README.org]] This layer adds support for [[http://elm-lang.org][Elm]]. It relies on [[https://github.com/jcollard/elm-mode][elm-mode]] and [[https://github.com/bsermons/flycheck-elm][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 [[file:+lang/haskell/README.org][+lang/haskell/README.org]] This layer adds support for the [[https://www.haskell.org/][Haskell]] language. Features: - syntax highlighting for [[https://github.com/haskell/haskell-mode][haskell source]], [[https://github.com/haskell/haskell-mode][cabal files]], [[https://github.com/bgamari/cmm-mode][C-- source]], - auto-completion with one of the selected backends (=intero=, =dante=, =ghci= or =ghc-mod=). *This layer is under construction, it needs your contributions and bug reports.* **** Idris [[file:+lang/idris/README.org][+lang/idris/README.org]] This layer adds support for the [[https://www.idris-lang.org/][Idris]] language to Spacemacs. Features: - Syntax highlighting - Syntax checking via =flycheck= - Integration of the =Idris= REPL - Integration of the =Idris= build system ** Frameworks *** Django [[file:+frameworks/django/README.org][+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 [[file:+frameworks/react/README.org][+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 [[file:+frameworks/ruby-on-rails/README.org][+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 *** Emberjs [[file:+frameworks/emberjs/README.org][+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 *** Phoenix [[file:+frameworks/phoenix/README.org][+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 ** Utilities *** Ipython notebook [[file:+lang/ipython-notebook/README.org][+lang/ipython-notebook/README.org]] This layer adds support for the package =emacs-ipython-notebook=. Do not hesitate to check the original package README [[https://github.com/millejoh/emacs-ipython-notebook][here]]. Also the wiki has lots of informative stuff. Features: - Key bindings available through transient-state or leader key - Lazy-loading *** Protocol buffers [[file:+lang/protobuf/README.org][+lang/protobuf/README.org]] Highlighting and syntax checking for [[https://developers.google.com/protocol-buffers/][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~). * Readers ** Dash [[file:+readers/dash/README.org][+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 [[https://kapeli.com/dash][dash]] offline api browser for OS X. - Support for [[https://zealdocs.org/][zeal]] offline api browser for Linux. ** Deft [[file:+readers/deft/README.org][+readers/deft/README.org]] This layer adds a search driven note taking system into Spacemacs. Features: - Browsing and creating notes with a powerfull search function via [[http://jblevins.org/projects/deft/][Deft]]. - Integration of =org-mode= as note editor. - Configurable list of extensions to recognize as notes. ** Elfeed [[file:+readers/elfeed/README.org][+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 [[https://github.com/skeeto/elfeed][Elfeed]]. - Support for managing feeds via org files supplied by [[https://github.com/remyhonig/elfeed-org][elfeed-org]]. - Support for displaying feed database content in the browser via [[https://github.com/skeeto/elfeed#web-interface][web interface]]. ** Pdf [[file:+readers/pdf/README.org][+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. ** Speed reading [[file:+readers/speed-reading/README.org][+readers/speed-reading/README.org]] A speed reading mode for Emacs. Features: - Support for =speed-reading= of arbitrary texts ** Epub [[file:+readers/epub/README.org][+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 (