[emacs] Bump to latest spacemacs develop branch
This commit is contained in:
parent
6da9d76dd0
commit
ca75657ddd
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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".
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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!
|
||||
|
|
|
@ -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 }}
|
|
@ -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 ())
|
|
@ -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)"
|
|
@ -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 $?
|
|
@ -37,6 +37,7 @@ eclipse.jdt.ls
|
|||
edts/
|
||||
elnode/
|
||||
elpa/
|
||||
EmmyLua-LS-all.jar
|
||||
eproject.lst
|
||||
eshell/alias
|
||||
eshell/history
|
||||
|
|
|
@ -8,6 +8,10 @@ branches:
|
|||
only:
|
||||
- master
|
||||
- develop
|
||||
cache:
|
||||
directories:
|
||||
- /tmp/elpa
|
||||
- !/tmp/elpa/gnupg
|
||||
env:
|
||||
global:
|
||||
- secure: "M8NF1Uw7VGkLdNmWiUF4T+VOJXwN8KCKVQb45/BWVpGm88Rcfom/9bxRTUme8VYuzIavph32QF+P9KyhX8aj2p2FMItNnxiEySzap5UrLrNiwB6ZxbQglMJj0yMQKASynNBai9KKI7mYlsM5jRpFJ9OSgj7Ko00RIFpO3EpJ+kE="
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))))
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))))
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))))
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))))
|
||||
|
|
|
@ -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 |
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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 |
|
||||
|
|
|
@ -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.")
|
||||
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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))))
|
||||
|
||||
|
|
|
@ -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 |
|
|
@ -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))
|
|
@ -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
|
|
@ -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 |
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))))
|
||||
|
|
|
@ -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 |
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))))
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))
|
||||
|
||||
|
|
|
@ -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))))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 |
|
||||
|---------------+------------------------------------------------------------------------------------------|
|
||||
|
|
|
@ -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 ()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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 |
|
||||
|
|
|
@ -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 ())
|
||||
|
||||
|
|
|
@ -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 |
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 |
|
||||
|
|
|
@ -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 ()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
|
@ -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))))))
|
||||
|
|
|
@ -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)))
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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) "'"))
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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")
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)))
|
|
@ -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
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue