[emacs] Bump to latest spacemacs develop branch

This commit is contained in:
Sebastian Schulze 2020-09-03 08:59:24 +02:00
parent 6da9d76dd0
commit ca75657ddd
Signed by: bascht
GPG Key ID: 5BCB1D3B4D38A35A
190 changed files with 2891 additions and 1719 deletions

View File

@ -174,6 +174,8 @@ the [[file:CHANGELOG.org][CHANGELOG.org]] file.
- Swapped key bindings for better usability (thanks to Tony Lotts):
- ~SPC m s s~ for =haskell-interactive-switch=
- ~SPC m s S~ for =spacemacs/haskell-interactive-bring=
- Removed =intero=, =ghc-mod= (both not maintained any more) and =company-ghci= (not competitive) backends
and made =dante= default backend (thanks to Martin Sosic)
***** imenu-list
- Improvements:
- Added function/binding to focus the imenu sidebar, creating it if none found.
@ -259,7 +261,7 @@ sane way, here is the complete list of changed key bindings
- ~SPC m i t~ org-agenda-set-tags
- ~SPC m i t~ org-set-tags
- ~SPC m p~ org-priority
- ~SPC m s A~ org-archive-subtree
- ~SPC m s A~ org-archive-subtree-default
- ~SPC m s N~ widen
- ~SPC m s S~ org-sort
- ~SPC m s b~ org-tree-to-indirect-buffer
@ -295,6 +297,18 @@ sane way, here is the complete list of changed key bindings
***** Ruby
- Key bindings:
- Changed ~SPC m h d~ to ~SPC m h h~ for =robe-doc= (thanks to Paweł Siudak)
- Changed ~SPC m T {~ to ~SPC m r {~ for =ruby-toggle-block= (thanks to Codruț
Constantin Gușoi)
- Changed ~SPC m T '~ to ~SPC m r '~ for =ruby-toggle-string-quotes= (thanks
to Codruț Constantin Gușoi)
- Added ~SPC m i f~ for =spacemacs/ruby-insert-frozen-string-literal-comment=
(thanks to Codruț Constantin Gușoi)
- Added ~SPC m i s~ for =spacemacs/ruby-insert-shebang= (thanks to Codruț
Constantin Gușoi)
- Added ~SPC m r }~ for =ruby-toggle-block= (thanks to Codruț Constantin
Gușoi)
- Added ~SPC m r "~ for =ruby-toggle-string-quotes= (thanks to Codruț
Constantin Gușoi)
***** Ruby on Rails
- Key bindings:
- New ~SPC m r f S~ to find serializer (thanks to Boris Buliga)
@ -313,6 +327,11 @@ sane way, here is the complete list of changed key bindings
***** Vagrant
- Key bindings:
- Vagrant key bindings prefix is now ~SPC a V~.
- Actually use ~SPC a t v t~ for =vagrant-tramp-term=
***** Version Control
- Key bindings:
- Changed ~SPC g h o~ to ~SPC g o~ for =browse-at-remote= (thanks to Codruț
Constantin Gușoi)
***** YAML
- Added LSP support (thanks to Seong Yong-ju)
***** ycmd
@ -380,6 +399,7 @@ sane way, here is the complete list of changed key bindings
**** Music
- pianobar (thanks to Leo Littlebook)
- tidalcycles (thanks to rbino)
- outshine (thanks to Langston Barrett)
**** Readers
- epub (thanks to Jeremy Dormitzer and André Peric Tavares)
**** Spacemacs
@ -435,7 +455,7 @@ sane way, here is the complete list of changed key bindings
- New variable =dotspacemacs-gc-cons= (thanks to Sylvain Benner)
- New variable =dotspacemacs-initial-scratch-message= for the initial message
in the scratch buffer (thanks to Carl Lange)
- New variable =dotspacemacs-mode-line-themes= adds support for mode-line
- New variable =dotspacemacs-mode-line-theme= adds support for mode-line
themes. Supported themes are =spacemacs=, =all-the-icons=, =vim-powerline=,
=custom=, and =vanilla=. The first three are spaceline themes, =custom= is
user defined, and =vanilla= is the default Emacs mode-line.
@ -496,6 +516,8 @@ Other:
terminal mode, but no longer in GUI mode. (emacs18)
*** Core changes
- Improvements:
- Bind ~SPC c n~ to ~:cn~ / ~next-error~ and ~SPC c N~ to ~:cN~ / ~previous-error~
(thanks to Keith Pinson)
- Display time spent in =user-config= in home buffer (thanks to Sylvain Benner)
- Added dotfile function =dotspacemacs/user-load= (thanks to Sylvain Benner)
- Added dotfile function =dotspacemacs/user-env= (thanks to Sylvain Benner)
@ -664,6 +686,8 @@ Other:
- Avoid unnecessary packages installation of tern layer
- Fixed terminal mode line indicator overlapping (thanks to duianto)
- Fixed broken --timed-requires and --adv-timers under Emacs 27 and above (thanks to Ying Qu)
- Removed nils from =dotspacemacs-configuration-layers= when running tests
(thanks to Ag Ibragimov)
- Other:
- New function =configuration-layer/message= to display message in
=*Messages*= buffer (thanks to Sylvain Benner)
@ -728,6 +752,7 @@ Other:
- Added =symbol-overlay= to the =spacemacs-navigation= layer
(thanks to kenkangxgwe)
- Key bindings:
- Fixed ~M-x~ prefix visualization for ~dotspacemacs-emacs-command-key~
- New ~SPC a Q~ prefix for dispatching quickurl
(thanks to Spenser "equwal" Truex:)
- ~SPC a Q l~ List quickurls
@ -964,6 +989,14 @@ Other:
- ~SPC x i c~ change symbol style to =lowerCamelCase=
- ~SPC x i C~ change symbol style to =UpperCamelCase=
(thanks to Ric da Silva)
- Improved UX on link opening key bindings:
- Added ~SPC x A~ for =link-hint-open-all-links=
- Added ~SPC x m~ for =link-hint-open-multiple-links=
- Added ~SPC x Y~ for =link-hint-copy-link=
- Changed ~SPC x o~ to =link-hint-open-link-at-point=
- Changed ~SPC x O~ to =link-hint-open-link=
- Changed ~SPC x y~ to =link-hint-copy-link-at-point=
(thanks to Codruț Constantin Gușoi)
- New transpose sentences and transpose paragraphs keybindings
(thanks to Daniel Gomez):
- ~SPC x t p~ for =transpose-paragraphs=
@ -1169,6 +1202,9 @@ Other:
- Refactor +layers/+tools packages to use prefix ~at~
migrating most key bindings to lower cases and
expanding room for further aliases (thanks to John Stevenson)
- Refactor layers/+chat|email|fun|readers|web-services packages to use
relative key binding, migrating most key bindings to lower cases and
expanding room for further aliases (thanks to John Stevenson)
- Fixed:
- Fixed ~h~ key binding in compilation and grep buffers
(thanks to Sylvain Benner)
@ -1585,6 +1621,11 @@ Other:
(thanks to John Stevenson)
- Changed evaluation keybinding - cider-clojure-interaction-mode
~SPC m e p l~ 'cider-eval-print-last-sexp
- Add refactor namespace key bindings
~ran~ 'clojure-insert-ns-form
~raN~ 'clojure-insert-ns-form-at-point
~rsn~ 'clojure-sort-ns
(thanks to John Stevenson)
- Fixes:
- Removed =cider.nrepl/cider-middleware= in lein quick start setting
- Fixed =cider-inspector-prev-page= binding, also add ~p~ as another key
@ -1954,6 +1995,8 @@ Other:
by upstream changes (thanks to Miciah Dashiel Butler Masters)
- Unfolded org headings to a target line when a .org file is opened from a
Magit diff or blame buffer (thanks to duianto and Miciah Masters)
- Allowed multichar major mode leader key for exiting magit commit edits
(thanks to tuh8888)
**** Gnus
- Key bindings:
- Added ~g r~ for =gnus-group-get-new-news= (thanks to Matthew Leach)
@ -2030,6 +2073,7 @@ Other:
environment variables (thanks to Joshua Santos)
- Fixed =go-run-test-current-function= for vanilla tests and gocheck suite
tests (thanks to Mathieu Post)
- Fixed search for current test function to run (thanks to joelpet)
- Disabled =go-eldoc-setup= for LSP backend (thanks to Seong Yong-ju)
**** Graphviz
- Use graphviz package from melpa (thanks to Matthew Boston)
@ -2102,6 +2146,7 @@ Other:
- Added guard to check if =winum= is loaded (thanks to Dan Girshovich)
- Updated =helm-xref= to set the correct =xref-show-xrefs-function= for
Emacs 27 (thanks to Junxuan)
- Hide =helm-ff-cache-mode= mode-line indicator (thanks to duianto)
- Key bindings:
- Added Key bindings for directory search:
- ~SPC s d for =spacemacs/helm-dir-smart-do-search=
@ -2310,7 +2355,7 @@ Other:
- Added support for multiple backends. Supported backends are: =meghanada=,
=eclim=. The default backend is =meghanada=. (thanks to Ivan Yonchovski)
- Added =ENSIME= jump handlers (thanks to Joao Azevedo)
- Improved =maven= and =gradle= support (thanks to Sylvain Benner)
- Improved =maven= (thanks to Sylvain Benner)
- Made =java= layer depend on =groovy= layer (thanks to Sylvain Benner)
- Added =org-babel= support (thanks to Michael Rohleder)
- Remove broken =ENSIME= key bindings (thanks to Bjarke Vad Andersen)
@ -2322,6 +2367,7 @@ Other:
- Added /** */ smartparens pair (thanks to Ivan Yonchovski)
- Added the prefix name "actionable" to ~SPC m a~ (thanks to duianto)
- Fixes:
- Removed =gradle-mode= which is unsupported and was breaking other major modes
- Replace usage of =ensime-print-type-at-point= by =ensime-type-at-point=
(thanks to Joao Azevedo)
- Added defalias for =ensime-type-at-point= for compatibility
@ -2329,7 +2375,7 @@ Other:
- Fixed syntax typo in configuration (thanks to EMayej)
- Fixed yanking types (thanks to Bjarke Vad Andersen)
- Fixed gtags related initialization (thanks to Guido Kraemer)
- Fixed prefixes for =java-mode= and =gradle-mode= (thanks to Seong Yong-ju)
- Fixed prefixes for =java-mode= (thanks to Seong Yong-ju)
- Enabled =lsp-java= when the =java-backend= is =nil= and the =lsp= layer is
enabled (thanks to Ivan Yonchovski)
- Fixed =dap-java= shortcuts (thanks to Ivan Yonchovski)
@ -2426,6 +2472,8 @@ Other:
**** Lua
- Added support for auto-completion with =company= (thanks to halfcrazy)
- Added support for =LSP= (EmmyLua-LS-all) (thanks to Lin.Sun)
- Added =EmmyLua-LS-all.jar= to =.gitignore= (thanks to duianto)
- Removed require lsp-clients (thanks to duianto)
**** Language Server Protocol (LSP)
- Added core keybindings and prefix declarations for all LSP-based language
layers, and helper functions to bind server-specific extensions
@ -2455,6 +2503,7 @@ Other:
upstream (thanks to duianto)
- Removed =company-lsp=. Now =lsp-mode= is responsible for configuring
=company-backends= and it will use =company-capf=.
- Fixed upstream removal of =lsp-clients= (thanks to Colin Woodbury)
**** Debug Adapter Protocol (DAP)
- Layer variables:
- Added variable =dap-enable-mouse-support=
@ -2771,6 +2820,7 @@ Other:
(thanks to Tianshu Wang)
- Enabled =org-habit= module
(thanks to Mariusz Klochowicz)
- Fixed evil paste in a =org-src-mode= table (thanks to duianto)
**** Osx
- Key bindings:
- Added key bindings to use ~command-1..9~ for selecting window
@ -2930,6 +2980,7 @@ Other:
(thanks sunlin7)
- Fixed directory selection for self compiled mspyls (thanks Jee Lee)
- Add python-test-last support for pytest runner
- Added --last-failed support for pytest (thanks to Jaakko Luttinen)
**** Racket
- Restore smart closing paren behavior in racket-mode (thanks to Don March)
- Updated racket logo (thanks to Vityou)
@ -3085,6 +3136,7 @@ Other:
(thanks to Grant Shangreaux)
- Added/Updated instructions on external dependencies, =cargo-edit=,
=cargo-audit=, =rustfmt=, and =clippy= (thanks to Lucius Hu)
- Added support for Rusty Object Notation (RON) (thanks to Daniel Hutzley)
**** Sailfish-Developer
- Key bindings:
- Added =sailfish-scratchbox= key bindings (thanks to Victor Polevoy):
@ -3182,6 +3234,7 @@ Other:
- variable: =layouts-enable-local-variables=
- function: =spacemacs/make-variable-layout-local=
(thanks to JAremko and duianto)
- Better keybindings for ~ESC~ and ~RET~ in vterm =evil-normal-state= (thanks to kenkangxgwe)
**** Shell Scripts
- Added new company-shell environment variable backend
(thanks to Alexander-Miller)
@ -3200,6 +3253,8 @@ Other:
- ~SPC m )~ to add reaction (thanks to Swaroop C H)
- ~SPC m (~ to remove reaction (thanks to Swaroop C H)
- ~SPC m t~ to open message thread (thanks to Swaroop C H)
- ~SPC m T~ to open all threads in workspace (thanks to wang-d)
- ~SPC m u~ to open all unreads in workspace (thanks to wang-d)
- New layer variable =slack-spacemacs-layout-name= to customize the name of
the custom layer for Slack buffers (thanks to Benjamin Reynolds)
- New layer variable =slack-spacemacs-layout-binding= to customize the key used
@ -3264,6 +3319,9 @@ Other:
- Added key bindings (thanks to John Stevenson):
- ~SPC S s~ Correct word at point
- Transient State: ~SPC S . s~ Correct word at point
- Added key binding:
- ~SPC S r~ flyspell-region
- Transient State: ~SPC S . r~ flyspell-region
**** Syntax-checking
- Key bindings:
- ~SPC e e~ is now for triggering a syntax check, the old action
@ -3274,6 +3332,9 @@ Other:
- Use correct error list faces when defining error levels with custom bitmaps
(thanks to Alexander Miller)
- Fixed =goto-flycheck-error-list= (thanks to Thanh Vuong)
- Added lsp support for sqls
- Added layer variable =sql-lsp-sqls-workspace-config-path= to setting workspace configuration
- Added layer variable =syntax-checking-auto-hide-tooltips= (thanks to Martin Sosic)
**** Swift
- Update Swift REPL key bindings (thanks to Elliot Bulmer)
**** Systemd
@ -3289,7 +3350,7 @@ Other:
(thanks to Seong Yong-ju)
**** Themes
- Added support for more doom themes (thanks to Dela Anthonio, Igor Kupczyński,
and DonHugo69)
DonHugo69 and Alex)
- Added support for gruvbox theme variants (thanks to Dean Todevski)
- Remove zonokai-theme theme as it is unavailable (thanks to nickclasener)
- Updates to the spacemacs theme (thanks to Nasser Alshammari)
@ -3298,6 +3359,7 @@ Other:
- Added support for eziam themes (thanks to Benno Fünfstück)
- Enabled italics in spacemacs theme (thanks to Sylvain Benner)
- Added support for =doom-dark+= theme (thanks to Ivan Yonchovski)
- Added support for =almost-mono-themes= (thanks to Kirill Chernyshov)
**** Visual
- use the same window for =dap= log window and for compilation buffer.
***** Colors
@ -3389,6 +3451,7 @@ Other:
linter, when =lsp= is set as the backend (thanks to Thanh Vuong)
- Fix =tide= with =tsx= files (thanks to Aaron Jensen)
- Added =eslint_d= support (thanks to Seong Yong-ju)
- Added =tslint= support for =lsp= backend (thanks to Tommi Komulainen)
**** Vagrant
- Key bindings:
- move key bindings prefix to ~SPC a V~ (thanks to Thomas de Beauchêne)
@ -3494,20 +3557,21 @@ Other:
Stone, Kainalu Hagiwara, Kalle Lindqvist, Kechao Cai, Keith Simmons, Keith
Wygant, Kenji Miyazaki ,Kevin Ji, Kristoffer Haugsbakk, lawrsp, Leo Joseph
Buchignani III, liuchong, Lucius Hu, Luke Winship, Luke Worth, Marco Ieni,
Marco Zucconelli, Max Beutelspacher, Max Deineko, Max Nordlund, Maximilian
Wolff, Miciah Dashiel Butler Masters, mjkramer, Mikhail Yakutovich, Miloš
Mošić, milserk, Muneeb Shaikh, Nasser Alshammari, Niko Felger, Nikolai
Marco Zucconelli, Martin Sosic, Max Beutelspacher, Max Deineko, Max Nordlund,
Maximilian Wolff, Miciah Dashiel Butler Masters, mjkramer, Mikhail Yakutovich,
Miloš Mošić, milserk, Muneeb Shaikh, Nasser Alshammari, Niko Felger, Nikolai
Myllymäki, nikolaiam, Nicolas Forgerit, Oguz Serbetci, Olivier Verdier, Pancho
Horrillo, Paul Milla, Paulo Schneider, Pawan Dubey, Paweł Siudak, Phil
Pirozhkov, Philippe Bourdages, Piotr Grzesik, Rafi Khan, Rand01ph, rakyi,
Raymond Wanyoike, Reverend Homer, Robby O'Connor, Rhommel Lamas, Sam Pablo
Kuper, Saulius Menkevičius, sduthil, Serghei Iakovlev, Sergio Ugalde, Shane
Kilkelly, Sid Kapur, Som Poddar, Somelauw, Soobin Rho, sorawee, SteveJobzniak,
Sunghyun Hwang, Swaroop C H, Sylvain Benner, Szunti, Thijs Vermeir, Tianyi
Wang, Tim Stewart, timor, TinySong, Titov Andrey, Thomas de Beauchêne, Tomasz
Cichocinski, Trey Merkley, tzhao11, Vincent Taing, Ullas Holla, Vlad Bokov,
Vladimir Kochnev, weihua-lu, wenpin, Wieland Hoffmann, Witoslaw Koczewski,
Xiang Ji, Yi Liu, Zach Latta, Zane Sterling, zer09, Zhige Xin)
Raymond Wanyoike, Reverend Homer, Robby O'Connor, Robert Roland, Rhommel
Lamas, Sam Pablo Kuper, Saulius Menkevičius, sduthil, Serghei Iakovlev, Sergio
Ugalde, Shane Kilkelly, Sid Kapur, Som Poddar, Somelauw, Soobin Rho, sorawee,
SteveJobzniak, Sunghyun Hwang, Sunlin7, Swaroop C H, Sylvain Benner, Szunti,
Thijs Vermeir, Tianyi Wang, Tim Stewart, timor, TinySong, Titov Andrey, Thomas
de Beauchêne, Tomasz Cichocinski, Trey Merkley, tzhao11, Vincent Taing, Ullas
Holla, Vlad Bokov, Vladimir Kochnev, weihua-lu, wenpin, Wieland Hoffmann,
Witoslaw Koczewski, Xiang Ji, Yi Liu, Zach Latta, Zane Sterling, zer09, Zhige
Xin)
**** Documentation and website
- DOCUMENTATION.org:
- Fixed the example for how to change the separator style

View File

@ -68,6 +68,4 @@ arguments is that we want to process these arguments as soon as possible."
(setq i (1+ i)))
(nreverse new-args)))
(setq command-line-args (spacemacs//parse-command-line command-line-args))
(provide 'core-command-line)

View File

@ -81,7 +81,7 @@ the .lock file at the root of the repository.")
"Remote location of the signature file for the ELPA stable directory")
(defconst configuration-layer--stable-elpa-gpg-keyring
(expand-file-name (concat spacemacs-core-directory "gnupg/spacemacs.pub"))
(expand-file-name (concat spacemacs-core-directory "gnupg/spacemacs.gpg"))
"Absolute path to public GPG key used to signed the ELPA stable repository
tarballs.")
@ -151,10 +151,10 @@ subdirectory of ROOT is used."
:type list
:documentation "List of package symbols declared in this layer.")
(selected-packages :initarg :selected-packages
:initform 'all
:type (satisfies (lambda (x) (or (and (symbolp x) (eq 'all x))
(listp x))))
:documentation "List of selected package symbols.")
:initform 'all
:type (satisfies (lambda (x) (or (and (symbolp x) (eq 'all x))
(listp x))))
:documentation "List of selected package symbols.")
(variables :initarg :variables
:initform nil
:type list
@ -580,8 +580,9 @@ refreshed during the current session."
;; force dump
(configuration-layer//load)
(when (spacemacs/emacs-with-pdumper-set-p)
(configuration-layer/message (concat "--force-dump passed on the command line, "
"forcing a redump."))
(configuration-layer/message
(concat "--force-dump passed on the command line or configuration has "
"been reloaded, forcing a redump."))
(configuration-layer//dump-emacs)))
((spacemacs-is-dumping-p)
;; dumping
@ -620,7 +621,7 @@ To prevent package from being installed or uninstalled set the variable
(configuration-layer//declare-used-packages configuration-layer--used-layers)
;; then load the functions and finally configure the layers
(configuration-layer//load-layers-files configuration-layer--used-layers
'("funcs.el"))
'("funcs.el"))
(configuration-layer//configure-layers configuration-layer--used-layers)
;; load layers lazy settings
(configuration-layer/load-auto-layer-file)
@ -660,7 +661,7 @@ To prevent package from being installed or uninstalled set the variable
;; packages configuration above
(configuration-layer//set-layers-variables configuration-layer--used-layers)
(configuration-layer//load-layers-files configuration-layer--used-layers
'("keybindings.el"))
'("keybindings.el"))
(when (spacemacs-is-dumping-p)
;; dump stuff in layers
(dolist (layer-name configuration-layer--used-layers)
@ -685,8 +686,8 @@ layer directory."
(interactive)
(let* ((current-layer-paths (mapcar (lambda (dir) (expand-file-name dir))
(cl-pushnew
configuration-layer-private-layer-directory
dotspacemacs-configuration-layer-path)))
configuration-layer-private-layer-directory
dotspacemacs-configuration-layer-path)))
(other-choice "Another directory...")
(helm-lp-source
`((name . "Configuration Layer Paths")
@ -702,12 +703,12 @@ layer directory."
(layer-path (cond
((string-equal layer-path-sel other-choice)
(read-directory-name (concat "Other configuration "
"layer path: ") "~/" ))
"layer path: ") "~/"))
((member layer-path-sel current-layer-paths)
layer-path-sel)
(t
(error "Please select an option from the list"))))
(name (read-from-minibuffer "Configuration layer name: " ))
(name (read-from-minibuffer "Configuration layer name: "))
(layer-dir (concat layer-path "/" name)))
(cond
((string-equal "" name)
@ -940,7 +941,7 @@ a new object."
(purecopy (concat "mouse-2, RET: show a description of this package.")))
(defun configuration-layer/describe-package (pkg-symbol
&optional layer-list pkg-list)
&optional layer-list pkg-list)
"Describe a package in the context of the configuration layer system."
(interactive
(list (intern
@ -1187,16 +1188,17 @@ Return nil if package object is not found."
"Return a sorted list of PACKAGES objects."
(sort packages (lambda (x y) (string< (symbol-name x) (symbol-name y)))))
(defun configuration-layer/make-all-packages (&optional skip-layer-discovery)
(defun configuration-layer/make-all-packages (&optional skip-layer-discovery skip-layer-deps)
"Create objects for _all_ packages supported by Spacemacs.
If SKIP-LAYER-DISCOVERY is non-nil then do not check for new layers."
If SKIP-LAYER-DISCOVERY is non-nil then do not check for new layers.
If SKIP-LAYER-DEPS is non-nil then skip declaration of layer dependencies."
(let ((all-layers (configuration-layer/get-layers-list))
(configuration-layer--load-packages-files t)
(configuration-layer--package-properties-read-onlyp t)
(configuration-layer--inhibit-warnings t))
(unless skip-layer-discovery
(configuration-layer/discover-layers))
(configuration-layer/declare-layers all-layers)
(configuration-layer/declare-layers all-layers skip-layer-deps)
(configuration-layer/make-packages-from-layers all-layers)))
(defun configuration-layer/make-packages-from-layers
@ -1271,8 +1273,8 @@ USEDP if non-nil indicates that made packages are used packages."
'auto-mode-alist
`(,ext . (lambda ()
(configuration-layer//auto-mode
',layer-name ',mode))))
))
',layer-name ',mode))))))
;; configure `interpreter-mode-alist'
(when interpreter
(let ((regex (car interpreter))
@ -1280,7 +1282,7 @@ USEDP if non-nil indicates that made packages are used packages."
(add-to-list
'interpreter-mode-alist
`(,regex . (lambda () (configuration-layer//auto-mode
',layer-name ',mode)))))))))
',layer-name ',mode)))))))))
(defun configuration-layer//auto-mode (layer-name mode)
"Auto mode support of lazily installed layers."
@ -1461,14 +1463,16 @@ discovery."
;; layer not found, add it to search path
(setq search-paths (cons sub search-paths)))))))))))
(defun configuration-layer/declare-layers (layers-specs)
(defun configuration-layer/declare-layers (layers-specs &optional skip-layer-deps)
"Declare layers with LAYERS-SPECS."
(mapc 'configuration-layer/declare-layer layers-specs))
(dolist (specs layers-specs)
(configuration-layer/declare-layer specs skip-layer-deps)))
(defun configuration-layer/declare-layer (layer-specs)
(defun configuration-layer/declare-layer (layer-specs &optional skip-layer-deps)
"Declare a single layer with spec LAYER-SPECS.
Set the variable `configuration-layer--declared-layers-usedp' to control
whether the declared layer is an used one or not."
whether the declared layer is an used one or not.
If `SKIP-LAYER-DEPS' is non nil then skip loading of layer dependenciesl"
(let* ((layer-name (if (listp layer-specs) (car layer-specs) layer-specs))
(layer (configuration-layer/get-layer layer-name))
(usedp configuration-layer--declared-layers-usedp))
@ -1479,7 +1483,8 @@ whether the declared layer is an used one or not."
usedp)))
(configuration-layer//add-layer obj usedp)
(configuration-layer//set-layer-variables obj)
(when (and (not (oref layer :deps-loaded))
(when (and (not skip-layer-deps)
(not (oref layer :deps-loaded))
(or usedp configuration-layer--load-packages-files))
(oset layer :deps-loaded t)
(configuration-layer//load-layer-files layer-name '("layers.el"))))
@ -1601,7 +1606,7 @@ RNAME is the name symbol of another existing layer."
(or (eq 'dotfile layer-name)
(let ((obj (configuration-layer/get-layer layer-name)))
(when obj (and (not (cfgl-layer-get-shadowing-layers obj))
(memq layer-name configuration-layer--used-layers))))))
(memq layer-name configuration-layer--used-layers))))))
(defalias 'configuration-layer/layer-usedp
'configuration-layer/layer-used-p)
@ -1708,7 +1713,7 @@ RNAME is the name symbol of another existing layer."
(configuration-layer//install-from-recipe pkg)
(cfgl-package-set-property pkg :lazy-install nil))
(t (configuration-layer//warning "Cannot install package %S."
pkg-name)))
pkg-name)))
('error
(configuration-layer//error
(concat "\nAn error occurred while installing %s "
@ -2352,15 +2357,27 @@ depends on it."
(unless (string-empty-p version-string)
(version-to-list version-string))))
(defun configuration-layer//system-package-p (pkg-desc)
"Take `PKG-DESC' and return true if it is a system package."
(not (string-prefix-p
(file-name-as-directory
(expand-file-name package-user-dir))
(expand-file-name
(package-desc-dir pkg-desc)))))
(defun configuration-layer//package-delete (pkg-name)
"Delete package with name PKG-NAME."
(cond
((version<= "25.0.50" emacs-version)
(let ((p (cadr (assq pkg-name package-alist))))
;; add force flag to ignore dependency checks in Emacs25
(when p (package-delete p t t))))
(if (not (configuration-layer//system-package-p p))
(package-delete p t t)
(message "Would have removed package %s but this is a system package so it has not been changed." pkg-name))))
(t (let ((p (cadr (assq pkg-name package-alist))))
(when p (package-delete p))))))
(if (not (configuration-layer//system-package-p p))
(package-delete p)
(message "Would have removed package %s but this is a system package so it has not been changed." pkg-name))))))
(defun configuration-layer/delete-orphan-packages (packages)
"Delete PACKAGES if they are orphan."
@ -2409,9 +2426,9 @@ depends on it."
(eq auto-mode mode))
(push (car x) gather-extensions))))
(when gather-extensions
(concat "\\("
(string-join gather-extensions "\\|")
"\\)"))))
(concat "\\("
(string-join gather-extensions "\\|")
"\\)"))))
(defun configuration-layer//lazy-install-extensions-for-layer (layer-name)
"Return an alist of owned modes and extensions for the passed layer."
@ -2471,7 +2488,7 @@ depends on it."
(cadr (assq 'built-in stats))))
(spacemacs-buffer//center-line)
(spacemacs-buffer/append (format "\n(%.3fs spent in your user-config)"
dotspacemacs--user-config-elapsed-time))
dotspacemacs--user-config-elapsed-time))
(spacemacs-buffer//center-line)
(insert "\n")))))
@ -2502,9 +2519,9 @@ depends on it."
,(package-desc-extras obj)])))
(defun configuration-layer//patch-package-descriptor (desc)
"Return a patched DESC.
The URL of the descriptor is patched to be the passed URL"
)
"Return a patched DESC.))))))
The URL of the descriptor is patched to be the passed URL")
(defun configuration-layer//download-elpa-file
(pkg-name filename archive-url output-dir

View File

@ -435,13 +435,25 @@ visiting README.org files of Spacemacs.")
If non nil activate `clean-aindent-mode' which tries to correct
virtual indentation of simple modes. This can interfer with mode specific
indent handling like has been reported for `go-mode'.
If it does deactivate it here.
(default t)")
If it does deactivate it here. (default t)")
(defvar dotspacemacs-swap-number-row nil
"Shift number row for easier access.
If non-nil shift your number row to match the entered keyboard layout
(only in insert mode). Currently the keyboard layouts
(qwerty-us qwertz-de) are supported.
New layouts can be added in `spacemacs-editing' layer.
(default nil)")
(defvar dotspacemacs-home-shorten-agenda-source nil
"If nil the home buffer shows the full path of agenda items
and todos. If non nil only the file name is shown.")
(defvar dotspacemacs--pretty-ignore-subdirs
'(".cache/junk")
"Subdirectories of `spacemacs-start-directory' to ignore when
prettifying Org files.")
prettifying Org files.")
(defun dotspacemacs//prettify-spacemacs-docs ()
"Run `spacemacs/prettify-org-buffer' if `buffer-file-name'
@ -505,7 +517,7 @@ changed, and issue a warning if it did."
"Read editing style CONFIG: apply variables and return the editing style.
CONFIG can be the symbol of an editing style or a list where the car is
the symbol of an editing style and the cdr is a list of keyword arguments like
`:variables'."
`:variables'."
(cond
((symbolp config) config)
((listp config)
@ -828,7 +840,7 @@ error recovery."
"exists in filesystem" "path")
(setq dotspacemacs-configuration-layers
(mapcar (lambda (l) (if (listp l) (car l) l))
dotspacemacs-configuration-layers))
(remove nil dotspacemacs-configuration-layers)))
(spacemacs//test-list 'configuration-layer/get-layer-path
'dotspacemacs-configuration-layers
"can be found" "layer")

View File

@ -136,8 +136,8 @@ the end of the loading of the dump file."
(list dotspacemacs-emacs-pdumper-executable-file
"--batch"
"-l" (concat spacemacs-start-directory "dump-init.el")
"-eval" (concat "(dump-emacs-portable \"" dump-file-temp "\")"))))
(pop-to-buffer spacemacs-dump-buffer-name)))
"-eval" (concat "(dump-emacs-portable \"" dump-file-temp "\")")
)))))
(defun spacemacs/dump-eval-delayed-functions ()
"Evaluate delayed functions."

View File

@ -63,7 +63,7 @@ current contents of the file will be overwritten."
"# regexps in `spacemacs-ignored-environment-variables'. If you add any\n"
"# duplicate settings for a variable, only the first setting is effective.\n"
"# PATH is a special case: all PATH settings are read, each non-duplicate\n"
"# directory entry is appended to the `exec-path' variable, and then PATH is\n"
"# directory entry is prepended to the `exec-path' variable, and then PATH is\n"
"# set to the final value of `exec-path'.\n"
"#\n"
"# You can safely edit this file to change values or add or remove entries.\n"

View File

@ -322,8 +322,8 @@ MIN-WIDTH is the minimal width of the frame, frame included. The frame will not
min-width (or min-width 1)
max-width (if (< max-width min-width) min-width max-width)
max-width (if (> max-width spacemacs-buffer--window-width)
spacemacs-buffer--window-width
max-width))
spacemacs-buffer--window-width
max-width))
(when (< width min-width)
(setq width min-width
fill-column (max 0 (- min-width 2 (* hpadding 2)))))
@ -391,7 +391,7 @@ ADDITIONAL-WIDGETS: a function for inserting a widget under the frame."
(beginning-of-line)
(insert (make-string padding ?\s))
(forward-line))))
(save-excursion
(save-excursion
(while (re-search-backward "\\[\\[\\(.*\\)\\]\\]" nil t)
(make-text-button (match-beginning 1)
(match-end 1)
@ -766,11 +766,11 @@ TYPES: list of `org-mode' types to fetch."
(let ((date (calendar-gregorian-from-absolute (org-today))))
(apply #'append
(cl-loop for file in (org-agenda-files nil 'ifmode)
collect
(spacemacs-buffer//make-org-items
file
(apply 'org-agenda-get-day-entries file date
types))))))
collect
(spacemacs-buffer//make-org-items
file
(apply 'org-agenda-get-day-entries file date
types))))))
(defun spacemacs-buffer//agenda-list ()
"Return today's agenda."
@ -851,8 +851,10 @@ LIST: list of `org-agenda' entries in the todo list."
:button-suffix ""
:format "%[%t%]"
(format "%s %s %s"
(abbreviate-file-name
(cdr (assoc "file" el)))
(let ((filename (cdr (assoc "file" el))))
(if dotspacemacs-home-shorten-agenda-source
(file-name-nondirectory filename)
(abbreviate-file-name filename)))
(if (not (eq "" (cdr (assoc "time" el))))
(format "- %s -"
(cdr (assoc "time" el)))
@ -1032,7 +1034,7 @@ If a prefix argument is given, switch to it in an other, possibly new window."
(erase-buffer)))
(spacemacs-buffer/set-mode-line "")
(if dotspacemacs-startup-buffer-show-version
(spacemacs-buffer//insert-version)
(spacemacs-buffer//insert-version)
(let ((inhibit-read-only t))
(insert "\n")))
(spacemacs-buffer/insert-banner-and-buttons)
@ -1072,13 +1074,13 @@ If a prefix argument is given, switch to it in an other, possibly new window."
treemacs-bookmark
treemacs-find-file
treemacs-select-window))
(let ((home-buffer (get-buffer-window spacemacs-buffer-name))
(frame-win (frame-selected-window)))
(when (and dotspacemacs-startup-buffer-responsive
home-buffer
(not (window-minibuffer-p frame-win)))
(with-selected-window home-buffer
(spacemacs-buffer/goto-buffer))))))
(let ((home-buffer (get-buffer-window spacemacs-buffer-name))
(frame-win (frame-selected-window)))
(when (and dotspacemacs-startup-buffer-responsive
home-buffer
(not (window-minibuffer-p frame-win)))
(with-selected-window home-buffer
(spacemacs-buffer/goto-buffer))))))
(defun spacemacs-buffer/refresh ()
"Force recreation of the spacemacs buffer."

View File

@ -52,6 +52,7 @@ the final step of executing code in `emacs-startup-hook'.")
(defun spacemacs/init ()
"Perform startup initialization."
(setq command-line-args (spacemacs//parse-command-line command-line-args))
(when spacemacs-debugp (spacemacs/init-debug))
;; silence ad-handle-definition about advised functions getting redefined
(setq ad-redefinition-action 'accept)

View File

@ -29,39 +29,43 @@
(defconst spacemacs-theme-name-to-package
'(
(alect-black-alt . alect-themes)
(alect-black . alect-themes)
(alect-dark-alt . alect-themes)
(alect-black-alt . alect-themes)
(alect-dark . alect-themes)
(alect-light-alt . alect-themes)
(alect-dark-alt . alect-themes)
(alect-light . alect-themes)
(ample-light . ample-theme)
(alect-light-alt . alect-themes)
(almost-mono-black . almost-mono-themes)
(almost-mono-cream . almost-mono-themes)
(almost-mono-gray . almost-mono-themes)
(almost-mono-white . almost-mono-themes)
(ample-flat . ample-theme)
(apropospriate-light . apropospriate-theme)
(ample-light . ample-theme)
(apropospriate-dark . apropospriate-theme)
(apropospriate-light . apropospriate-theme)
(base16-3024 . base16-theme)
(base16-apathy . base16-theme)
(base16-ashes . base16-theme)
(base16-atelier-cave-light . base16-theme)
(base16-atelier-cave . base16-theme)
(base16-atelier-dune-light . base16-theme)
(base16-atelier-cave-light . base16-theme)
(base16-atelier-dune . base16-theme)
(base16-atelier-estuary-light . base16-theme)
(base16-atelier-dune-light . base16-theme)
(base16-atelier-estuary . base16-theme)
(base16-atelier-forest-light . base16-theme)
(base16-atelier-estuary-light . base16-theme)
(base16-atelier-forest . base16-theme)
(base16-atelier-heath-light . base16-theme)
(base16-atelier-forest-light . base16-theme)
(base16-atelier-heath . base16-theme)
(base16-atelier-lakeside-light . base16-theme)
(base16-atelier-heath-light . base16-theme)
(base16-atelier-lakeside . base16-theme)
(base16-atelier-plateau-light . base16-theme)
(base16-atelier-lakeside-light . base16-theme)
(base16-atelier-plateau . base16-theme)
(base16-atelier-savanna-light . base16-theme)
(base16-atelier-plateau-light . base16-theme)
(base16-atelier-savanna . base16-theme)
(base16-atelier-seaside-light . base16-theme)
(base16-atelier-savanna-light . base16-theme)
(base16-atelier-seaside . base16-theme)
(base16-atelier-sulphurpool-light . base16-theme)
(base16-atelier-seaside-light . base16-theme)
(base16-atelier-sulphurpool . base16-theme)
(base16-atelier-sulphurpool-light . base16-theme)
(base16-atlas . base16-theme)
(base16-bespin . base16-theme)
(base16-black-metal . base16-theme)
@ -123,10 +127,10 @@
(base16-macintosh . base16-theme)
(base16-marrakesh . base16-theme)
(base16-materia . base16-theme)
(base16-material . base16-theme)
(base16-material-darker . base16-theme)
(base16-material-lighter . base16-theme)
(base16-material-palenight . base16-theme)
(base16-material . base16-theme)
(base16-mellow-purple . base16-theme)
(base16-mexico-light . base16-theme)
(base16-mocha . base16-theme)
@ -135,12 +139,12 @@
(base16-ocean . base16-theme)
(base16-oceanicnext . base16-theme)
(base16-one-light . base16-theme)
(base16-one-light . base16-theme)
(base16-onedark . base16-theme)
(base16-outrun-dark . base16-theme)
(base16-papercolor-dark . base16-theme)
(base16-papercolor-light . base16-theme)
(base16-paraiso . base16-theme)
(base16-one-light . base16-theme)
(base16-paraiso . base16-theme)
(base16-phd . base16-theme)
(base16-pico . base16-theme)
@ -158,8 +162,8 @@
(base16-summerfruit-dark . base16-theme)
(base16-summerfruit-light . base16-theme)
(base16-synth-midnight-dark . base16-theme)
(base16-tomorrow-night . base16-theme)
(base16-tomorrow . base16-theme)
(base16-tomorrow-night . base16-theme)
(base16-tube . base16-theme)
(base16-twilight . base16-theme)
(base16-unikitty-dark . base16-theme)
@ -167,13 +171,9 @@
(base16-woodland . base16-theme)
(base16-xcode-dusk . base16-theme)
(base16-zenburn . base16-theme)
(sanityinc-solarized-dark . color-theme-sanityinc-solarized)
(sanityinc-solarized-light . color-theme-sanityinc-solarized)
(sanityinc-tomorrow-blue . color-theme-sanityinc-tomorrow)
(sanityinc-tomorrow-bright . color-theme-sanityinc-tomorrow)
(sanityinc-tomorrow-day . color-theme-sanityinc-tomorrow)
(sanityinc-tomorrow-eighties . color-theme-sanityinc-tomorrow)
(sanityinc-tomorrow-night . color-theme-sanityinc-tomorrow)
(brin . sublime-themes)
(colorsarenice-dark . colorsarenice-theme)
(colorsarenice-light . colorsarenice-theme)
(doom-Iosvkem . doom-themes)
(doom-acario-dark . doom-themes)
(doom-acario-light . doom-themes)
@ -191,6 +191,7 @@
(doom-material . doom-themes)
(doom-molokai . doom-themes)
(doom-monokai-classic . doom-themes)
(doom-monokai-spectrum . doom-themes)
(doom-monokai-pro . doom-themes)
(doom-moonlight . doom-themes)
(doom-nord . doom-themes)
@ -213,74 +214,79 @@
(doom-tomorrow-night . doom-themes)
(doom-vibrant . doom-themes)
(doom-wilmersdorf . doom-themes)
(solarized-light . solarized-theme)
(solarized-light-high-contrast . solarized-theme)
(solarized-dark . solarized-theme)
(solarized-dark-high-contrast . solarized-theme)
(solarized-gruvbox-dark . solarized-theme)
(solarized-gruvbox-light . solarized-theme)
(solarized-wombat-dark . solarized-theme)
(solarized-zenburn . solarized-theme)
(spacemacs-light . spacemacs-theme)
(spacemacs-dark . spacemacs-theme)
(colorsarenice-dark . colorsarenice-theme)
(colorsarenice-light . colorsarenice-theme)
(hemisu-dark . hemisu-theme)
(hemisu-light . hemisu-theme)
(majapahit-dark . majapahit-theme)
(majapahit-light . majapahit-theme)
(material-light . material-theme)
(minimal-light . minimal-theme)
(modus-operandi . modus-operandi-theme)
(modus-vivendi . modus-vivendi-theme)
(moe-dark . moe-theme)
(moe-light . moe-theme)
(stekene-dark . stekene-theme)
(stekene-light . stekene-theme)
(brin . sublime-themes)
(doom-zenburn . doom-themes)
(dorsey . sublime-themes)
(eziam-dark . eziam-theme)
(eziam-dusk . eziam-theme)
(eziam-light . eziam-theme)
(farmhouse-dark . farmhouse-theme)
(farmhouse-light . farmhouse-theme)
(fogus . sublime-themes)
(graham . sublime-themes)
(granger . sublime-themes)
(gruvbox-dark-hard . gruvbox-theme)
(gruvbox-dark-medium . gruvbox-theme)
(gruvbox-dark-soft . gruvbox-theme)
(gruvbox-light-hard . gruvbox-theme)
(gruvbox-light-medium . gruvbox-theme)
(gruvbox-light-soft . gruvbox-theme)
(hemisu-dark . hemisu-theme)
(hemisu-light . hemisu-theme)
(hickey . sublime-themes)
(junio . sublime-themes)
(mccarthy . sublime-themes)
(odersky . sublime-themes)
(omtose-darker . omtose-phellack-theme)
(omtose-softer . omtose-phellack-theme)
(ritchie . sublime-themes)
(spolsky . sublime-themes)
(wilson . sublime-themes)
(zonokai-blue . zonokai-theme)
(zonokai-red . zonokai-theme)
(tao-yin . tao-theme)
(tao-yang . tao-theme)
(farmhouse-light . farmhouse-theme)
(farmhouse-dark . farmhouse-theme)
(gruvbox-dark-soft . gruvbox-theme)
(gruvbox-dark-medium . gruvbox-theme)
(gruvbox-dark-hard . gruvbox-theme)
(gruvbox-light-soft . gruvbox-theme)
(gruvbox-light-medium . gruvbox-theme)
(gruvbox-light-hard . gruvbox-theme)
(kaolin-dark . kaolin-themes)
(kaolin-light . kaolin-themes)
(kaolin-aurora . kaolin-themes)
(kaolin-breeze . kaolin-themes)
(kaolin-bubblegum . kaolin-themes)
(kaolin-dark . kaolin-themes)
(kaolin-eclipse . kaolin-themes)
(kaolin-galaxy . kaolin-themes)
(kaolin-light . kaolin-themes)
(kaolin-mono-dark . kaolin-themes)
(kaolin-ocean . kaolin-themes)
(kaolin-temple . kaolin-themes)
(kaolin-valley-dark . kaolin-themes)
(kaolin-valley-light . kaolin-themes)
(eziam-light . eziam-theme)
(eziam-dark . eziam-theme)
(eziam-dusk . eziam-theme)
(majapahit-dark . majapahit-theme)
(majapahit-light . majapahit-theme)
(material-light . material-theme)
(mccarthy . sublime-themes)
(minimal-light . minimal-theme)
(modus-operandi . modus-operandi-theme)
(modus-vivendi . modus-vivendi-theme)
(moe-dark . moe-theme)
(moe-light . moe-theme)
(odersky . sublime-themes)
(omtose-darker . omtose-phellack-theme)
(omtose-softer . omtose-phellack-theme)
(poet-dark . poet-theme)
(poet-monochrome . poet-theme)
(poet-dark-monochrome . poet-theme)
(poet-monochrome . poet-theme)
(ritchie . sublime-themes)
(sanityinc-solarized-dark . color-theme-sanityinc-solarized)
(sanityinc-solarized-light . color-theme-sanityinc-solarized)
(sanityinc-tomorrow-blue . color-theme-sanityinc-tomorrow)
(sanityinc-tomorrow-bright . color-theme-sanityinc-tomorrow)
(sanityinc-tomorrow-day . color-theme-sanityinc-tomorrow)
(sanityinc-tomorrow-eighties . color-theme-sanityinc-tomorrow)
(sanityinc-tomorrow-night . color-theme-sanityinc-tomorrow)
(solarized-dark . solarized-theme)
(solarized-dark-high-contrast . solarized-theme)
(solarized-gruvbox-dark . solarized-theme)
(solarized-gruvbox-light . solarized-theme)
(solarized-light . solarized-theme)
(solarized-light-high-contrast . solarized-theme)
(solarized-wombat-dark . solarized-theme)
(solarized-zenburn . solarized-theme)
(spacemacs-dark . spacemacs-theme)
(spacemacs-light . spacemacs-theme)
(spolsky . sublime-themes)
(stekene-dark . stekene-theme)
(stekene-light . stekene-theme)
(tao-yang . tao-theme)
(tao-yin . tao-theme)
(wilson . sublime-themes)
(zonokai-blue . zonokai-theme)
(zonokai-red . zonokai-theme)
)
"alist matching a theme name with its package name, required when
package name does not match theme name + `-theme' suffix.")

View File

@ -74,7 +74,6 @@
(defun load-env-vars-extract-env-vars ()
"Extract environment variable name and value from STRING."
(load-env-vars-re-seq load-env-vars-env-var-regexp))
(defun load-env-vars-set-env (env-vars)
"Set environment variables from key value lists from ENV-VARS."
(setq exec-path (cl-remove-duplicates (mapcar #'directory-file-name exec-path)
@ -87,12 +86,11 @@
(let ((key (car element)) (value (cadr element)))
(if (string-equal "PATH" key)
(let ((paths (split-string value path-separator)))
(dolist (p paths)
(add-to-list 'exec-path (directory-file-name
(subst-char-in-string ?\\ ?/ p))
'append))
(setenv "PATH" (mapconcat convert-to-os-path exec-path
path-separator)))
(setq exec-path (cl-remove-duplicates
(append (mapcar (lambda (path) (directory-file-name (subst-char-in-string ?\\ ?/ path))) paths) exec-path)
:test #'string-equal :from-end t)
)
(setenv "PATH" (mapconcat convert-to-os-path exec-path path-separator)))
(setenv key value))))))
;;;###autoload

View File

@ -53,8 +53,8 @@ This function should only modify configuration layer settings."
;; spell-checking
;; syntax-checking
;; version-control
treemacs
)
treemacs)
;; List of additional packages that will be installed without being
;; wrapped in a layer. If you need some configuration for these
@ -104,7 +104,7 @@ It should only modify the values of Spacemacs settings."
;; To load it when starting Emacs add the parameter `--dump-file'
;; when invoking Emacs 27.1 executable on the command line, for instance:
;; ./emacs --dump-file=$HOME/.emacs.d/.cache/dumps/spacemacs-27.1.pdmp
;; (default spacemacs-27.1.pdmp)
;; (default (format "spacemacs-%s.pdmp" emacs-version))
dotspacemacs-emacs-dumper-dump-file (format "spacemacs-%s.pdmp" emacs-version)
;; If non-nil ELPA repositories are contacted via HTTPS whenever it's
@ -449,6 +449,13 @@ It should only modify the values of Spacemacs settings."
;; (default t)
dotspacemacs-use-clean-aindent-mode t
;; If non-nil shift your number row to match the entered keyboard layout
;; (only in insert state). Currently supported keyboard layouts are:
;; `qwerty-us', `qwertz-de' and `querty-ca-fr'.
;; New layouts can be added in `spacemacs-editing' layer.
;; (default nil)
dotspacemacs-swap-number-row nil
;; Either nil or a number of seconds. If non-nil zone out after the specified
;; number of seconds. (default nil)
dotspacemacs-zone-out-when-idle nil
@ -456,7 +463,11 @@ It should only modify the values of Spacemacs settings."
;; Run `spacemacs/prettify-org-buffer' when
;; visiting README.org files of Spacemacs.
;; (default nil)
dotspacemacs-pretty-docs nil))
dotspacemacs-pretty-docs nil
;; If nil the home buffer shows the full path of agenda items
;; and todos. If non nil only the file name is shown.
dotspacemacs-home-shorten-agenda-source nil))
(defun dotspacemacs/user-env ()
"Environment variables setup.

View File

@ -51,7 +51,7 @@ two keys at the same time. ~SPC 1~ is notation for a key sequence and means
pressing ~Space~ first and pressing ~1~ after it. Key chords are notated by
writing a ~-~ between the keys. Thus ~C-c~ means pressing ~Ctrl~ and the letter
~c~ simultaneously. Key chords and sequences can also be combined: ~C-c a~ means
"First press ~Ctrl~ and ~c~ simultaneously, then press ~a~. ~C-c C-a~ means
"First press ~Ctrl~ and ~c~ simultaneously, then press ~a~". ~C-c C-a~ means
"First press ~Ctrl~ and ~c~ simultaneously, then press ~Ctrl~ and ~a~
simultaneously".

View File

@ -23,6 +23,7 @@
- [[#emacs-lisp][Emacs Lisp]]
- [[#variables][Variables]]
- [[#key-bindings][Key bindings]]
- [[#bind-keys-to-a-macro][Bind keys to a macro]]
- [[#functions][Functions]]
- [[#activating-a-layer][Activating a Layer]]
- [[#creating-a-layer][Creating a Layer]]
@ -253,8 +254,6 @@ built-in =define-key= function is the best way to do that.
(define-key map new-keybinding function) ; Syntax
;; Map H to go to the previous buffer in normal mode
(define-key evil-normal-state-map (kbd "H") 'previous-buffer)
;; Mapping keybinding to another keybinding
(define-key evil-normal-state-map (kbd "H") (kbd "^")) ; H goes to beginning of the line
#+END_SRC
The map is the keymap you want to bind the key in. Most of the time you will use
@ -272,6 +271,31 @@ To map ~<Leader>~ key bindings, use the =spacemacs/set-leader-keys= function.
"ol" 'org-open-at-point)
#+END_SRC
**** Bind keys to a macro
#+BEGIN_SRC emacs-lisp
;; H goes to beginning of the line
(define-key evil-normal-state-map (kbd "H") (kbd "^"))
#+END_SRC
Bind keys to multiple other keys.
For example: To open a newline above, but stay on the current line.
The remapping in Vim:
#+BEGIN_SRC vimrc
nmap <S-Enter> O<Esc>j
#+END_SRC
source: [[https://vim.fandom.com/wiki/Insert_newline_without_entering_insert_mode]]
The equivalent remapping in Spac/Emacs:
#+BEGIN_SRC emacs-lisp
;; S-return adds a newline above
(define-key evil-normal-state-map (kbd "S-<return>") (kbd "O <escape> j"))
#+END_SRC
*** Functions
You may occasionally want to define a function to do a more complex
customization. The syntax is simple:

View File

@ -178,33 +178,33 @@ workflows:
build:
jobs:
- "Validate PR"
- "core Emacs25 (required)":
requires:
- "Validate PR"
- "spacemacs-base dist. Emacs25 (required)":
requires:
- "Validate PR"
- "core Emacs26 (required)":
requires:
- "Validate PR"
- "spacemacs-base dist. Emacs26 (required)":
requires:
- "Validate PR"
- "spacemacs dist. Emacs25 (required)":
requires:
- "Validate PR"
- "core Emacs snapshot (optional)":
requires:
- "Validate PR"
- "spacemacs-base dist. Emacs snapshot (optional)":
requires:
- "Validate PR"
- "spacemacs dist. Emacs snapshot (optional)":
requires:
- "Validate PR"
# - "core Emacs25 (required)":
# requires:
# - "Validate PR"
# - "spacemacs-base dist. Emacs25 (required)":
# requires:
# - "Validate PR"
# - "core Emacs26 (required)":
# requires:
# - "Validate PR"
# - "spacemacs-base dist. Emacs26 (required)":
# requires:
# - "Validate PR"
# - "spacemacs dist. Emacs25 (required)":
# requires:
# - "Validate PR"
# - "core Emacs snapshot (optional)":
# requires:
# - "Validate PR"
# - "spacemacs-base dist. Emacs snapshot (optional)":
# requires:
# - "Validate PR"
# - "spacemacs dist. Emacs snapshot (optional)":
# requires:
# - "Validate PR"
- "Validate Documentation (required)":
requires:
- "Validate PR"
- "CHANGELOG.develop updated (optional)":
requires:
- "Validate PR"
# - "CHANGELOG.develop updated (optional)":
# requires:
# - "Validate PR"

View File

@ -65,5 +65,5 @@ skip_when_branch_update () {
}
cleanup () {
rm -rf ~/.emacs.d/elpa ~/.emacs.d/.cache -f ~/.spacemacs
rm -rf ~/.emacs.d/elpa ~/.emacs.d/.cache ~/.spacemacs
}

View File

@ -2,6 +2,8 @@ Thank you :heart: for contributing to Spacemacs!
Before you submit this pull request, please ensure it is against the `develop` branch and that you have read the [CONTRIBUTING.org](https://github.com/syl20bnr/spacemacs/blob/develop/CONTRIBUTING.org) file. It contains instructions on how to properly follow our conventions on commit messages, documentation, change log entries and other elements.
Don't forget to update CHANGELOG.develop if you want to be mentioned in the release file!
This message should be replaced with a description of your change.
Cheers!

View File

@ -0,0 +1,96 @@
name: elisp_tests
on:
schedule:
# Every 4 hours
- cron: '0 */4 * * *'
pull_request:
push:
branches:
- master
- develop
env:
TEST_SCRIPT: ./.github/workflows/scripts/test
MIRROR_SCRIPT: ./.github/workflows/scripts/create_mirror
EM_SCRIPT_PATH: $HOME/elpa-mirror.el
MIRROR_DIR: $HOME/elpa
MIRROR_NAME: elpa-mirror
EM_SCRIPT_URL: "https://raw.githubusercontent.com/\
redguardtoo/\
elpa-mirror/\
master/\
elpa-mirror.el"
defaults:
run:
shell: bash
jobs:
test:
if: ${{ github.event_name != 'schedule' }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
emacs_version: [25.3, 26.3, 27.1, snapshot]
test_root:
- core
- layers/+distribution/spacemacs-base
- layers/+distribution/spacemacs
steps:
- name: Install Emacs on UNIX
uses: purcell/setup-emacs@master
with:
version: ${{ matrix.emacs_version }}
if: ${{ matrix.os != 'windows-latest' }}
- name: Install Emacs on Windows
uses: jcs090218/setup-emacs-windows@master
with:
version: ${{ matrix.emacs_version }}
if: ${{ matrix.os == 'windows-latest' }}
- name: Download elpa mirror
continue-on-error: true
uses: actions/download-artifact@v2
with:
name: ${{ env.MIRROR_NAME }}
path: ${{ env.MIRROR_DIR }}
- name: List mirror content
continue-on-error: true
run: find ${{ env.MIRROR_DIR }}
- uses: actions/checkout@v2
- name: Dependencies installation
run: ${{ env.TEST_SCRIPT }} ${{ matrix.test_root }} installation
- name: Unit testing
run: ${{ env.TEST_SCRIPT }} ${{ matrix.test_root }} unit_tests
- name: Functional testing
run: ${{ env.TEST_SCRIPT }} ${{ matrix.test_root }} func_tests
update_elpa_mirror:
if: ${{ github.event_name == 'schedule' }}
runs-on: ubuntu-latest
steps:
- name: Install Emacs
uses: purcell/setup-emacs@master
with:
version: 27.1
- name: Download elpa-mirror.el
run: curl -o ${{ env.EM_SCRIPT_PATH }} ${{ env.EM_SCRIPT_URL }}
- uses: actions/checkout@v2
- name: Create local mirror
run: ${{ env.MIRROR_SCRIPT }}
- name: Upload mirror artifact
uses: actions/upload-artifact@v2
with:
name: ${{ env.MIRROR_NAME }}
path: ${{ env.MIRROR_DIR }}

View File

@ -0,0 +1,7 @@
(defun dotspacemacs/layers ()
(setq-default
dotspacemacs-distribution 'spacemacs))
(defun dotspacemacs/init ())
(defun dotspacemacs/user-init ())
(defun dotspacemacs/config ())
(defun dotspacemacs/user-config ())

View File

@ -0,0 +1,25 @@
#!/usr/bin/env bash
## Script for updating local elpa mirror
##
## Copyright (c) 2012-2014 Sylvain Benner
## Copyright (c) 2014-2020 Sylvain Benner & Contributors
##
## Author: Eugene Yaremenko
## URL: https://github.com/syl20bnr/spacemacs
##
## This file is not part of GNU Emacs.
##
## License: GPLv3
cp "${GITHUB_WORKSPACE}/.github/workflows/scripts/dotspacemacs.el" \
~/.spacemacs
ln -s "$(pwd)" $HOME/.emacs.d
mkdir -p "${MIRROR_DIR}"
emacs --batch \
-l "${HOME}/.emacs.d/init.el" \
-l "${EM_SCRIPT_PATH}" \
--eval="(setq elpamr-default-output-directory \"${MIRROR_DIR}\")" \
--eval="(elpamr-create-mirror-for-installed)"

View File

@ -0,0 +1,29 @@
#!/usr/bin/env bash
## Testing script for Emacs Lisp files on GNU/Linux and MacOS
##
## Copyright (c) 2012-2014 Sylvain Benner
## Copyright (c) 2014-2020 Sylvain Benner & Contributors
##
## Author: Eugene Yaremenko
## URL: https://github.com/syl20bnr/spacemacs
##
## This file is not part of GNU Emacs.
##
## License: GPLv3
# realpath for OS X https://stackoverflow.com/a/3572105/1224362
abs_p() {
[[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
}
ln -s "$(pwd)" $HOME/.emacs.d
testdir=$(abs_p tests/$1)
cd ..
echo "Running '$2' for '$1' in '$testdir' folder"
if [ -f $testdir/dotspacemacs.el ]; then
cp $testdir/dotspacemacs.el ~/.spacemacs
fi
cd $testdir && echo "Now in $(pwd)"
make $2
exit $?

View File

@ -37,6 +37,7 @@ eclipse.jdt.ls
edts/
elnode/
elpa/
EmmyLua-LS-all.jar
eproject.lst
eshell/alias
eshell/history

View File

@ -8,6 +8,10 @@ branches:
only:
- master
- develop
cache:
directories:
- /tmp/elpa
- !/tmp/elpa/gnupg
env:
global:
- secure: "M8NF1Uw7VGkLdNmWiUF4T+VOJXwN8KCKVQb45/BWVpGm88Rcfom/9bxRTUme8VYuzIavph32QF+P9KyhX8aj2p2FMItNnxiEySzap5UrLrNiwB6ZxbQglMJj0yMQKASynNBai9KKI7mYlsM5jRpFJ9OSgj7Ko00RIFpO3EpJ+kE="

View File

@ -36,7 +36,9 @@ echo $base_revision > /tmp/base_revision
echo "Base revision $base_revision"
fold_start "FORMATTING_DOCUMENTATION"
docker run --rm \
docker run \
--rm \
-v "/tmp/elpa/:/root/.emacs.d/elpa/" \
-v "${TRAVIS_BUILD_DIR}/.ci/spacedoc-cfg.edn":/opt/spacetools/spacedoc-cfg.edn \
-v "${TRAVIS_BUILD_DIR}":/tmp/docs/ \
jare/spacetools docfmt /tmp/docs/
@ -67,11 +69,13 @@ cp ./.travisci/.spacemacs ~/
ln -sf ~/.emacs.d "${TRAVIS_BUILD_DIR}"
fold_start "INSTALLING_DEPENDENCIES"
docker run --rm \
-v "${TRAVIS_BUILD_DIR}:/root/.emacs.d" \
-v "${TRAVIS_BUILD_DIR}/.travisci/.spacemacs:/root/.spacemacs" \
--entrypoint emacs \
jare/spacetools -batch -l /root/.emacs.d/init.el
docker run \
--rm \
-v "/tmp/elpa/:/root/.emacs.d/elpa/" \
-v "${TRAVIS_BUILD_DIR}:/root/.emacs.d" \
-v "${TRAVIS_BUILD_DIR}/.travisci/.spacemacs:/root/.spacemacs" \
--entrypoint emacs \
jare/spacetools -batch -l /root/.emacs.d/init.el
if [ $? -ne 0 ]; then
echo "Dependencies installation failed."
exit 2
@ -79,14 +83,16 @@ fi
fold_end "INSTALLING_DEPENDENCIES"
fold_start "EXPORTING_DOCUMENTATION"
docker run --rm \
-v "${TRAVIS_BUILD_DIR}:/root/.emacs.d" \
-v "${TRAVIS_BUILD_DIR}/.travisci/.spacemacs:/root/.spacemacs" \
--entrypoint emacs \
jare/spacetools -batch \
-l /root/.emacs.d/init.el \
-l /root/.emacs.d/core/core-documentation.el \
-f spacemacs/publish-doc
docker run \
--rm \
-v "/tmp/elpa/:/root/.emacs.d/elpa/" \
-v "${TRAVIS_BUILD_DIR}:/root/.emacs.d" \
-v "${TRAVIS_BUILD_DIR}/.travisci/.spacemacs:/root/.spacemacs" \
--entrypoint emacs \
jare/spacetools -batch \
-l /root/.emacs.d/init.el \
-l /root/.emacs.d/core/core-documentation.el \
-f spacemacs/publish-doc
if [ $? -ne 0 ]; then
echo "spacemacs/publish-doc failed"
exit 2

View File

@ -102,21 +102,21 @@ read that in =:password=.
* Key bindings
| Key binding | Description |
|-------------+-------------------------------------------------------|
| ~SPC a i e~ | Starts ERC |
| ~SPC a i E~ | Starts ERC via TLS/SSL |
| ~SPC a i i~ | Switch to next active ERC buffer |
| ~SPC a i D~ | Start ERC with default servers |
| ~SPC m c~ | Open the log file of the current channel |
| ~SPC m b~ | Switch between ERC buffers |
| ~SPC m d~ | Interactively input a user action and send it to IRC. |
| ~SPC m D~ | Draw Social Graph using [[https://github.com/vibhavp/erc-social-graph][erc-social-graph]] |
| ~SPC m j~ | Join a channel, executes the /join command |
| ~SPC m n~ | Run "/names #channel" in the current channel. |
| ~SPC m l~ | Run the /list command |
| ~SPC m p~ | Part from the channel |
| ~SPC m q~ | Quit server |
| Key binding | Description |
|---------------+-------------------------------------------------------|
| ~SPC a c i e~ | Starts ERC |
| ~SPC a c i E~ | Starts ERC via TLS/SSL |
| ~SPC a c i i~ | Switch to next active ERC buffer |
| ~SPC a c i D~ | Start ERC with default servers |
| ~SPC m c~ | Open the log file of the current channel |
| ~SPC m b~ | Switch between ERC buffers |
| ~SPC m d~ | Interactively input a user action and send it to IRC. |
| ~SPC m D~ | Draw Social Graph using [[https://github.com/vibhavp/erc-social-graph][erc-social-graph]] |
| ~SPC m j~ | Join a channel, executes the /join command |
| ~SPC m n~ | Run "/names #channel" in the current channel. |
| ~SPC m l~ | Run the /list command |
| ~SPC m p~ | Part from the channel |
| ~SPC m q~ | Quit server |
*Note:* If you want to connect securely to an IRC server, you must run =erc-tls=
command on ~SPC a i E~ instead of the =erc= command.

View File

@ -1,6 +1,6 @@
;;; config.el --- erc Layer configuration File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs

View File

@ -1,6 +1,6 @@
;;; funcs.el --- Spacemacs ERC Layer functions File
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs

View File

@ -1,6 +1,6 @@
;;; packages.el --- erc Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
@ -49,11 +49,11 @@
:init
(progn
(spacemacs/set-leader-keys
"aie" 'erc
"aiE" 'erc-tls
"aii" 'erc-track-switch-buffer
"aiD" 'erc/default-servers)
(spacemacs/declare-prefix "ai" "irc")
"acie" 'erc
"aciE" 'erc-tls
"acii" 'erc-track-switch-buffer
"aciD" 'erc/default-servers)
(spacemacs/declare-prefix "aci" "irc")
;; utf-8 always and forever
(setq erc-server-coding-system '(utf-8 . utf-8)))
:config
@ -224,7 +224,7 @@
"find current erc channel's log file in `erc-view-log-mode'"
(interactive)
(when (erc-logging-enabled)
(find-file-existing (erc-current-logfile)))))))
(find-file-existing (erc-current-logfile)))))))
(defun erc/init-erc-image ()
(use-package erc-image
@ -256,6 +256,7 @@
(erc/default-servers)
(call-interactively 'erc)))))))
(defun erc/pre-init-window-purpose ()
(spacemacs|use-package-add-hook window-purpose
:pre-config (add-to-list 'purpose-user-mode-purposes '(erc-mode . chat))))
(defun erc/post-init-window-purpose ()
(purpose-set-extension-configuration
:erc-layer
(purpose-conf :mode-purposes '((erc-mode . chat)))))

View File

@ -28,7 +28,7 @@ file.
* Key bindings
| Key binding | Description |
| ~SPC a j~ | Connect all accounts |
| ~SPC a c j~ | Connect all accounts |
** Jabber Roster

View File

@ -1,6 +1,6 @@
;;; funcs.el --- Jabber layer functions File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs

View File

@ -1,6 +1,6 @@
;;; packages.el --- jabber Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Tosh Lyons <tosh.lyons@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
@ -9,10 +9,10 @@
;;
;;; License: GPLv3
(setq jabber-packages '(
jabber
window-purpose
))
(defconst jabber-packages
'(
jabber
window-purpose))
(defun jabber/init-jabber ()
(use-package jabber
@ -20,7 +20,7 @@
:init
(progn
(add-hook 'jabber-post-connect-hooks 'spacemacs/jabber-connect-hook)
(spacemacs/set-leader-keys "aj" 'jabber-connect-all))
(spacemacs/set-leader-keys "acj" 'jabber-connect-all))
:config
(progn
(spacemacs/set-leader-keys-for-major-mode 'jabber-roster-mode
@ -40,11 +40,10 @@
"j" 'jabber-go-to-next-roster-item
"k" 'jabber-go-to-previous-roster-item))))
(defun jabber/pre-init-window-purpose ()
(spacemacs|use-package-add-hook window-purpose
:pre-config
(dolist (mode '(jabber-browse-mode
jabber-chat-mode
jabber-console-mode
jabber-roster-mode))
(add-to-list 'purpose-user-mode-purposes (cons mode 'chat)))))
(defun jabber/post-init-window-purpose ()
(purpose-set-extension-configuration
:jabber-layer
(purpose-conf :mode-purposes '((jabber-browse-mode . chat)
(jabber-chat-mode . chat)
(jabber-console-mode . chat)
(jabber-roster-mode . chat)))))

View File

@ -230,13 +230,13 @@ codes, set the variable =rcirc-enable-styles= to =t= in your dotfile:
* Key bindings
| Key binding | Description |
|-------------+-------------------------------------------------------------------------------|
| ~SPC a i r~ | Open rcirc |
| ~SPC l o i~ | Open rcirc in a custom perspective "@RICRC" (need perspectives layer enabled) |
| ~SPC m i a~ | Interactively insert a color code (if rcirc-styles is enabled) |
| ~SPC m i c~ | Interactively insert a text attribute code (if rcirc-styles is enabled) |
| ~SPC m i p~ | Toggle preview in input line (if rcirc-styles is enabled) |
| Key binding | Description |
|---------------+-------------------------------------------------------------------------------|
| ~SPC a c i r~ | Open rcirc |
| ~SPC l o i~ | Open rcirc in a custom perspective "@RICRC" (need perspectives layer enabled) |
| ~SPC m i a~ | Interactively insert a color code (if rcirc-styles is enabled) |
| ~SPC m i c~ | Interactively insert a text attribute code (if rcirc-styles is enabled) |
| ~SPC m i p~ | Toggle preview in input line (if rcirc-styles is enabled) |
In normal state:

View File

@ -1,6 +1,6 @@
;;; config.el --- rcirc Layer configuration File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs

View File

@ -1,6 +1,6 @@
;;; funcs.el --- rcirc Layer functions File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
@ -151,20 +151,20 @@ This doesn't support the chanserv auth method. "
for s in rcirc-server-alist
collect
(cl-destructuring-bind (&key host
(port rcirc-default-port)
(nick rcirc-default-nick)
(user-name rcirc-default-user-name)
(full-name rcirc-default-full-name)
channels
password
encryption
&allow-other-keys
&aux contact (server (car s)))
(port rcirc-default-port)
(nick rcirc-default-nick)
(user-name rcirc-default-user-name)
(full-name rcirc-default-full-name)
channels
password
encryption
&allow-other-keys
&aux contact (server (car s)))
(cdr s)
(let ((host (or host server)) ; catter with server without :host
(connected
(cl-loop for p in (rcirc-process-list)
thereis (string= server (process-get p :rcirc-server)))))
thereis (string= server (process-get p :rcirc-server)))))
(unless connected
(let ((process
(rcirc-connect host port nick user-name

View File

@ -1,6 +1,6 @@
;;; packages.el --- rcirc Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
@ -9,27 +9,26 @@
;;
;;; License: GPLv3
(setq rcirc-packages
'(
company
company-emoji
emoji-cheat-sheet-plus
emojify
(erc-image :toggle rcirc-enable-erc-image)
(erc-tweet :toggle rcirc-enable-erc-tweet)
(erc-yt :toggle rcirc-enable-erc-yt)
flyspell
(helm-rcirc :location local
:requires helm)
persp-mode
rcirc
rcirc-color
(rcirc-late-fix :location local
:toggle rcirc-enable-late-fix)
rcirc-notify
(rcirc-styles :toggle rcirc-enable-styles)
window-purpose
))
(defconst rcirc-packages
'(
company
company-emoji
emoji-cheat-sheet-plus
emojify
(erc-image :toggle rcirc-enable-erc-image)
(erc-tweet :toggle rcirc-enable-erc-tweet)
(erc-yt :toggle rcirc-enable-erc-yt)
flyspell
(helm-rcirc :location local
:requires helm)
persp-mode
rcirc
rcirc-color
(rcirc-late-fix :location local
:toggle rcirc-enable-late-fix)
rcirc-notify
(rcirc-styles :toggle rcirc-enable-styles)
window-purpose))
(defun rcirc/post-init-company ()
(spacemacs|add-company-backends :backends company-capf :modes rcirc-mode))
@ -111,10 +110,10 @@
:init
(progn
(spacemacs/add-to-hook 'rcirc-mode-hook '(rcirc-omit-mode
rcirc-track-minor-mode))
rcirc-track-minor-mode))
(spacemacs/set-leader-keys "air" 'spacemacs/rcirc)
(spacemacs/declare-prefix "ai" "irc")
(spacemacs/set-leader-keys "acir" 'spacemacs/rcirc)
(spacemacs/declare-prefix "aci" "irc")
(evil-set-initial-state 'rcirc-mode 'insert)
(setq rcirc-fill-column 80
rcirc-buffer-maximum-lines 2048
@ -179,6 +178,7 @@
(progn
(add-hook 'rcirc-notify-page-me-hooks 'spacemacs/rcirc-notify-beep))))
(defun rcirc/pre-init-window-purpose ()
(spacemacs|use-package-add-hook window-purpose
:pre-config (add-to-list 'purpose-user-mode-purposes '(rcirc-mode . chat))))
(defun rcirc/post-init-window-purpose ()
(purpose-set-extension-configuration
:rcirc-layer
(purpose-conf :mode-purposes '((rcirc-mode . chat)))))

View File

@ -64,34 +64,37 @@ By default the values are:
* Key bindings
| Key binding | Description |
|-------------+-----------------------------------------|
| ~SPC a C d~ | Direct message someone |
| ~SPC a C g~ | Join a group (private channel) |
| ~SPC a C j~ | Join a channel |
| ~SPC a C q~ | Close connection |
| ~SPC a C r~ | Join a channel, group, or direct messge |
| ~SPC a C s~ | (Re)connects to Slack |
| ~SPC m c~ | Embed mention of channel |
| ~SPC m e~ | Edit message at point |
| ~SPC m j~ | Join a channel |
| ~SPC m d~ | Direct message someone |
| ~SPC m m~ | Embed mention of user |
| ~SPC m p~ | Load previous messages |
| ~SPC m )~ | Add reaction (emoji) to a message |
| ~SPC m (~ | Remove reaction (emoji) to a message |
| ~SPC m t~ | Show or create thread |
| ~SPC m q~ | Quit Slack |
| Key binding | Description |
|---------------+------------------------------------------|
| ~SPC a c s T~ | Show all threads followed in a workspace |
| ~SPC a c s d~ | Direct message someone |
| ~SPC a c s g~ | Join a group (private channel) |
| ~SPC a c s j~ | Join a channel |
| ~SPC a c s q~ | Close connection |
| ~SPC a c s r~ | Join a channel, group, or direct messge |
| ~SPC a c s s~ | (Re)connects to Slack |
| ~SPC a c s u~ | Show all unread in a workspace |
| ~SPC m (~ | Remove reaction (emoji) to a message |
| ~SPC m )~ | Add reaction (emoji) to a message |
| ~SPC m c~ | Embed mention of channel |
| ~SPC m d~ | Direct message someone |
| ~SPC m e~ | Edit message at point |
| ~SPC m j~ | Join a channel |
| ~SPC m m~ | Embed mention of user |
| ~SPC m p~ | Load previous messages |
| ~SPC m q~ | Quit Slack |
| ~SPC m t~ | Show or create thread |
The following bindings are provided to mimic bindings in the official Slack
client.
| Key binding | Description |
|-------------+--------------------------|
| ~SPC m @~ | Embed mention of user |
| ~SPC m #~ | Embed mention of channel |
| ~SPC m )~ | Add a rection |
| ~SPC m :~ | Embed emoji |
| ~SPC m @~ | Embed mention of user |
| ~SPC m k~ | Join a channel |
In insert state, one can also use ~@~ and ~#~ directly without the leader key
prefix.
In insert state, one can also use ~:~, ~@~, and ~#~ directly without the leader
key prefix.

View File

@ -1,6 +1,6 @@
;;; config.el --- slack layer configuration file for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Benjamin Reynolds <breyno127@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs

View File

@ -1,6 +1,6 @@
;;; funcs.el --- slack layer functions file for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs

View File

@ -1,6 +1,6 @@
;;; layers.el --- Slack layer layers File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs

View File

@ -1,6 +1,6 @@
;;; packages.el --- slack layer packages file for Spacemacs.
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Kosta Harlan <kosta@kostaharlan.net>
;; URL: https://github.com/syl20bnr/spacemacs
@ -9,10 +9,6 @@
;;
;;; License: GPLv3
;;; Commentary:
;;; Code:
;; TODO: Integrate company-emoji.
(defconst slack-packages
@ -23,8 +19,7 @@
linum
persp-mode
slack
window-purpose
))
window-purpose))
(defun slack/init-alert ()
(use-package alert
@ -61,38 +56,44 @@
:commands (slack-start)
:defer t
:init
(spacemacs/declare-prefix "aC" "slack")
(spacemacs/declare-prefix "acs" "slack")
(spacemacs/set-leader-keys
"aCs" 'slack-start
"aCj" 'slack-channel-select
"aCg" 'slack-group-select
"aCr" 'slack-select-rooms
"aCd" 'slack-im-select
"aCq" 'slack-ws-close)
"acsT" 'slack-all-threads
"acsd" 'slack-im-select
"acsg" 'slack-group-select
"acsj" 'slack-channel-select
"acsq" 'slack-ws-close
"acsr" 'slack-select-rooms
"acss" 'slack-start
"acsu" 'slack-all-unreads)
(setq slack-enable-emoji t)
:config
(dolist (mode '(slack-mode slack-message-buffer-mode))
(dolist (mode '(slack-mode slack-message-buffer-mode slack-thread-message-buffer-mode))
(spacemacs/set-leader-keys-for-major-mode mode
"j" 'slack-channel-select
"g" 'slack-group-select
"r" 'slack-select-rooms
"d" 'slack-im-select
"p" 'slack-room-load-prev-messages
"e" 'slack-message-edit
"t" 'slack-thread-show-or-create
"q" 'slack-ws-close
"mm" 'slack-message-embed-mention
"mc" 'slack-message-embed-channel
"k" 'slack-select-rooms
"@" 'slack-message-embed-mention
"#" 'slack-message-embed-channel
"(" 'slack-message-remove-reaction
")" 'slack-message-add-reaction
"(" 'slack-message-remove-reaction))
(evil-define-key 'insert slack-mode-map
(kbd "@") 'slack-message-embed-mention
(kbd "#") 'slack-message-embed-channel)))
"@" 'slack-message-embed-mention
"T" 'slack-all-threads
"d" 'slack-im-select
"e" 'slack-message-edit
"g" 'slack-group-select
"j" 'slack-channel-select
"k" 'slack-select-rooms
"mc" 'slack-message-embed-channel
"mm" 'slack-message-embed-mention
"p" 'slack-room-load-prev-messages
"q" 'slack-ws-close
"r" 'slack-select-rooms
"t" 'slack-thread-show-or-create
"u" 'slack-all-unreads)
(let ((keymap (symbol-value (intern (concat (symbol-name mode) "-map")))))
(evil-define-key 'insert keymap
(kbd "#") 'slack-message-embed-channel
(kbd ":") 'slack-insert-emoji
(kbd "@") 'slack-message-embed-mention)))))
(defun slack/pre-init-window-purpose ()
(spacemacs|use-package-add-hook window-purpose
:pre-config
(add-to-list 'purpose-user-mode-purposes '(slack-mode . chat))))
(defun slack/post-init-window-purpose ()
(purpose-set-extension-configuration
:slack-layer
(purpose-conf :mode-purposes '((slack-mode . chat)))))

View File

@ -128,6 +128,7 @@ set the layer variable =enable-flyspell-auto-completion= to t:
| ~SPC S a g~ | Add word to dict (global) |
| ~SPC S a s~ | Add word to dict (session) |
| ~SPC S b~ | Flyspell whole buffer |
| ~SPC S r~ | Flyspell region |
| ~SPC S c~ | Flyspell correct word before point |
| ~SPC S s~ | Flyspell correct word at point |
| ~SPC u SPC S c~ | Flyspell correct all errors one by one |
@ -140,6 +141,7 @@ set the layer variable =enable-flyspell-auto-completion= to t:
| Key binding | Description |
|-------------+--------------------------------------------------|
| ~SPC S . b~ | Rerun spell check for the whole buffer |
| ~SPC S . r~ | Rerun spell check for the selected region |
| ~SPC S . d~ | Change dictionary |
| ~SPC S . n~ | Go to next spelling error |
| ~SPC S . c~ | Correct word before point |

View File

@ -51,14 +51,16 @@
Spell Commands^^ Add To Dictionary^^ Other
--------------^^---------- -----------------^^------------- -----^^---------------------------
[_b_] check whole buffer [_B_] add word to dict (buffer) [_t_] toggle spell check
[_d_] change dictionary [_G_] add word to dict (global) [_q_] exit
[_n_] next spell error [_S_] add word to dict (session) [_Q_] exit and disable spell check
[_r_] check region [_G_] add word to dict (global) [_q_] exit
[_d_] change dictionary [_S_] add word to dict (session) [_Q_] exit and disable spell check
[_n_] next spell error
[_c_] correct before point
[_s_] correct at point"
:on-enter (flyspell-mode)
:bindings
("B" spacemacs/add-word-to-dict-buffer)
("b" flyspell-buffer)
("r" flyspell-region)
("d" spell-checking/change-dictionary)
("G" spacemacs/add-word-to-dict-global)
("n" flyspell-goto-next-error)
@ -93,6 +95,7 @@ Spell Commands^^ Add To Dictionary^^ Other
"Sag" 'spacemacs/add-word-to-dict-global
"Sas" 'spacemacs/add-word-to-dict-session
"Sb" 'flyspell-buffer
"Sr" 'flyspell-region
"Sd" 'spell-checking/change-dictionary
"Sn" 'flyspell-goto-next-error
"Ss" 'flyspell-correct-at-point))

View File

@ -14,6 +14,7 @@
- [[#enable-flycheck-globally][Enable flycheck globally]]
- [[#enable-support-for-traditional-error-navigation][Enable support for traditional error navigation]]
- [[#bitmaps][Bitmaps]]
- [[#auto-hide-tooltips][Auto hide tooltips]]
- [[#key-bindings][Key bindings]]
* Description
@ -93,6 +94,18 @@ variable =syntax-checking-use-original-bitmaps= to =t=:
'((syntax-checking :variables syntax-checking-use-original-bitmaps t)))
#+END_SRC
** Auto hide tooltips
You can set time in seconds after which tooltips are automatically hidden by setting
the variable =syntax-checking-auto-hide-tooltips= to a positive number of seconds.
Default value of =syntax-checking-auto-hide-tooltips= is =nil=, and in that case tooltips
are kept open until the cursor is moved.
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers
'((syntax-checking :variables syntax-checking-auto-hide-tooltips 10)))
#+END_SRC
* Key bindings
| Key binding | Description |

View File

@ -14,6 +14,9 @@
(defvar syntax-checking-enable-tooltips t
"If non nil some feedback are displayed in tooltips.")
(defvar syntax-checking-auto-hide-tooltips nil
"If non-nil and positive number, auto hide tooltips after number of seconds.")
(defvar syntax-checking-enable-by-default t
"Enable syntax-checking by default.")

View File

@ -102,13 +102,16 @@
:defer t
:init
(with-eval-after-load 'flycheck
(flycheck-pos-tip-mode))))
(flycheck-pos-tip-mode)
(setq flycheck-pos-tip-timeout (or syntax-checking-auto-hide-tooltips 0)))))
(defun syntax-checking/post-init-popwin ()
(push '("^\\*Flycheck.+\\*$"
:regexp t
:dedicated t
:position bottom
:stick t
:noselect t)
popwin:special-display-config))
(defun syntax-checking/pre-init-popwin ()
(spacemacs|use-package-add-hook popwin
:post-config
(push '("^\\*Flycheck.+\\*$"
:regexp t
:dedicated t
:position bottom
:stick t
:noselect t)
popwin:special-display-config)))

View File

@ -644,4 +644,4 @@ to buffers)."
(interactive)
(let ((completion-styles completion-styles))
(add-to-list 'completion-styles `,(if (version< emacs-version "27") 'helm-flex 'flex) t)
(command-execute 'helm-M-x)))
(call-interactively 'helm-M-x)))

View File

@ -43,7 +43,7 @@
(defun helm-spacemacs-help//init (&optional arg)
(when (or arg (null helm-spacemacs--initialized))
(configuration-layer/make-all-packages)
(configuration-layer/make-all-packages nil t)
(setq helm-spacemacs--initialized t)))
;;;###autoload

View File

@ -64,6 +64,7 @@
:defer (spacemacs/defer)
:init
(progn
(spacemacs|diminish helm-ff-cache-mode)
(spacemacs|add-transient-hook completing-read
(lambda (&rest _args) (require 'helm))
lazy-load-helm-for-completing-read)

View File

@ -42,7 +42,7 @@
(defun ivy-spacemacs-help//init (&optional arg)
(when (or arg (null ivy-spacemacs--initialized))
(configuration-layer/make-all-packages)
(configuration-layer/make-all-packages nil t)
(setq ivy-spacemacs--initialized t)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

View File

@ -1,6 +1,6 @@
;;; config.el --- helpful Layer Configuration File for Spacemacs
;;
;; Copyright (c) 2012-2019 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Maximilian Wolff <smile13241324@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs

View File

@ -1,6 +1,6 @@
;;; packages.el --- helpful layer packages file for Spacemacs.
;;
;; Copyright (c) 2012-2017 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Johnson Denen <johnson@johnsons-macbook-pro.local>
;; URL: https://github.com/syl20bnr/spacemacs
@ -13,8 +13,7 @@
'(
helpful
link-hint
popwin
))
popwin))
(defun helpful/init-helpful ()
(use-package helpful
@ -39,6 +38,7 @@
(with-eval-after-load 'helpful
(evil-define-key 'normal helpful-mode-map (kbd "o") 'link-hint-open-link)))
(defun helpful/post-init-popwin ()
(push '(helpful-mode :dedicated t :position bottom :stick t :noselect t :height 0.4)
popwin:special-display-config))
(defun helpful/pre-init-popwin ()
(spacemacs|use-package-add-hook popwin
:post-config
(push '(helpful-mode :dedicated t :position bottom :stick t :noselect t :height 0.4) popwin:special-display-config)))

View File

@ -122,7 +122,7 @@
".org-timestamps/")
org-directory "~/org" ;; needs to be defined for `org-default-notes-file'
org-default-notes-file (expand-file-name "notes.org" org-directory)
org-log-done t
org-log-done 'time
org-startup-with-inline-images t
org-latex-prefer-user-labels t
org-image-actual-width nil
@ -256,7 +256,7 @@ Will work on both org-mode and any mode that accepts plain html."
;; Subtree editing
"sa" 'org-toggle-archive-tag
"sA" 'org-archive-subtree
"sA" 'org-archive-subtree-default
"sb" 'org-tree-to-indirect-buffer
"sd" 'org-cut-subtree
"sh" 'org-promote-subtree
@ -365,6 +365,7 @@ Will work on both org-mode and any mode that accepts plain html."
"ao#" 'org-agenda-list-stuck-projects
"ao/" 'org-occur-in-agenda-files
"aoa" 'org-agenda-list
"aoo" 'org-agenda
"aoc" 'org-capture
"aoe" 'org-store-agenda-views
"aofi" 'org-feed-goto-inbox
@ -382,7 +383,6 @@ Will work on both org-mode and any mode that accepts plain html."
"aol" 'org-store-link
"aom" 'org-tags-view
"aoo" 'org-agenda
"aos" 'org-search-view
"aot" 'org-todo-list
;; SPC C- capture/colors
@ -782,8 +782,8 @@ Headline^^ Visit entry^^ Filter^^ Da
(spacemacs/set-leader-keys-for-major-mode 'org-journal-mode
"j" 'org-journal-new-entry
"n" 'org-journal-open-next-entry
"p" 'org-journal-open-previous-entry)
"n" 'org-journal-next-entry
"p" 'org-journal-previous-entry)
(spacemacs//init-leader-mode-map 'org-journal-mode 'spacemacs-org-journal-mode-map))))

View File

@ -0,0 +1,41 @@
#+TITLE: outshine layer
#+TAGS: emacs|layer
* Table of Contents :TOC_5_gh:noexport:
- [[#description][Description]]
- [[#features][Features:]]
- [[#install][Install]]
- [[#key-bindings][Key bindings]]
* Description
This layer adds support for [[https://github.com/alphapapa/outshine][outshine]] and [[https://github.com/alphapapa/outorg][outorg]]. They will be enabled in all
programming modes.
** Features:
- Navigate through code buffers via headings like you do with org buffers
- Edit comments under outline headings in separate org-mode buffers
* Install
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
add =outshine= to the existing =dotspacemacs-configuration-layers= list in this
file.
* Key bindings
| Key binding | Description |
|---------------+------------------------------------------------------------|
| ~SPC a O S~ | Show the contents of all outline sections |
| ~SPC a O .~ | Structural navigation/editing transient state |
| ~SPC a O c~ | Save the edits back to the original file |
| ~SPC a O e~ | Edit the current heading as org |
| ~SPC a O g u~ | Navigate up an outline heading |
| ~SPC a O g n~ | Navigate to the next outline heading |
| ~SPC a O g j~ | Navigate to the next outline heading at the same level |
| ~SPC a O g j~ | Navigate to the previous outline heading at the same level |
| ~SPC a O i h~ | Insert an outline heading |
| ~SPC a O I~ | imenu of outshine headlines |
| ~SPC a O J~ | Move the current outline subtree down |
| ~SPC a O K~ | Move the current outline subtree up |
| ~SPC a O >~ | Demote the current outline subtree |
| ~SPC a O <~ | Promote the current outline subtree |

View File

@ -0,0 +1,12 @@
;;; layers.el --- Outshine layers File for Spacemacs
;;
;; Copyright (c) 2012-2019 Sylvain Benner & Contributors
;;
;; Author: Langston Barrett <langston.barrett@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
(configuration-layer/declare-layers '(org))

View File

@ -0,0 +1,76 @@
;;; packages.el --- Outshine layer packages file for Spacemacs.
;;
;; Copyright (c) 2012-2019 Sylvain Benner & Contributors
;;
;; Author: Langston Barrett <langston.barrett@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
(defconst outshine-packages
'(outshine
outorg))
(defun outshine/init-outshine ()
(use-package outshine
:defer t
:init
(progn
(add-hook 'prog-mode-hook 'outline-minor-mode)
(add-hook 'outline-minor-mode-hook 'outshine-mode))
:config
(progn
(spacemacs|hide-lighter outline-minor-mode)
(spacemacs|hide-lighter outshine-mode)
(spacemacs/declare-prefix "aO" "out(line/org/shine)")
(spacemacs/declare-prefix "aOg" "goto")
(spacemacs/declare-prefix "aOi" "insert")
(spacemacs/set-leader-keys
"aO." 'spacemacs/outshine-transient-state/body
"aOS" 'outline-show-all
"aOgu" 'outline-up-heading
"aOgn" 'outline-next-heading
"aOgj" 'outline-forward-same-level
"aOgk" 'outline-backward-same-level
"aOih" 'outline-insert-heading
"aOI" 'outshine-imenu
"aOK" 'outline-move-subtree-up
"aOJ" 'outline-move-subtree-down
"aO>" 'outline-demote
"aO<" 'outline-promote))
(spacemacs|define-transient-state outshine
:title "Outshine Transient State"
:doc "
Navigate headings^^^^ Move subtrees^^^^ Other^^
^^^^ ^^^^ ^^
[_j_/_k_] down/up [_J_/_K_] move subtree down/up [_q_] quit
[_n_/_N_] next/up heading [_>_/_<_] demote/promote [_i_] insert heading
[_I_]^^ heading imenu"
:bindings
("q" nil :exit t)
("i" outline-insert-heading :exit t)
("I" outshine-imenu :exit t)
;; Navigate headings
("n" outline-next-heading)
("N" outline-up-heading)
("j" outline-forward-same-level)
("k" outline-backward-same-level)
;; Move headings
("J" outline-move-subtree-down)
("K" outline-move-subtree-up)
;; Move headings
(">" outline-demote)
("<" outline-promote))))
(defun outshine/init-outorg ()
(use-package outorg
:defer t
:config
(progn
(spacemacs/set-leader-keys
"aOc" 'outorg-copy-edits-and-exit
"aOe" 'outorg-edit-as-org))))
;;; packages.el ends here

View File

@ -143,7 +143,7 @@ Basic and Spacemacs specific key bindings can be found in the following table.
| Key binding | Gnus mode - Description |
|----------------------+-----------------------------------------------------|
| ~SPC a g~ | Starts Gnus |
| ~SPC a e g~ | Starts Gnus |
| ~m~ | New Message |
| ~O R~, ~G R~ (emacs) | Group Buffer - Add RSS feed |
| ~g r~ | Group Buffer - Check for new mail |

View File

@ -1,6 +1,6 @@
;;; config.el --- gnus Layer configuration File for Spacemacs
;;
;; Copyright (c) 2019 Matthew Leach & Contributors
;; Copyright (c) 2019-2020 Sylvain Benner & Contributors
;;
;; Author: Matthew Leach <matthew@mattleach.net>
;; URL: https://github.com/syl20bnr/spacemacs

View File

@ -1,6 +1,6 @@
;;; packages.el --- gnus Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
@ -9,11 +9,11 @@
;;
;;; License: GPLv3
(setq gnus-packages '(
gnus
window-purpose
persp-mode
))
(defconst gnus-packages
'(
gnus
window-purpose
persp-mode))
(defun gnus/pre-init-persp-mode ()
(spacemacs|use-package-add-hook persp-mode
@ -31,12 +31,12 @@
:commands gnus
:init
(progn
(spacemacs/declare-prefix "ag" "gnus" "Gnus newsreader")
(spacemacs/declare-prefix "aeg" "gnus" "Gnus newsreader")
(spacemacs/set-leader-keys
"agg" 'gnus
"ags" 'gnus-slave
"agu" 'gnus-unplugged
"ago" 'gnus-slave-unplugged)
"aegg" 'gnus
"aegs" 'gnus-slave
"aegu" 'gnus-unplugged
"aego" 'gnus-slave-unplugged)
(spacemacs/declare-prefix-for-mode 'message-mode "mi" "insert")
(spacemacs/set-leader-keys-for-major-mode 'message-mode
;; RFC 1855
@ -116,12 +116,11 @@
(kbd "K") 'gnus-summary-prev-article
(kbd "<RET>") 'spacemacs/browse-nnrss-url))))
(defun gnus/pre-init-window-purpose ()
(spacemacs|use-package-add-hook window-purpose
:pre-config
(dolist (mode '(gnus-group-mode
gnus-server-mode
gnus-browse-mode
gnus-article-mode
gnus-summary-mode))
(add-to-list 'purpose-user-mode-purposes (cons mode 'mail)))))
(defun gnus/post-init-window-purpose ()
(purpose-set-extension-configuration
:gnus-layer
(purpose-conf :mode-purposes '((gnus-group-mode . mail)
(gnus-server-mode . mail)
(gnus-browse-mode . mail)
(gnus-article-mode . mail)
(gnus-summary-mode . mail)))))

View File

@ -64,7 +64,7 @@ existing =dotspacemacs-configuration-layers= list in this file.
| Key binding | Command |
|------------------------+---------------------------------|
| ~SPC a M~ | Start mu4e |
| ~SPC a e m~ | Start mu4e |
| ~SPC m S~ or ~SPC m /~ | Search emails (requires helm) |
| ~SPC m C~ | Search contacts (requires helm) |
| ~C-x m~ | Compose new message |

View File

@ -1,6 +1,6 @@
;;; config.el --- mu4e Layer configuration File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs

View File

@ -1,6 +1,6 @@
;;; funcs.el --- mu4e Layer functions File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs

View File

@ -1,6 +1,6 @@
;;; packages.el --- mu4e Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
@ -9,16 +9,15 @@
;;
;;; License: GPLv3
(setq mu4e-packages
'(
(mu4e :location site)
mu4e-alert
mu4e-maildirs-extension
(helm-mu :requires helm)
org
persp-mode
window-purpose
))
(defconst mu4e-packages
'(
(mu4e :location site)
mu4e-alert
mu4e-maildirs-extension
(helm-mu :requires helm)
org
persp-mode
window-purpose))
(defun mu4e/post-init-persp-mode ()
(spacemacs|define-custom-layout mu4e-spacemacs-layout-name
@ -30,10 +29,10 @@
(persp-get-by-name
mu4e-spacemacs-layout-name)))
(spacemacs/add-to-hooks 'spacemacs-layouts/add-mu4e-buffer-to-persp
'(mu4e-main-mode-hook
mu4e-headers-mode-hook
mu4e-view-mode-hook
mu4e-compose-mode-hook))
'(mu4e-main-mode-hook
mu4e-headers-mode-hook
mu4e-view-mode-hook
mu4e-compose-mode-hook))
(call-interactively 'mu4e)
(call-interactively 'mu4e-update-index)
@ -46,7 +45,7 @@
:commands (mu4e mu4e-compose-new)
:init
(progn
(spacemacs/set-leader-keys "a M" 'mu4e)
(spacemacs/set-leader-keys "aem" 'mu4e)
(global-set-key (kbd "C-x m") 'mu4e-compose-new)
(setq mu4e-completing-read-function 'completing-read
mu4e-use-fancy-chars 't
@ -66,25 +65,25 @@
(kbd "C-k") 'previous-line)
(evilified-state-evilify-map
mu4e-headers-mode-map
:mode mu4e-headers-mode
:bindings
(kbd "C-j") 'mu4e-headers-next
(kbd "C-k") 'mu4e-headers-prev
(kbd "J") (lambda ()
(interactive)
(mu4e-headers-mark-thread nil '(read))))
mu4e-headers-mode-map
:mode mu4e-headers-mode
:bindings
(kbd "C-j") 'mu4e-headers-next
(kbd "C-k") 'mu4e-headers-prev
(kbd "J") (lambda ()
(interactive)
(mu4e-headers-mark-thread nil '(read))))
(evilified-state-evilify-map
mu4e-view-mode-map
:mode mu4e-view-mode
:bindings
(kbd "C-j") 'mu4e-view-headers-next
(kbd "C-k") 'mu4e-view-headers-prev
(kbd "J") (lambda ()
(interactive)
(mu4e-view-mark-thread '(read)))
(kbd "gu") 'mu4e-view-go-to-url)
mu4e-view-mode-map
:mode mu4e-view-mode
:bindings
(kbd "C-j") 'mu4e-view-headers-next
(kbd "C-k") 'mu4e-view-headers-prev
(kbd "J") (lambda ()
(interactive)
(mu4e-view-mark-thread '(read)))
(kbd "gu") 'mu4e-view-go-to-url)
(spacemacs/set-leader-keys-for-major-mode 'mu4e-compose-mode
dotspacemacs-major-mode-leader-key 'message-send-and-exit
@ -156,10 +155,12 @@ mu4e-use-maildirs-extension-load to be evaluated after mu4e has been loaded."
(require 'mu4e nil 'noerror)
(require 'mu4e-org nil 'noerror)))
(defun mu4e/pre-init-window-purpose ()
(spacemacs|use-package-add-hook window-purpose
:pre-config
(defun mu4e/post-init-window-purpose ()
(let ((modes))
(dolist (mode mu4e-list-modes)
(add-to-list 'purpose-user-mode-purposes (cons mode 'mail)))
(add-to-list 'modes (cons mode 'mail)))
(dolist (mode mu4e-view-modes)
(add-to-list 'purpose-user-mode-purposes (cons mode 'mail-view)))))
(add-to-list 'modes (cons mode 'mail-view)))
(purpose-set-extension-configuration
:mu4e-layer
(purpose-conf :mode-purposes modes))))

View File

@ -94,13 +94,13 @@ Refer to the official notmuch website for more information:
* Key bindings
** Global bindings
| Key binding | Command |
|-------------+----------------------------------------------|
| ~SPC a N N~ | Start notmuch |
| ~SPC a N n~ | Start helm notmuch |
| ~SPC a N j~ | Start a notmuch jump search |
| ~SPC a N s~ | Start a notmuch search |
| ~SPC l o n~ | Start notmuch in a custom layout, "@Notmuch" |
| Key binding | Command |
|---------------+----------------------------------------------|
| ~SPC a e n N~ | Start notmuch |
| ~SPC a e n n~ | Start helm/counsil notmuch |
| ~SPC a e n j~ | Start a notmuch jump search |
| ~SPC a e n s~ | Start a notmuch search |
| ~SPC l o n~ | Start notmuch in a custom layout, "@Notmuch" |
** Show mode

View File

@ -1,6 +1,6 @@
;;; config.el --- notmuch Layer configuration File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Miciah Dashiel Butler Masters <miciah.masters@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs

View File

@ -1,6 +1,6 @@
;;; funcs.el --- Notmuch Layer functions File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
@ -35,7 +35,7 @@
(defun spacemacs//notmuch-message-delete (go-next)
"Delete message and select GO-NEXT message."
(notmuch-search-tag notmuch-message-deleted-tags)
(if (eq 'up go-next )
(if (eq 'up go-next)
(notmuch-search-previous-thread)
(notmuch-search-next-thread)))

View File

@ -1,6 +1,6 @@
;;; packages.el --- Notmuch Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
@ -9,25 +9,25 @@
;;
;;; License: GPLv3
(setq notmuch-packages
'(
(counsel-notmuch :requires ivy)
(helm-notmuch :requires helm)
notmuch
org
persp-mode
window-purpose))
(defconst notmuch-packages
'(
(counsel-notmuch :requires ivy)
(helm-notmuch :requires helm)
notmuch
org
persp-mode
window-purpose))
(defun notmuch/init-counsel-notmuch ()
(use-package counsel-notmuch
:defer t
:init (spacemacs/set-leader-keys "aNn" 'counsel-notmuch)))
:init (spacemacs/set-leader-keys "aenn" 'counsel-notmuch)))
(defun notmuch/init-helm-notmuch ()
(use-package helm-notmuch
:defer t
:init (spacemacs/set-leader-keys "aNn" 'helm-notmuch)))
:init (spacemacs/set-leader-keys "aenn" 'helm-notmuch)))
(defun notmuch/init-notmuch ()
(use-package notmuch
@ -35,12 +35,12 @@
:commands notmuch
:init
(progn
(spacemacs/declare-prefix "aN" "notmuch")
(spacemacs/declare-prefix "aen" "notmuch")
(spacemacs/set-leader-keys
"aNN" 'notmuch
"aNi" 'spacemacs/notmuch-inbox
"aNj" 'notmuch-jump-search
"aNs" 'notmuch-search))
"aenN" 'notmuch
"aeni" 'spacemacs/notmuch-inbox
"aenj" 'notmuch-jump-search
"aens" 'notmuch-search))
:config
(progn
(dolist (prefix '(("ms" . "stash")
@ -154,8 +154,10 @@
(add-hook hook #'spacemacs//notmuch-buffer-to-persp)))
(call-interactively 'notmuch))))))
(defun notmuch/pre-init-window-purpose ()
(spacemacs|use-package-add-hook window-purpose
:pre-config
(defun notmuch/post-init-window-purpose ()
(let ((modes))
(dolist (mode notmuch-modes)
(add-to-list 'purpose-user-mode-purposes (cons mode 'mail)))))
(add-to-list 'modes (cons mode 'mail)))
(purpose-set-extension-configuration
:notmuch-layer
(purpose-conf :mode-purposes modes))))

View File

@ -15,6 +15,7 @@
- [[#git-mode][Git mode]]
- [[#flattening-of-directories][Flattening of directories]]
- [[#locking-width][Locking width]]
- [[#theme][Theme]]
- [[#key-bindings][Key bindings]]
- [[#global][Global]]
- [[#inside-treemacs][Inside Treemacs]]
@ -130,6 +131,14 @@ resizable through Treemacs commands and key bindings.
Default is =nil=.
** Theme
To use the `all-the-icons` theme rather than the default one, set the `treemacs-use-all-the-icons-theme` variable:
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers '(
(treemacs :variables treemacs-use-all-the-icons-theme t)))
#+END_SRC
* Key bindings
** Global
@ -203,8 +212,9 @@ It is possible to set =ace mode= as default action for pressing RET on a file.
To do this add following configuration to your dotfile.
#+BEGIN_SRC emacs-lisp
(treemacs-define-RET-action 'file-node-closed #'treemacs-visit-node-ace)
(treemacs-define-RET-action 'file-node-open #'treemacs-visit-node-ace)
(with-eval-after-load 'treemacs
(treemacs-define-RET-action 'file-node-closed #'treemacs-visit-node-ace)
(treemacs-define-RET-action 'file-node-open #'treemacs-visit-node-ace))
#+END_SRC
**** Use digits in ace mode

View File

@ -39,3 +39,6 @@ There are 2 possible values:
(defvar treemacs-use-icons-dired t
"When non-nil use `treemacs-icons-dired'")
(defvar treemacs-use-all-the-icons-theme nil
"Enable the treemacs supported `all-the-icons' theme")

View File

@ -16,6 +16,7 @@
treemacs
(treemacs-evil :toggle (memq dotspacemacs-editing-style '(vim hybrid)))
(treemacs-icons-dired :toggle treemacs-use-icons-dired)
(treemacs-all-the-icons :toggle treemacs-use-all-the-icons-theme)
(treemacs-magit :requires magit)
(treemacs-persp :requires persp-mode)
treemacs-projectile
@ -99,6 +100,11 @@
(use-package treemacs-icons-dired
:hook (dired-mode . treemacs-icons-dired-mode)))
(defun treemacs/init-treemacs-all-the-icons ()
(use-package treemacs-all-the-icons
:if treemacs-use-all-the-icons-theme
:hook (treemacs-mode . (lambda () (treemacs-load-theme 'all-the-icons)))))
(defun treemacs/pre-init-winum ()
(spacemacs|use-package-add-hook winum
:post-config

View File

@ -13,7 +13,7 @@
- [[#rjsx-mode][rjsx-mode]]
- [[#formatting-web-beautify][Formatting (web-beautify)]]
- [[#documentation-js-doc][Documentation (js-doc)]]
- [[#auto-complete-and-documentation-tern][Auto-complete and documentation (tern)]]
- [[#documentation-tern][Documentation (tern)]]
* Description
ES6 and JSX ready configuration layer for React
@ -151,7 +151,7 @@ You can check more [[https://github.com/mooz/js-doc/][here]]
| ~SPC m r d t~ | insert tag to comment |
| ~SPC m r d h~ | show list of available jsdoc tags |
** Auto-complete and documentation (tern)
** Documentation (tern)
| Key binding | Description |
|---------------+------------------------------------------------------------------------------------------|

View File

@ -21,7 +21,6 @@
(defun spacemacs//react-setup-company ()
"Conditionally setup company based on backend."
(pcase javascript-backend
(`tern (spacemacs/tern-setup-tern-company 'rjsx-mode))
(`tide (spacemacs//tide-setup-company 'rjsx-mode))))
(defun spacemacs//react-setup-next-error-fn ()

View File

@ -35,7 +35,7 @@ Linux user could install [[https://zhm.github.io/symbola/][Symbola]] font to get
| Key binding | Description |
|-------------+-----------------------------------------|
| ~SPC a E~ | open a dedicated buffer to browse Emoji |
| ~SPC a f e~ | open a dedicated buffer to browse Emoji |
| ~SPC i e~ | insert Emoji via a helm buffer |
** Emoji dedicated buffer

View File

@ -23,7 +23,7 @@
emoji-cheat-sheet-plus-display-mode)
:init
(progn
(spacemacs/set-leader-keys "aE" 'emoji-cheat-sheet-plus-buffer)
(spacemacs/set-leader-keys "afe" 'emoji-cheat-sheet-plus-buffer)
(spacemacs/set-leader-keys "ie" 'emoji-cheat-sheet-plus-insert)
(evilified-state-evilify emoji-cheat-sheet-plus-buffer-mode
emoji-cheat-sheet-plus-buffer-mode-map

View File

@ -36,7 +36,7 @@ To run a game:
| Key binding | Description |
|-------------+----------------------------------------|
| ~SPC a G~ | Open an =helm= buffer to select a game |
| ~SPC a f g~ | Open an =helm= buffer to select a game |
Possible helm actions:
- run (default)

View File

@ -38,8 +38,8 @@
:commands helm-games
:init
(progn
(spacemacs/declare-prefix "aG" "games")
(spacemacs/set-leader-keys "aG" 'helm-games))))
(spacemacs/declare-prefix "afg" "games")
(spacemacs/set-leader-keys "afg" 'helm-games))))
(defun games/init-pacmacs ()
(use-package pacmacs

View File

@ -31,7 +31,7 @@ file.
| Key binding | Description |
|-------------+----------------|
| ~SPC a x~ | Open xkcd mode |
| ~SPC a f x~ | Open xkcd mode |
** Okay, what now
You can now move through the comics with these

View File

@ -20,7 +20,7 @@
(when (not (file-directory-p xkcd-cache-dir))
(make-directory xkcd-cache-dir))
(spacemacs/set-leader-keys
"ax" 'xkcd)
"afx" 'xkcd)
(evilified-state-evilify xkcd-mode xkcd-mode-map
"h" 'xkcd-prev
"j" 'xkcd-next

View File

@ -197,12 +197,14 @@ the [[https://colemak.com/][Colemak website]].
[[file:img/colemak-layout.png]]
This layer offers three flavors of Colemak bindings:
This layer offers four flavors of Colemak bindings:
- =colemak-hnei= remaps ~HJKL~ to ~HNEI~, keeping the same key location; useful
for people used to the ~HJKL~ scheme on a Qwerty keyboard.
- =colemak-neio= remaps ~HJKL~ to ~NEIO~, shifted one key to the right for
easier access.
- =colemak-jkhl= remaps ~HJKL~ to ~JKHL~, permuting the direction of the keys
- =colemak-neio-literal= remaps ~HJKL~ to ~NEIO~, shifted one key to the right for
easier access. It has easier access to new line mode (~o~).
- =colemak-neio-inverted= remaps ~HJKL~ to ~NEIO~, shifted one key to the right for
easier access. It has easier access to insert mode (~i~) (~L~, instead of ~K~).
- =colemak-jkhl= remaps ~HJKL~ to ~JKHL~, switching the direction of the keys
without disturbing any other binding.
*Note*: for technical reasons (see [[https://github.com/syl20bnr/spacemacs/pull/7178#issuecomment-249360301][GH-7178]]), when using =colemak-jkhl=, the

View File

@ -15,8 +15,8 @@
(defvar kl-layout 'dvorak
"The keyboard-layout to use. Possible values are `bepo', `dvp',
`dvorak', `workman', `neo', `colemak-neio', `colemak-hnei' and
`colemak-jkhl'.")
`dvorak', `workman', `neo', `colemak-neio-literal', `colemak-neio-inverted',
`colemak-hnei' and `colemak-jkhl'.")
(defvar kl-enabled-configurations nil
"If non nil, `keyboard-layout' will enable configurations only
@ -83,7 +83,7 @@ case.")
("j" . "n")
("h" . "r")
("k" . "t")))
(colemak-neio
(colemak-neio-literal
. (("n" . "h")
("e" . "j")
("i" . "k")
@ -91,8 +91,18 @@ case.")
;;
("h" . "n")
("j" . "e")
("k" . "i")
("l" . "o")))
("k" . "i") ;;
("l" . "o"))) ;; easier access to "New Line Mode"
(colemak-neio-inverted
. (("n" . "h")
("e" . "j")
("i" . "k")
("o" . "l")
;;
("h" . "n")
("j" . "e")
("l" . "i") ;; easier access to "Insert Mode"
("k" . "o"))) ;;
(colemak-hnei
. (("h" . "h")
("n" . "j")

View File

@ -53,8 +53,8 @@ to use Zathura:
(start-process "zathura" "*helm-bibtex-zathura*" "/usr/bin/zathura" fpath)))
#+END_SRC
More configuration options are available and are detailed in the =org-ref= and
=helm-bibtex= package documentations.
More configuration options are available and are detailed in the =org-ref=,
=helm-bibtex= and =ivy-bibtex= package documentations.
* Key bindings
In a Bib(La)TeX file, the following key bindings are added:
@ -69,6 +69,7 @@ In a Bib(La)TeX file, the following key bindings are added:
| ~SPC m i~ | Insert new entry |
| ~SPC m s~ | Sort entry |
| ~SPC m h~ | Various actions on entry |
| ~SPC m m~ | Manage bibtex library |
| ~SPC m l a~ | Lookup and add arXiv paper (don't get PDF) |
| ~SPC m l A~ | Lookup and add arXiv paper (download PDF) |
| ~SPC m l d~ | Lookup and add paper by DOI |

View File

@ -1,6 +1,6 @@
;;; packages.el --- BibTeX Layer packages file for Spacemacs.
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Joshua Ellis <josh@jpellis.me>
;; URL: https://github.com/JP-Ellis
@ -9,21 +9,37 @@
;;
;;; License: GPLv3
(setq bibtex-packages
'(
auctex
org
org-ref
markdown-mode
(helm-bibtex :requires helm)
biblio
biblio-core
))
(defconst bibtex-packages
'(
auctex
(helm-bibtex :requires helm)
(ivy-bibtex :requires ivy)
markdown-mode
org
org-ref))
(defun bibtex/post-init-auctex ()
(spacemacs/set-leader-keys-for-major-mode 'latex-mode
"ic" 'org-ref-insert-link))
(defun bibtex/init-helm-bibtex ()
(use-package helm-bibtex
:defer t
:init
(spacemacs/set-leader-keys-for-major-mode 'bibtex-mode
"m" 'helm-bibtex)))
(defun bibtex/init-ivy-bibtex ()
(use-package ivy-bibtex
:defer t
:init
(spacemacs/set-leader-keys-for-major-mode 'bibtex-mode
"m" 'ivy-bibtex)))
(defun bibtex/post-init-markdown-mode ()
(spacemacs/set-leader-keys-for-major-mode 'markdown-mode
"ic" 'org-ref-insert-link))
(defun bibtex/post-init-org ()
(spacemacs/set-leader-keys-for-major-mode 'org-mode
"ic" 'org-ref-insert-link))
@ -33,6 +49,7 @@
:defer t
:commands (org-ref-bibtex-next-entry
org-ref-bibtex-previous-entry
org-ref-insert-link
org-ref-open-in-browser
org-ref-open-bibtex-notes
org-ref-open-bibtex-pdf
@ -46,12 +63,20 @@
pubmed-insert-bibtex-from-pmid)
:init
(progn
(add-hook 'org-mode-hook (lambda () (require 'org-ref)))
(cond ((configuration-layer/layer-used-p 'helm)
(setq org-ref-completion-library 'org-ref-helm-bibtex))
((configuration-layer/layer-used-p 'ivy)
(setq org-ref-completion-library 'org-ref-ivy-cite)))
(evil-define-key 'normal bibtex-mode-map
(kbd "C-j") 'org-ref-bibtex-next-entry
(kbd "C-k") 'org-ref-bibtex-previous-entry
"gj" 'org-ref-bibtex-next-entry
"gk" 'org-ref-bibtex-previous-entry)
(spacemacs/declare-prefix-for-mode 'bibtex-mode "ml" "lookup")
(spacemacs/set-leader-keys-for-major-mode 'bibtex-mode
;; Navigation
"j" 'org-ref-bibtex-next-entry
@ -73,15 +98,3 @@
"ld" 'doi-utils-add-bibtex-entry-from-doi
"li" 'isbn-to-bibtex
"lp" 'pubmed-insert-bibtex-from-pmid))))
(defun bibtex/pre-init-org-ref ()
(add-hook 'org-mode-hook (lambda () (require 'org-ref))))
(defun bibtex/post-init-markdown-mode ()
(spacemacs/set-leader-keys-for-major-mode 'markdown-mode
"ic" 'org-ref-insert-link))
(defun bibtex/init-helm-bibtex ())
(defun bibtex/init-biblio ())
(defun bibtex/init-biblio-core ())

View File

@ -436,6 +436,7 @@ A ~[ccls]~ suffix indicates that the binding is for the indicated backend only.
| ~SPC m g D~ | diagnostics |
| ~SPC m g e~ | reparse file |
| ~SPC m g E~ | preprocess file |
| ~SPC m g f~ | find dead functions |
| ~SPC m g F~ | fixit |
| ~SPC m g G~ | guess function at point |
| ~SPC m g h~ | print class hierarchy |
@ -444,9 +445,11 @@ A ~[ccls]~ suffix indicates that the binding is for the indicated backend only.
| ~SPC m g M~ | symbol info |
| ~SPC m g O~ | goto offset |
| ~SPC m g p~ | set current project |
| ~SPC m g r~ | display reference tree at point |
| ~SPC m g R~ | rename symbol |
| ~SPC m g s~ | print source arguments |
| ~SPC m g S~ | display summary |
| ~SPC m g t~ | display include dependency tree |
| ~SPC m g T~ | taglist |
| ~SPC m g v~ | find virtuals at point |
| ~SPC m g V~ | print enum value at point |

View File

@ -50,8 +50,6 @@
(defun spacemacs//c-c++-setup-flycheck ()
"Conditionally setup C/C++ flycheck integration based on backend."
(pcase (spacemacs//c-c++-backend)
(`lsp-clangd (spacemacs//c-c++-setup-lsp-flycheck))
(`lsp-ccls (spacemacs//c-c++-setup-lsp-flycheck))
(`rtags (spacemacs//c-c++-setup-rtags-flycheck))
(`ycmd (spacemacs//c-c++-setup-ycmd-flycheck))))
@ -169,14 +167,6 @@
"Setup DAP integration."
(require 'dap-gdb-lldb))
(defun spacemacs//c-c++-setup-lsp-flycheck ()
"Setup LSP syntax checking."
(when (or (spacemacs/enable-flycheck 'c-mode)
(spacemacs/enable-flycheck 'c++-mode))
(require 'lsp-ui-flycheck)
(lsp-ui-flycheck-enable nil)
(flycheck-mode)))
;; rtags
@ -207,6 +197,7 @@
"gD" 'rtags-diagnostics
"ge" 'rtags-reparse-file
"gE" 'rtags-preprocess-file
"gf" 'rtags-find-dead-functions
"gF" 'rtags-fixit
"gG" 'rtags-guess-function-at-point
"gh" 'rtags-print-class-hierarchy
@ -215,9 +206,11 @@
"gM" 'rtags-symbol-info
"gO" 'rtags-goto-offset
"gp" 'rtags-set-current-project
"gr" 'rtags-references-tree
"gR" 'rtags-rename-symbol
"gs" 'rtags-print-source-arguments
"gS" 'rtags-display-summary
"gt" 'rtags-dependency-tree
"gT" 'rtags-taglist
"gv" 'rtags-find-virtuals-at-point
"gV" 'rtags-print-enum-value-at-point

View File

@ -28,7 +28,7 @@
- [[#quick-start-with-lein][Quick Start with lein]]
- [[#more-details][More details]]
- [[#managing-repl-connections][Managing REPL connections]]
- [[#cheatsheet][Cheatsheet]]
- [[#advanced-help][Advanced help]]
- [[#structuraly-safe-editing][Structuraly safe editing]]
- [[#key-bindings][Key bindings]]
- [[#working-with-clojure-files-barfage-slurpage--more][Working with clojure files (barfage, slurpage & more)]]
@ -67,7 +67,7 @@ and a full suite of tooling for Clojure development.
- 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
- Advanced help with [[https://github.com/clojure-emacs/helm-cider][helm-cider]]
- Structuraly safe editing using optional [[https://github.com/luxbock/evil-cleverparens][evil-cleverparens]]
- Linting via [[https://github.com/borkdude/clj-kondo][clj-kondo]] ([[https://github.com/candid82/joker][joker]] and [[https://github.com/clojure-emacs/squiggly-clojure][squiggly-clojure]] also available)
@ -398,14 +398,17 @@ multiple projects or have multiple connections opened for the same project
See REPL connections in the key bindings section for all the commands.
** Cheatsheet
This layers installs the [[https://github.com/clojure-emacs/clojure-cheatsheet][clojure-cheatsheet]] package which embeds this useful
[[https://clojure.org/api/cheatsheet][cheatsheet]] into Emacs.
** Advanced help
This layer installs the [[https://github.com/clojure-emacs/helm-cider][helm-cider]] package which provides helm integration
with cider apropos. It also embeds cider cheatsheet.
Type ~SPC m h a~ to display advanced apropos window.
Type ~SPC m h c~ to display the cheatsheet then type in some terms (space
separated) to narrow down the list. For example, try typing in sort map to see
separated) to narrow down the list. For example, try typing in "sort map" to see
some functions that deal with sorting maps.
NOTE: If helm is not used, then =cider-apropos= and =cider-cheatsheet= are used.
** Structuraly safe editing
The Clojure layer adds support for =evil-cleverparens= which allows to safely edit
lisp code by keeping the s-expressions balanced.
@ -468,7 +471,7 @@ Managing CIDER REPL connections and sessions
| Key binding | Description |
|-------------+-----------------------------|
| ~SPC m h a~ | cider apropos |
| ~SPC m h c~ | clojure cheatsheet |
| ~SPC m h c~ | cider cheatsheet |
| ~SPC m h d~ | cider clojuredocs |
| ~SPC m h h~ | cider doc |
| ~SPC m h j~ | cider javadoc |
@ -519,35 +522,36 @@ Evaluate Clojure code in the source code buffer
Use these key bindings when working directly with a REPL buffer.
Use the Evaluation key bindings when evaluating in source code buffer.
| Key binding | Description |
|---------------+----------------------------------------------------------------------------|
| ~SPC m s a~ | switch between REPL and last Clojure source code buffer (cider-repl) |
| ~SPC m s b~ | send and eval buffer in REPL |
| ~SPC m s B~ | send and eval buffer and switch to REPL in =insert state= |
| ~SPC m s c j~ | connect to a running Clojure REPL (cider-connect-clj) |
| ~SPC m s c m~ | connect to a running Clojure & ClojureScript REPL (cider-connect-clj&cljs) |
| ~SPC m s c s~ | connect to a running ClojureScript REPL (cider-connect-cljs) |
| ~SPC m s e~ | send and eval last sexp in REPL |
| ~SPC m s E~ | send and eval last sexp and switch to REPL in =insert state= |
| ~SPC m s f~ | send and eval function in REPL |
| ~SPC m s F~ | send and eval function and switch to REPL in =insert state= |
| ~SPC m s i~ | start a REPL - prompt for REPL type (sesman-start) |
| ~SPC m s j j~ | start Clojure REPL (=cider-jack-in-clj=) |
| ~SPC m s j m~ | start Clojure REPL (=cider-jack-in-clj&cljs=) |
| ~SPC m s j s~ | start ClojureScript REPL (=cider-jack-in-cljs=) |
| ~SPC m l~ | clear REPL buffer (cider-repl-clear-buffer) |
| ~SPC m L~ | clear and switch to REPL buffer (cider-find-and-clear-repl-output) |
| ~SPC m s n~ | send and eval ns form in REPL |
| ~SPC m s N~ | send and eval ns form and switch to REPL in =insert state= |
| ~SPC m s o~ | switch to other repl instance (cider-repl-switch-to-other) |
| ~SPC m s q n~ | reload namespace in REPL (cider-ns-reload) |
| ~SPC m s q N~ | reload all namespace in REPL (cider-ns-reload-all) |
| ~SPC m s q q~ | quit REPL (cider-quit) |
| ~SPC m s q r~ | restart REPL (cider-restart) |
| ~SPC m s r~ | send and eval region in REPL |
| ~SPC m s R~ | send and eval region and switch to REPL in =insert state= |
| ~SPC m e u~ | require Clojure utils into current namespace - i.e. =doc= =source= |
| ~SPC m s p~ | print last sexp (clojure interaction mode only) |
| Key binding | Description |
|-------------------+----------------------------------------------------------------------------|
| ~SPC m s a~ | switch between REPL and last Clojure source code buffer (cider-repl) |
| ~SPC m s b~ | send and eval buffer in REPL |
| ~SPC m s B~ | send and eval buffer and switch to REPL in =insert state= |
| ~SPC u SPC m s B~ | same as ~SPC m s B~ including switching to the buffer namespace in REPL |
| ~SPC m s c j~ | connect to a running Clojure REPL (cider-connect-clj) |
| ~SPC m s c m~ | connect to a running Clojure & ClojureScript REPL (cider-connect-clj&cljs) |
| ~SPC m s c s~ | connect to a running ClojureScript REPL (cider-connect-cljs) |
| ~SPC m s e~ | send and eval last sexp in REPL |
| ~SPC m s E~ | send and eval last sexp and switch to REPL in =insert state= |
| ~SPC m s f~ | send and eval function in REPL |
| ~SPC m s F~ | send and eval function and switch to REPL in =insert state= |
| ~SPC m s i~ | start a REPL - prompt for REPL type (sesman-start) |
| ~SPC m s j j~ | start Clojure REPL (=cider-jack-in-clj=) |
| ~SPC m s j m~ | start Clojure REPL (=cider-jack-in-clj&cljs=) |
| ~SPC m s j s~ | start ClojureScript REPL (=cider-jack-in-cljs=) |
| ~SPC m l~ | clear REPL buffer (cider-repl-clear-buffer) |
| ~SPC m L~ | clear and switch to REPL buffer (cider-find-and-clear-repl-output) |
| ~SPC m s n~ | send and eval ns form in REPL |
| ~SPC m s N~ | send and eval ns form and switch to REPL in =insert state= |
| ~SPC m s o~ | switch to other repl instance (cider-repl-switch-to-other) |
| ~SPC m s q n~ | reload namespace in REPL (cider-ns-reload) |
| ~SPC m s q N~ | reload all namespace in REPL (cider-ns-reload-all) |
| ~SPC m s q q~ | quit REPL (cider-quit) |
| ~SPC m s q r~ | restart REPL (cider-restart) |
| ~SPC m s r~ | send and eval region in REPL |
| ~SPC m s R~ | send and eval region and switch to REPL in =insert state= |
| ~SPC m e u~ | require Clojure utils into current namespace - i.e. =doc= =source= |
| ~SPC m s p~ | print last sexp (clojure interaction mode only) |
*** Tests
@ -604,6 +608,8 @@ The following refactoring key bindings are enabled by default in clojure-mode:
| Key binding | Description |
|---------------+----------------------------------------------------------------|
| ~SPC m r a n~ | insert a namespace form at the beginning of the buffer |
| ~SPC m r a N~ | insert a namespace form at point |
| ~SPC m r c i~ | cycle between if and if-not forms |
| ~SPC m r c p~ | cycle privacy of defn and def forms |
| ~SPC m r c (~ | convert coll to list |
@ -611,6 +617,7 @@ The following refactoring key bindings are enabled by default in clojure-mode:
| ~SPC m r c {~ | convert coll to map |
| ~SPC m r c #~ | convert coll to set |
| ~SPC m r c [~ | convert coll to vector |
| ~SPC m r s n~ | sort namespaces inside the ns form |
| ~SPC m r t f~ | rewrite the following form to use the -> (thread first) macro. |
| ~SPC m r t l~ | rewrite the following form to use the ->> (thread last) macro. |
| ~SPC m r t h~ | thread another form into the surrounding threading macro |

View File

@ -110,12 +110,12 @@ the focus."
(cider-insert-ns-form-in-repl t)
(evil-insert-state))
(defun spacemacs/cider-send-buffer-in-repl-and-focus ()
(defun spacemacs/cider-send-buffer-in-repl-and-focus (&optional set-namespace)
"Send the current buffer in the REPL and switch to the REPL in
`insert state'."
(interactive)
`insert state'. When set-namespace, also change into the namespace of the buffer."
(interactive "P")
(cider-load-buffer)
(cider-switch-to-repl-buffer)
(cider-switch-to-repl-buffer set-namespace)
(evil-insert-state))
(defun spacemacs/cider-test-run-focused-test ()

View File

@ -14,6 +14,7 @@
cider
cider-eval-sexp-fu
(clj-refactor :toggle clojure-enable-clj-refactor)
(helm-cider :toggle (configuration-layer/layer-used-p 'helm))
clojure-mode
(clojure-snippets :toggle (configuration-layer/layer-used-p 'auto-completion))
company
@ -321,6 +322,20 @@
(spacemacs/set-leader-keys-for-major-mode m
(concat "r" binding) func))))))))
(defun clojure/init-helm-cider ()
(use-package helm-cider
:defer t
:init
(progn
(add-hook 'clojure-mode-hook 'helm-cider-mode)
(setq sayid--key-binding-prefixes
'(("mhc" . "helm-cider-cheatsheet")))
(spacemacs|forall-clojure-modes m
(mapc (lambda (x) (spacemacs/declare-prefix-for-mode
m (car x) (cdr x)))
sayid--key-binding-prefixes)
(spacemacs/set-leader-keys-for-major-mode m
"hc" 'helm-cider-cheatsheet)))))
(defun clojure/init-clojure-mode ()
(use-package clojure-mode
@ -352,6 +367,8 @@
clj-refactor--key-binding-prefixes)
(spacemacs/set-leader-keys-for-major-mode m
"=l" 'clojure-align
"ran" 'clojure-insert-ns-form
"raN" 'clojure-insert-ns-form-at-point
"rci" 'clojure-cycle-if
"rcp" 'clojure-cycle-privacy
"rc#" 'clojure-convert-collection-to-set
@ -360,6 +377,7 @@
"rc[" 'clojure-convert-collection-to-vector
"rc{" 'clojure-convert-collection-to-map
"rc:" 'clojure-toggle-keyword-string
"rsn" 'clojure-sort-ns
"rtf" 'clojure-thread-first-all
"rth" 'clojure-thread
"rtl" 'clojure-thread-last-all

View File

@ -13,8 +13,13 @@
- [[#macos-and-windows-installers][macOS and Windows installers]]
- [[#universal-installer-using-npm][Universal installer using npm]]
- [[#source-code][Source code]]
- [[#elm-oracle][elm-oracle]]
- [[#elm-format][elm-format]]
- [[#elm-test][elm-test]]
- [[#configuration][Configuration]]
- [[#choosing-a-backend][Choosing a backend]]
- [[#company-elm][Company-elm]]
- [[#elm-oracle][elm-oracle]]
- [[#lsp][LSP]]
- [[#basic-usage-tips][Basic usage tips]]
- [[#compilation][Compilation]]
- [[#reactor][Reactor]]
@ -42,8 +47,7 @@ It relies on [[https://github.com/jcollard/elm-mode][elm-mode]] and [[https://gi
** Features:
- Syntax highlighting.
- Intelligent indentation
- Auto-completion integration for company (default) or auto-complete modes,
with using elm-oracle
- Auto-completion integration for company (default) or auto-complete modes
- Syntax checking support using flycheck
- Integration with elm-make
- Integration with elm-repl
@ -88,7 +92,55 @@ run, see this issue [[https://github.com/kevva/elm-bin/issues/28][https://github
To build from source, see instructions here:
[[https://github.com/elm-lang/elm-platform][https://github.com/elm-lang/elm-platform]]
** elm-oracle
** elm-format
=elm-format= can be used to format elm code according to a standard set of
rules.
To install =elm-format= run below command:
#+BEGIN_SRC sh
npm install --global elm-format
#+END_SRC
If this does not work for you please check [[https://github.com/avh4/elm-format][here]].
Also, note that if you use homebrew to install =elm-format= the installed exe
has a version suffix, the installed command name can be set in your
=~/spacemacs=:
#+BEGIN_SRC emacs-lisp
(elm :variables
elm-format-command "elm-format-0.17")
#+END_SRC
** elm-test
=elm-test= can be used to run unit tests.
To install =elm-test= run below command:
#+BEGIN_SRC sh
npm install --global elm-test
#+END_SRC
* Configuration
All layer configurations can be done by setting layer variables in your dotfile.
No custom user config lines are necessary
** Choosing a backend
This layer provides two alternative backends to choose from.
*** Company-elm
This is the default choice if nothing is set and no lsp layer
is loaded in your dotfile. This mode only provides very
limited IDE capabilities. Used best if only small programs
are edited. To set explicitly set the following in your
dotfile:
#+BEGIN_SRC emacs-lisp
(elm :variables elm-backend 'company-elm)
#+END_SRC
**** elm-oracle
=elm-oracle= can be used to show type signatures and docs for tokens under the
cursor and provide support for auto-completion, but it is not part of the
standard elm-platform.
@ -103,22 +155,33 @@ run this command:
npm install -g elm-oracle
#+END_SRC
** elm-format
=elm-format= can be used to format elm code according to a standard set of
rules.
*** LSP
For proper IDE support this backend should be used. It is
based on an external server which will be started automatically
by emacs, once an elm file is opened. The key bindings are
the same for all lsp modes so if you are already familiar with
one you should be able to work the same in all modes.
To install =elm-format= follow the instructions for the version of elm
installed: [[https://github.com/avh4/elm-format]]
Also, note that if you use homebrew to install =elm-format= the installed exe
has a version suffix, the installed command name can be set in your
=~/spacemacs=:
To set explicitly do the following in your dotfile:
#+BEGIN_SRC emacs-lisp
(elm :variables
elm-format-command "elm-format-0.17")
elm-backend 'lsp)
#+END_SRC
For this to work you will also need to install
the lsp server and separate dependencies with below
command:
#+BEGIN_SRC sh
npm install -g elm-analysis @elm-tooling/elm-language-server
#+END_SRC
NOTE: Key bindings for LSP are defined in the
LSP layer. Also it is advisable to have a look
at the autocomplete layer for an optimal
intellisense config for LSP.
* Basic usage tips
** Compilation
To control the name of the compiled JavaScript file, use ~SPC m c B~ instead of

View File

@ -0,0 +1,19 @@
;;; config.el --- Elm Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Maximilian Wolff <smile13241324@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
;; variables
(spacemacs|define-jump-handlers elm-mode)
(defvar elm-backend nil
"The backend to use for IDE features.
Possible values are `lsp' and `company-elm'.
If `nil' then 'company-elm` is the default backend unless `lsp' layer is used")

View File

@ -1,6 +1,6 @@
;;; funcs.el --- Elm Layer functions File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
@ -9,9 +9,41 @@
;;
;;; License: GPLv3
(defun spacemacs//elm-backend ()
"Returns selected backend."
(if elm-backend
elm-backend
(cond
((configuration-layer/layer-used-p 'lsp) 'lsp)
(t 'company-elm))))
(defun spacemacs//elm-setup-company ()
"Conditionally setup company based on backend."
(pcase (spacemacs//elm-backend)
;; Activate lsp company explicitly to activate
;; standard backends as well
(`lsp (spacemacs|add-company-backends
:backends company-capf
:modes elm-mode))
(`company-elm (spacemacs|add-company-backends
:backends elm-company
:modes elm-mode))))
(defun spacemacs//elm-setup-backend ()
"Conditionally setup elm backend."
(spacemacs/init-elm-mode)
(pcase (spacemacs//elm-backend)
(`lsp (lsp))
(`company-elm (elm-oracle-setup-completion))))
;; elm-mode
(defun spacemacs/init-elm-mode ()
"Disable electric-indent-mode and let indentation cycling feature work"
(if (fboundp 'electric-indent-local-mode)
(electric-indent-local-mode -1)))
(defun spacemacs/elm-compile-buffer-output ()
(interactive)
(let* ((fname (format "%s.js" (downcase (file-name-base (buffer-file-name))))))

View File

@ -0,0 +1,14 @@
;;; layers.el --- Elm Layer layers File for Spacemacs
;;
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Maximilian Wolff <smile13241324@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
(when (and (boundp 'elm-backend)
(eq elm-backend 'lsp))
(configuration-layer/declare-layer-dependencies '(lsp)))

View File

@ -1,6 +1,6 @@
;;; packages.el --- elm Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
@ -9,23 +9,21 @@
;;
;;; License: GPLv3
(setq elm-packages
'(
company
elm-mode
elm-test-runner
flycheck
(flycheck-elm :requires flycheck)
popwin
smartparens
))
(defconst elm-packages
'(
company
elm-mode
elm-test-runner
flycheck
(flycheck-elm :requires flycheck)
popwin
smartparens))
(defun elm/post-init-company ()
(spacemacs|add-company-backends :backends company-elm :modes elm-mode)
(add-hook 'elm-mode-hook 'elm-oracle-setup-completion))
(spacemacs//elm-setup-company))
(defun elm/post-init-flycheck ()
(add-hook 'elm-mode-hook 'flycheck-mode))
(spacemacs/enable-flycheck 'elm-mode))
(defun elm/init-flycheck-elm ()
"Initialize flycheck-elm"
@ -37,28 +35,31 @@
"Initialize elm-mode"
(use-package elm-mode
:mode ("\\.elm\\'" . elm-mode)
:defer t
:init
(progn
(spacemacs/register-repl 'elm-mode 'elm-repl-load "elm")
(defun spacemacs/init-elm-mode ()
"Disable electric-indent-mode and let indentation cycling feature work"
(if (fboundp 'electric-indent-local-mode)
(electric-indent-local-mode -1)))
(add-hook 'elm-mode-hook 'spacemacs/init-elm-mode))
(add-hook 'elm-mode-hook 'spacemacs//elm-setup-backend))
:config
(progn
;; Bind non-lsp keys
(when (eq (spacemacs//elm-backend) 'company-elm)
(spacemacs/set-leader-keys-for-major-mode 'elm-mode
;; format
"=b" 'elm-format-buffer
;; oracle
"hh" 'elm-oracle-doc-at-point
"ht" 'elm-oracle-type-at-point)
;; Bind prefixes
(dolist (x '(("m=" . "format")
("mh" . "help")
("mg" . "goto")
("mr" . "refactor")))
(spacemacs/declare-prefix-for-mode 'elm-mode (car x) (cdr x))))
;; Bind general keys
(spacemacs/set-leader-keys-for-major-mode 'elm-mode
;; format
"=b" 'elm-mode-format-buffer
;; make
"cb" 'elm-compile-buffer
"cB" 'spacemacs/elm-compile-buffer-output
"cm" 'elm-compile-main
;; oracle
"hh" 'elm-oracle-doc-at-point
"ht" 'elm-oracle-type-at-point
;; refactoring
"ri" 'elm-sort-imports
;; repl
@ -68,6 +69,10 @@
"sF" 'spacemacs/elm-repl-push-decl-focus
"sr" 'elm-repl-push
"sR" 'spacemacs/elm-repl-push-focus
;; make
"cb" 'elm-compile-buffer
"cB" 'spacemacs/elm-compile-buffer-output
"cm" 'elm-compile-main
;; reactor
"Rn" 'elm-preview-buffer
"Rm" 'elm-preview-main
@ -76,12 +81,10 @@
"pc" 'elm-package-catalog
"pd" 'elm-documentation-lookup)
(dolist (x '(("m=" . "format")
;; Bind prefixes
(dolist (x '(("mp" . "package")
("mc" . "compile")
("mh" . "help")
("mp" . "package")
("mR" . "reactor")
("mr" . "refactor")
("ms" . "repl")))
(spacemacs/declare-prefix-for-mode 'elm-mode (car x) (cdr x)))
@ -105,8 +108,7 @@
"tp" 'elm-test-runner-run-project
"tr" 'elm-test-runner-rerun
"tw" 'elm-test-runner-watch
"t TAB" 'elm-test-runner-toggle-test-and-target
))))
"t TAB" 'elm-test-runner-toggle-test-and-target))))
(defun elm/pre-init-popwin ()
(spacemacs|use-package-add-hook popwin

View File

@ -224,12 +224,61 @@ To start debugging:
In =edebug-mode= (=*Debugging*= is displayed in the minor modes segment of the
mode line)
TODO
| Key binding | Description |
|-------------+----------------------------|
| ~s~ | step |
| ~i~ | step in |
| ~o~ | step out |
| ~n~ | next |
| ~f~ | forward-sexp |
| ~H~ | goto here |
| ~I~ | instrument callee |
| ~g o~ | go |
| ~g O~ | go nonstop |
| ~c~ | continue |
| ~C~ | fast continue |
| ~t~ | trace |
| ~T~ | fast trace |
| ~q~ | quit |
| ~Q~ | quit nonstop |
| ~Q~ | quit nonstop |
| ~a~ | abort recursive edit |
| ~S~ | stop |
| ~b~ | set breakpoint |
| ~u~ | unset breakpoint |
| ~B~ | next breakpoint |
| ~x~ | set conditional breakpoint |
| ~r~ | previous result |
| ~e~ | evaluate expression |
| ~C-x C-e~ | evaluate last sexp |
| ~W W~ | where |
| ~g ?~ | help |
| ~d~ | backtrace |
In =debugger-mode= (=Debugger= is displayed in major mode segment of the mode
line)
TODO
| Key binding | Description |
|-------------+-------------------|
| ~<tab>~ | forward |
| ~S-<tab>~ | backward |
| ~RET~ | help follow |
| ~SPC~ | next |
| ~R~ | record expression |
| ~c~ | continue |
| ~d~ | step through |
| ~x~ | eval expression |
| ~E~ | eval expression |
| ~J~ | jump |
| ~g l~ | list functions |
| ~g b~ | frame |
| ~r~ | return value |
| ~u~ | frame clear |
| ~L~ | toggle locals |
| ~p~ | toggle locals |
| ~q~ | quit |
| ~Z Q~ | quit |
| ~Z Z~ | quit |
** Refactoring with emr

View File

@ -70,10 +70,7 @@
:init
(progn
(setq ess-use-company nil
;; Follow Hadley Wickham's R style guide
ess-first-continued-statement-offset 2
ess-continued-statement-offset 0
ess-expression-offset 2
ess-offset-continued 'straight
ess-nuke-trailing-whitespace-p t
ess-default-style 'DEFAULT)

View File

@ -62,7 +62,7 @@
;; golangci-lint errors won't be reported
(when go-use-golangci-lint
(message "[go] Setting lsp-diagnostic-package :none to enable golangci-lint support.")
(setq-local lsp-diagnostic-package :none))
(setq-local lsp-diagnostic-provider :none))
(lsp))
(message "`lsp' layer is not installed, please add `lsp' layer to your dotfile.")))
@ -125,6 +125,7 @@
(interactive)
(if (string-match "_test\\.go" buffer-file-name)
(save-excursion
(move-end-of-line nil)
(re-search-backward "^func[ ]+\\(([[:alnum:]]*?[ ]?[*]?\\([[:alnum:]]+\\))[ ]+\\)?\\(Test[[:alnum:]_]+\\)(.*)")
(spacemacs/go-run-tests
(cond (go-use-testify-for-testing (concat "-run='Test" (match-string-no-properties 2) "' -testify.m='" (match-string-no-properties 3) "'"))

View File

@ -185,6 +185,7 @@
"rn" 'godoctor-rename
"rt" 'godoctor-toggle)))
(defun go/post-init-popwin ()
(push (cons go-test-buffer-name '(:dedicated t :position bottom :stick t :noselect t :height 0.4))
popwin:special-display-config))
(defun go/pre-init-popwin ()
(spacemacs|use-package-add-hook popwin
:post-config
(push (cons go-test-buffer-name '(:dedicated t :position bottom :stick t :noselect t :height 0.4)) popwin:special-display-config)))

View File

@ -8,6 +8,10 @@
- [[#description][Description]]
- [[#features][Features:]]
- [[#install][Install]]
- [[#configuration][Configuration]]
- [[#choosing-a-backend][Choosing a backend]]
- [[#company-groovy][Company-groovy]]
- [[#lsp][LSP]]
- [[#key-bindings][Key bindings]]
- [[#imports][Imports]]
- [[#repl][REPL]]
@ -16,15 +20,60 @@
This layer supports [[http://www.groovy-lang.org/][Groovy]] development in Spacemacs.
** Features:
- Basic dabbrev auto-completion with company
- Auto-completion
- Syntax-checking
- Auto-generate imports with [[https://github.com/mbezjak/emacs-groovy-imports][groovy-imports]]
- Groovy REPL integration
- Syntax highlighting
* Install
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
add =groovy= to the existing =dotspacemacs-configuration-layers= list in this
file.
* Configuration
All layer configurations can be done by setting layer variables in your dotfile.
No custom user config lines are necessary
** Choosing a backend
This layer provides two alternative backends to choose from.
*** Company-groovy
This is the default choice if nothing is set and no lsp layer
is loaded in your dotfile. This mode only provides very
limited IDE capabilities. Used best if only small scripts
are edited. To set explicitly set the following in your
dotfile:
#+BEGIN_SRC emacs-lisp
(groovy :variables groovy-backend 'company-groovy)
#+END_SRC
*** LSP
For proper IDE support this backend should be used. It is
based on an external server which will be started automatically
by emacs, once a groovy file is opened. The key bindings are
the same for all lsp modes so if you are already familiar with
one you should be able to work the same in all modes.
To set explicitly do the following in your dotfile:
#+BEGIN_SRC emacs-lisp
(groovy :variables
groovy-backend 'lsp
groovy-lsp-jar-path "path/to/groovy/lsp/jar.jar")
#+END_SRC
For this to work you will also need to obtain
the latest version of the lsp server from [[https://github.com/prominic/groovy-language-server][here]].
The path to the server jar must be given in the layer
variable =groovy-lsp-jar-path=.
NOTE: Key bindings for LSP are defined in the
LSP layer. Also it is advisable to have a look
at the autocomplete layer for an optimal
intellisense config for LSP.
* Key bindings
** Imports

View File

@ -0,0 +1,20 @@
;;; config.el --- Groovy layer configuration File for Spacemacs
;;
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Maximilian Wolff <smile13241324@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
;; Variables
(defvar groovy-backend nil
"The backend to use for IDE features.
Possible values are `lsp' and `company-groovy'.
If `nil' then 'company-groovy` is the default backend unless `lsp' layer is used")
(defvar groovy-lsp-jar-path "~/groovy-lsp-all.jar"
"The path to the lsp jar file")

View File

@ -1,6 +1,6 @@
;;; funcs.el --- Groovy functions File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
@ -9,6 +9,30 @@
;;
;;; License: GPLv3
(defun spacemacs//groovy-backend ()
"Return selected backend."
(if groovy-backend
groovy-backend
(cond
((configuration-layer/layer-used-p 'lsp) 'lsp)
(t 'company-groovy))))
(defun spacemacs//groovy-setup-company ()
"Conditionally setup company based on backend."
(pcase (spacemacs//groovy-backend)
;; Activate lsp company explicitly to activate
;; standard backends as well
(`lsp (spacemacs|add-company-backends
:backends company-capf
:modes groovy-mode))
(`company-groovy (spacemacs|add-company-backends
:modes groovy-mode))))
(defun spacemacs//groovy-setup-backend ()
"Conditionally setup groovy backend."
(pcase (spacemacs//groovy-backend)
(`lsp (lsp))))
;; REPL

View File

@ -0,0 +1,14 @@
;;; layers.el --- Groovy Layer layers File for Spacemacs
;;
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Maximilian Wolff <smile13241324@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
(when (and (boundp 'groovy-backend)
(eq groovy-backend 'lsp))
(configuration-layer/declare-layer-dependencies '(lsp)))

View File

@ -1,6 +1,6 @@
;;; packages.el --- Groovy Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
@ -9,16 +9,18 @@
;;
;;; License: GPLv3
(setq groovy-packages
'(
company
groovy-imports
groovy-mode
org
))
(defconst groovy-packages
'(
company
groovy-imports
groovy-mode
org))
(defun groovy/post-init-company ()
(spacemacs|add-company-backends :modes groovy-mode))
(spacemacs//groovy-setup-company))
(defun groovy/post-init-flycheck ()
(spacemacs/enable-flycheck 'groovy-mode))
(defun groovy/init-groovy-imports ()
(use-package groovy-imports
@ -34,6 +36,7 @@
:defer t
:init
(progn
(setq lsp-groovy-server-file groovy-lsp-jar-path)
(spacemacs/declare-prefix-for-mode 'groovy-mode "ms" "REPL")
(spacemacs/set-leader-keys-for-major-mode 'groovy-mode
"'" 'run-groovy
@ -43,7 +46,8 @@
"sf" 'groovy-send-definition
"si" 'run-groovy
"sR" 'spacemacs/groovy-send-region-switch
"sr" 'groovy-send-region))))
"sr" 'groovy-send-region)
(add-hook 'groovy-mode-hook #'spacemacs//groovy-setup-backend))))
(defun groovy/pre-init-org ()
(spacemacs|use-package-add-hook org

View File

@ -12,10 +12,7 @@
- [[#dependencies][Dependencies]]
- [[#setup-path][Setup PATH]]
- [[#choosing-a-backend][Choosing a backend]]
- [[#company-ghci][=company-ghci=]]
- [[#intero][=intero=]]
- [[#dante][=dante=]]
- [[#ghc-mod][=ghc-mod=]]
- [[#lsp][=lsp=]]
- [[#optional-extras][Optional extras]]
- [[#structured-haskell-mode][structured-haskell-mode]]
@ -25,44 +22,34 @@
- [[#debug][Debug]]
- [[#debug-buffer][Debug Buffer]]
- [[#repl][REPL]]
- [[#intero-repl][Intero REPL]]
- [[#cabal-commands][Cabal commands]]
- [[#cabal-files][Cabal files]]
- [[#refactor][Refactor]]
- [[#ghc-mod-1][Ghc-mod]]
- [[#insert-template][Insert template]]
- [[#intero-1][Intero]]
- [[#syntax-checking][Syntax checking]]
- [[#flycheck][Flycheck]]
- [[#hlint][HLint]]
- [[#ghc-mod-2][ghc-mod]]
- [[#interactive-haskell-mode][Interactive haskell-mode]]
- [[#flymake][Flymake]]
- [[#troubleshooting][Troubleshooting]]
- [[#faq][FAQ]]
- [[#the-repl-doesnt-work][The REPL doesn't work]]
- [[#the-repl-is-stuck][The REPL is stuck]]
- [[#i-am-using-stack-and-ghc-mod-but-ghc-mod-doesnt-work][I am using =stack= and =ghc-mod=, but =ghc-mod= doesn't work]]
- [[#ghc-mod-doesnt-work][=ghc-mod= doesn't work]]
- [[#indentation-doesnt-reset-when-pressing-return-after-an-empty-line][Indentation doesn't reset when pressing return after an empty line]]
- [[#flycheck-displays-hlint-warnings-but-not-errors][Flycheck displays HLint warnings but not errors]]
- [[#hlint-fails-with-parse-error][HLint fails with parse error]]
- [[#i-can-see-highlighted-errors-but-they-dont-appear-in-the-error-list][I can see highlighted errors but they don't appear in the error list]]
- [[#flycheck-doesnt-work][Flycheck doesn't work]]
- [[#flycheck-doesnt-work-with-stack][Flycheck doesn't work with =stack=]]
- [[#the-stack-build-directory-is-wrong][The =stack= build directory is wrong]]
- [[#the-project-root-directory-is-not-set-properly][The Project root directory is not set properly]]
- [[#haskell-mode-commands-dont-work][haskell-mode commands don't work]]
- [[#ghc-mod-and-haskell-mode-commands-overlap-how-do-i-know-which-command-belongs-to-what][=ghc-mod= and =haskell-mode= commands overlap. How do I know which command belongs to what?]]
- [[#some-commands-start-with-ghc--and-some-with-haskell--what-does-that-mean][Some commands start with =ghc-= and some with =haskell-=. What does that mean?]]
- [[#why-doesnt-the-hlint-flycheck-checker-work-when-the-intero-backend-is-enabled][Why doesn't the HLint Flycheck checker work when the Intero backend is enabled?]]
* Description
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=).
- auto-completion with one of the selected backends (=dante= or =lsp=).
*This layer is under construction, it needs your contributions and bug reports.*
@ -79,8 +66,6 @@ This layer requires some [[https://www.haskell.org/cabal/][cabal]] packages:
- =stylish-haskell= (optional for =haskell-mode=)
- =hasktags= (optional)
- =hoogle= (optional for =haskell-mode= and =helm-hoogle=)
- =ghc-mod= (optional for completion)
- =intero= (optional for completion)
To install them, use the following command (or the =stack= equivalent):
@ -104,20 +89,22 @@ For information about setting up =$PATH=, check out the corresponding section in
the FAQ (~SPC h SPC $PATH RET~).
** Choosing a backend
To choose a default backend set the layer variable =haskell-completion-backend=:
First, ensure that you have =auto-completion= layer enabled.
#+BEGIN_SRC elisp
(haskell :variables haskell-completion-backend 'ghci)
To choose a haskell backend, set the haskell layer variable =haskell-completion-backend=:
#+BEGIN_SRC emacs-lisp
(haskell :variables haskell-completion-backend 'dante)
#+END_SRC
Note that in order to enable completion, you'll have to enable the
=auto-completion= layer as well.
Supported values for =haskell-completion-backend= are =dante= and =lsp=.
Alternatively the =lsp= backend will be automatically chosen if the layer =lsp=
is used and you did not specify any value for =haskell-completion-backend=.
If you haven't specified any value for =haskell-completion-backend=,
=dante= will be used as default backend, unless the layer =lsp= is enabled,
in which case =lsp= is used as default backend.
Backend can be chosen on a per project basis using directory local variables
(files named =.dir-locals.el= at the root of a project), an example to use the
(files named =.dir-locals.el= at the root of a project). An example of =.dir-locals.el= to use the
=lsp= backend:
#+BEGIN_SRC elisp
@ -129,48 +116,19 @@ Backend can be chosen on a per project basis using directory local variables
*Note:* you can easily add a directory local variable with ~SPC f v d~.
Supported values for =haskell-completion-backend= arer =intero=, =dante=,
=ghci=, =ghc-mod=, and =lsp=. =ghci= (=company-ghci=) is used by default unless
the layer =lsp= is used. =ghci= is the default backend because it doesn't
require any dependencies, and it works with both =stack= and pure =cabal=
projects.
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers
'(auto-completion
(haskell :variables haskell-completion-backend 'intero)))
#+END_SRC
*** =company-ghci=
[[https://github.com/juiko/company-ghci][company-ghci]] communicates directly with =ghci=, in order to provide completion.
To use it, you have to call =haskell-process-load-or-reload= (=SPC s b=).
*** =intero=
=Intero= only works for =stack= users. You can install the =intero= executable
manually, by calling =stack install intero=, but this step is optional as
=Intero= installs itself.
*** =dante=
=dante= works for =cabal=, =nix=, =sytx=, and =stack= users.
[[https://github.com/jyp/dante][Dante]] is a fork of Intero mode which aims exclusively at providing a convenient frontend to GHCi.
It brings features like syntax checking, auto completion, hlint suggestions, automatic error fixing, info at point, definition and use sites.
=dante= works for =cabal=, =nix=, =sytx=, and =stack= users and requires no additional setup.
=dante= requires Emacs 25.
*** =ghc-mod=
[[http://www.mew.org/~kazu/proj/ghc-mod/][ghc-mod]] enhances =haskell-mode=, with for example code completion, templates,
case-splitting and much more. In order to use it, you need to install the
executable with =cabal install ghc-mod= (or the =stack= equivalent).
=Stack= users also should make sure that =dist/setup-config= doesn't exist in
the project root. As it will confuse =ghc-mod=. For more troubleshooting,
checkout this [[https://github.com/DanielG/ghc-mod/wiki#user-content-known-issues-related-to-stack][document]].
Also note that =ghc-mod= only works with the =GHC= version that was used to
build =ghc-mod=. You can check which version was used by calling
=ghc-mod --version=.
*** =lsp=
=lsp= requires an appropriate installation of =hie= the official Haskell language server to work properly.
=hie= is like an improved version of =ghc-mod= it is best installed by building it locally as it requires
that the same GHC version has been used to compile your code as has been used for =hie=.
=lsp= requires an appropriate installation of =hie=, the official Haskell language server, to work properly.
=hie= is best installed by building it locally as it requires that the same GHC version has been used to
compile your code as has been used for =hie=.
To install it please refer to the official installation instructions [[https://github.com/haskell/haskell-ide-engine#installation][here]].
@ -178,6 +136,9 @@ Enabling the =lsp= backend requires the =lsp= layer to be enabled, and provides
all the additional =lsp-mode= key bindings. As such it is more of a full backend than just
a completion backend.
Alternatively, you can use [[https://github.com/haskell/haskell-language-server][Haskell Language Server]] instead of =hie= (check their docs for installation details).
Haskell Language Server is meant to completely replace =hie= but it is still in early stages of development.
** Optional extras
The Haskell layer supports some extra features, which can be enabled through the
layer variables.
@ -277,18 +238,6 @@ REPL commands are prefixed by ~SPC m s~:
| ~C-k~ | switch to previous history item |
| ~C-l~ | clear the REPL |
** Intero REPL
Intero REPL commands are prefixed by ~SPC m i~:
| Key binding | Description |
|-------------+---------------------------------------------------------------|
| ~SPC m i c~ | change directory in the backend process |
| ~SPC m i d~ | reload the module =DevelMain= and then run =DevelMain.update= |
| ~SPC m i k~ | stop the current worker process and kill its associated |
| ~SPC m i l~ | list hidden process buffers created by =intero= |
| ~SPC m i r~ | restart the process with the same configuration as before |
| ~SPC m i t~ | set the targets to use for stack =ghci= |
** Cabal commands
Cabal commands are prefixed by ~SPC m c~:
@ -327,85 +276,38 @@ Refactor commands are prefixed by ~SPC m r~:
| ~SPC m r b~ | apply all HLint suggestions in the current buffer |
| ~SPC m r i~ | reformat imports from anywhere in the buffer |
| ~SPC m r r~ | apply the HLint suggestion under the cursor |
| ~SPC m r s~ | list all Intero suggestions |
Only some of the HLint suggestions can be applied.
To apply the Intero suggestions, press `C-c C-c` when the window is open.
Both the HLint and Intero suggestions appear in the same window.
** Ghc-mod
These commands are only available when ghc-mod is enabled.
For more info, see
[[http://www.mew.org/~kazu/proj/ghc-mod/en/emacs.html]]
ghc-mod commands are prefixed by ~SPC m m~:
| Key binding | Description |
|-------------+-------------------------------------------|
| ~SPC t~ | insert template |
| ~SPC m m u~ | insert template with holes |
| ~SPC m m a~ | select one of possible cases (=ghc-auto=) |
| ~SPC m m f~ | replace a hole (=ghc-refine=) |
| ~SPC m m e~ | expand template haskell |
| ~SPC m m n~ | go to next type hole |
| ~SPC m m p~ | go to previous type hole |
| ~SPC m m >~ | make indent deeper |
| ~SPC m m <~ | make indent shallower |
*** Insert template
~SPC m m t~ inserts a template. What this means is that in the beginning of a
buffer, =module Foo where= is inserted. On a function without signature, the
inferred type is inserted. On a symbol =foo= without definition, =foo =
undefined= is inserted or a proper module is imported. ~SPC m m u~ inserts a
hole in this case. On a variable, the case is split. When checking with hlint,
the original code is replaced with hlint's suggestion if possible.
** Intero
This command is only available when intero is enabled.
This top-level command is prefixed by ~SPC m~:
| Key binding | Description |
|-------------+------------------------|
| ~SPC m g b~ | return from definition |
* Syntax checking
At the moment there are four components, which can check the syntax and indicate
At the moment there are three components, which can indicate
errors and warnings in the code. Those components are:
- flycheck
- dante (via flycheck)
- hlint (via flycheck)
- ghc-mod
- haskell-mode interactive
Since all of these components can be active at the same time, it can be tricky to
know which component is displaying which message, especially when they disagree,
or if one isn't working. Only flycheck errors (ghc and hlint) are displayed in
or if one isn't working. Only flycheck errors (from ghci and hlint) are displayed in
the error list and can be navigated between, using the standard Spacemacs key
bindings (under ~SPC e~) even though errors from other modes might highlight the
actual buffer.
** Flycheck
This is the standard Spacemacs way of syntax checking, and it's also the most
elaborate. You need to install the syntax-checking layer first. Please read the
elaborate. You need to install the syntax-checking layer first, which will bring flycheck. Please read the
layer's [[https://github.com/syl20bnr/spacemacs/tree/develop/layers/+checkers/syntax-checking][documentation]] on how to interact with flycheck.
Flycheck has different Haskell checkers: =haskell-ghc=, =haskell-stack-ghc= and
Flycheck has different Haskell checkers: =haskell-dante=, =haskell-ghc=, =haskell-stack-ghc= and
=haskell-hlint=. Normally it can detect the best one to use automatically, but
if it doesn't work, then you can change it with ~SPC e s~.
** HLint
HLint is a linter for Haskell. It doesn't detect errors (as long as it can parse
[[https://github.com/ndmitchell/hlint][HLint]] is a linter for Haskell. It doesn't detect errors (as long as it can parse
the file) but bad coding style and code smell. The HLint checker is called
*after* the flycheck GHC checker.
** ghc-mod
Ghc-mod, when enabled, also does syntax checking. It doesn't highlight errors,
but instead displays an exclamation point in the fringe. You can navigate
between errors using =ghc-goto-next-error= (~M-n~) and =ghc-goto-prev-error=
(~M-p~).
HLint can be configured via .hlint.yaml.
** Interactive haskell-mode
Finally, interactive haskell-mode (~SPC m s b~) also displays errors. These
@ -419,7 +321,7 @@ An alternative to syntax checking is to build your projects with
reliable. The error navigation is similar to interactive haskell-mode.
** Troubleshooting
Flycheck and ghc-mod can fail silently for miscellaneous reasons. See the [[#faq][FAQ]]
Flycheck can fail silently for miscellaneous reasons. See the [[#faq][FAQ]]
for troubleshooting.
* FAQ
@ -470,26 +372,6 @@ placing the following snippet in your =dotspacemacs/user-config= function:
(call-interactively 'evil-insert))))
#+END_SRC
** I am using =stack= and =ghc-mod=, but =ghc-mod= doesn't work
Make sure that a =dist= directory doesn't exist in your project root. If it
exists, just remove it and try again.
** =ghc-mod= doesn't work
First of all - make sure that the version of =ghc= matches the version of =ghc=
that was used to build =ghc-mod=. To get the latter, call =ghc-mod --version= in
the terminal. If they don't match then you'll have to rebuild =ghc-mod=.
=Stack= provides the ability to use different =ghc= versions across different
projects. If you're using this feature, then you'll have to rebuild =ghc-mod=
quite often. If you only use =ghc-mod= for completion, and don't want to rebuild
=ghc-mod= every time you switch projects, then you'd better disable =ghc-mod=
support, so that =company-ghci= will be used for completion.
The second thing to do if it's still not working - is to call =ghc-mod debug= in
the root of the project that you're currently working on. Make sure that it
doesn't show any errors. If there are errors that you can't solve - then it's
better to report them [[https://github.com/DanielG/ghc-mod][upstream]].
** Indentation doesn't reset when pressing return after an empty line
This is the intended behavior in =haskell-indentation-mode=. If you want to
reset the indentation when pressing return after an empty line, add the
@ -511,10 +393,14 @@ following snippet into your =dotspacemacs/user-config= function.
The HLint checker is called *after* the normal flycheck checker, even if the
checker fails. Check the [[#flycheck-doesnt-work][Flycheck doesn't work]] section.
** HLint fails with parse error
If HLint is not correctly configured (e.g. does not load some extensions that you are using in your project) it might fail while parsing the file.
Check [[https://github.com/ndmitchell/hlint][HLint]] docs for more details.
** I can see highlighted errors but they don't appear in the error list
The error list is only set by flycheck. You are probably seeing errors
highlighted by either ghc-mode or haskell-mode. Check the [[#flycheck-doesnt-work][Flycheck doesn't work]]
section.
highlighted by haskell-mode. Check the [[#flycheck-doesnt-work][Flycheck doesn't work]] section.
** Flycheck doesn't work
You can use the =flycheck-compile= command to check what's wrong with flycheck.
@ -567,24 +453,3 @@ Make sure you set =flycheck-haskell-stack-ghc-executable= to this script.
Some (most) of the haskell-mode commands only work when haskell-mode is in
interactive mode, i.e. has an interactive session associated with it. Load it
using ~SPC m s b~.
** =ghc-mod= and =haskell-mode= commands overlap. How do I know which command belongs to what?
ghc-mod commands are prefixed with =ghc-=, haskell-mode ones are prefixed with
=haskell-=.
** Some commands start with =ghc-= and some with =haskell-=. What does that mean?
Commands starting with =ghc-= are ghc-mod commands. Commands starting with
=haskell-= are haskell-mode commands.
** Why doesn't the HLint Flycheck checker work when the Intero backend is enabled?
By default, only the Intrero checker will be enabled if you manually set the
Intero backend as described in [[#choosing-a-backend][Choosing a backend]].
To also enable the HLint checker, use =flycheck-add-next-checker= to set the
HLint checker after the Intero checker.
#+BEGIN_SRC emacs-lisp
(defun dotspacemacs/user-init ()
(with-eval-after-load 'intero
(flycheck-add-next-checker 'intero '(warning . haskell-hlint))))
#+END_SRC

Some files were not shown because too many files have changed in this diff Show More