Commit graph

198 commits

Author SHA1 Message Date
syl20bnr
0ab8b7ba35 core: fix deletion of some custom settings when installing new packages
Given the loading process of Spacemacs we have no choice but to set the
custom settings twice:
- once at the very beginning of startup
- once at the very end of loading

The first application of custom settings is to be sure that Emacs knows all the
defined settings before saving them to a file (otherwise we loose all the
settings that Emacs does not know of).
The second application is to override any settings set in dotfile functions
like `dotspacemacs/user-config`, users expect the custom settings to be the
effective ones.

This double loading issue is independent from the managment method used for
custom settings. Even with a separate custom-settings file explicitly loaded in
the dotfile we would have been forced to load this file twice to acheive the
expected result described here.

Note: Loading custom-settings twice is not ideal since they can have side
effects! Maybe an inhibit variable in Emacs can supress these side effects?
2016-12-18 11:46:23 -05:00
d12frosted
5dbfaf3a8d
encode ; in issue report body 2016-12-14 18:23:44 +02:00
syl20bnr
6ae2fbcfa9 core: use an advice to write custom settings to dotfile
Should fix #7816
2016-11-23 16:32:10 -05:00
syl20bnr
e699f1816a core: wrap Emacs custom in a dotfile new function
New function `dotspacmacs/emacs-custom-settings` wrapping Emacs
custom settings sexps.
`dotspacemacs/emacs-custom-settings` is called just after the user
configuration (`dotspacemacs/user-config`)

Customize cannot write its auto-generated sexps inside a function, to
accomplish this we trick Emacs by setting the custom file to a file
in `.cache` directory, the path to this file is defined by the variable
`spacemacs--custom-file`. At the startup of Emacs we read this file
to insert its content inside the function
`dotspacemacs/emacs-custom-settings` in the dotfile, this is done in the
function `spacemacs/write-custom-settings-to-dotfile`.

I don't think we need to write the custom settings to the dotfile when
exiting Emacs as well, since we do it at startup at the very beginning
(i.e. before actually loading the dotfile) we should be OK.

Fixes #5170
2016-11-22 22:55:36 -05:00
Eivind Fonn
5c912e942f Don’t toggle maximized if already maximized 2016-11-20 18:59:57 -05:00
syl20bnr
2c4cd4dd42 core: Revert dotfile installation time and fix editing style bug
Force a call to dotspacemacs/init after dotfile installtion.
Move call to (spacemacs/maybe-install-dotfile) to spacemacs/init.
2016-11-07 10:40:39 -05:00
Eivind Fonn
24c3859d1e Install dotfile earlier 2016-11-07 10:07:28 -05:00
deb0ch
3b92a4c2bf maximize frame earlier in the startup process 2016-10-23 19:44:35 +02:00
Eivind Fonn
1a97aeb215 Warn if layers changed outside dotspacemacs/layers 2016-10-18 10:13:17 +02:00
JAremko
37d74f60a8
Report system-configuration-features 2016-10-11 22:16:21 +03:00
Eivind Fonn
26df4a7799 Fix initial-buffer-choice in daemon mode 2016-09-15 12:07:51 +02:00
Eivind Fonn
928983da47 Refactor jump to definition
This commit defines:

- spacemacs-default-jump-handlers: a list of functions that can jump to
  definition in ALL modes.

- spacemacs-jump-handlers-MODE: a list of functions that can jump to
  definition in MODE.

- spacemacs-jump-handlers: a buffer-local list of functions that can
  jump to definition. This is made up of the values of the two previous
  variables whenever a given major mode is activated.

- spacemacs/jump-to-definition: a function that tries each function in
  spacemacs-jump-handlers in order, and stops when one of them takes us
  somewhere new.

- spacemacs|define-jump-handlers: a macro that
  * defines spacemacs-jump-handlers-MODE, possibly filled with initial
    functions
  * defines a function that is added to the hook of the given MODE
  * binds “SPC m g g” of that MODE to spacemacs/jump-to-definition

This is an attempt to harmonize all the different approaches to jumping.
Specifically,

- Existing intelligent jump packages that work for only a single mode
  should go to the beginning of spacemacs-jump-handlers-MODE. E.g.
  anaconda for python, ensime for scala, etc.

- Packages like gtags that work for several modes (but potentially not
  all) and which is dumber than the intelligent jumpers should go the
  the END of spacemacs-jump-handlers-MODE.

- Packages like dumb-jump that work for all modes should go to
  spacemacs-default-jump-handlers.

In all cases the order of the jump handlers in each list should be from
most to least intelligent.

Fixes #6619
2016-08-22 15:08:25 +02:00
syl20bnr
a9489a431d core: fix naming conventions for private funcs and vars
in core-release-management.el
2016-08-03 21:43:12 -04:00
syl20bnr
92ca7fd0f3 core: fix startup check being always executed 2016-08-03 21:43:12 -04:00
km
d7820aafd6 Remove even more 24.3 related configuration
Helm-flx, which is included as a core package, requires a minimum Emacs
version of 24.4. As it stands attempting to install Spacemacs on Emacs
24.3 or below will break on helm-flx.
2016-06-20 22:26:53 -04:00
syl20bnr
8368be3c89 core: display a numerical progression in mode-line
Represents the number of packages to configure.
2016-06-13 00:56:25 -04:00
syl20bnr
419eb51836 core: new variable spacemacs-insecure
Revert "Parse CLI args after dotspacemacs/init"
This reverts commit 0a35502de4.

We cannot delay the parsing of CLI params since we need their values
early during the loading process (i.e. debug info).

Replace the previous commit with a new variable `spacemacs-insecure`
which takes the value of --insecure boolean parameter.
2016-06-09 23:09:59 -04:00
Eivind Fonn
0a35502de4 Parse CLI args after dotspacemacs/init 2016-06-09 23:03:03 -04:00
syl20bnr
f3e50195d7 core: add footer in home buffer 2016-06-05 00:19:18 -04:00
Eivind Fonn
654c704f6c core: fix missing font error message 2016-06-04 21:40:50 +02:00
Eivind Fonn
5a444184f1 core: allow list of fonts 2016-06-03 23:41:22 -04:00
Diego Berrocal
0749c61add Add emojis to the Issue Template 2016-05-27 00:32:05 -04:00
syl20bnr
1f993bddf6 Rename spacemacs-helm and spacemacs-ivy layers to helm and ivy
For ivy users: be sure to update your dotfile by replacing spacemacs-ivy
by ivy
2016-05-15 22:24:27 -04:00
Eivind Fonn
22774e6a96 Make font warning more explicit. 2016-05-05 15:10:30 +02:00
syl20bnr
419a0331ab Add font-locking for report-issue-mode buffers 2016-04-29 19:55:46 -04:00
Damon Wang
6e6732c9b5 Adds in-emacs editing to spacemacs/report-issue
spacemacs/report-issue opens a buffer prepopulated with a template and some
system information. The buffer is markdown-mode augmented with a keybinding to
send the contents to github.

Or if that doesn't work, the text remains in the buffer to be manually copied
and pasted. This makes the error reporting more robust: right after the user has
experienced one bug is the worst time to manifest another one.

This commit also rewrites spacemacs//describe-last-keys-string because I
couldn't figure out how else to prevent view-lossage from burying the new
REPORT_SPACEMACS_ISSUE buffer.  Suggestions welcome.
2016-04-29 19:32:36 -04:00
Fabien Dubosson
ce803c6bab Let's try to get this message unnoticed
syl20bnr reported this message can be read on startup because there is a
small delay after it, so let's try to change it to something less weird.
2016-04-28 15:47:53 +02:00
Fabien Dubosson
04267777ca Fix font definition for first frame in daemon mode 2016-04-21 21:10:28 -04:00
syl20bnr
92e144a361 Remove april fool 2016 starting code 2016-04-20 23:46:16 -04:00
Muneeb Shaikh
32f9b809ed core: update report-issue docs and docstring
* core/core-spacemacs.el (spacemacs/report-issue): update docstring
* doc/DOCUMENTATION.org (Reporting Issue table): reword key description
  to keep table width small

Fix #5155
2016-04-17 00:37:47 -04:00
Richard Kim
4ce4d6de77 allow emacs to be launched with -q option
If emacs is launched with -q option and spacemacs files are loaded via
--eval option, then spacemacs fails due to depending `after-init-time'
variable being set properly which is done only when emacs is launched
without -q. This patch is to remove this dependence so that spacemacs
launched with -q can still work. This is done by introducing
`spacemacs-initialized' variable which is set properly regardless of
which command line options are present or absent.
2016-04-08 18:04:11 -04:00
syl20bnr
22c2763569 core: add package breakdown in summary message
e: elpa
r: recipe
l: local
b: built-in
2016-04-03 12:02:28 -04:00
syl20bnr
d60228219f core: ensure quelpa is available when installing packages 2016-04-03 02:51:01 -04:00
syl20bnr
8e897f6b7b core: new layer spacemacs-bootstrap and new package :step
New package :step 'bootstrap', this step happens before 'pre' packages.
A new layer names 'spacemacs-bootstrap' gather all the ':step bootstrap'
packages. This layer is special and is always the first element of
the variable 'configuration-layer--layers' which assure that all
bootstrap packages are configured first.

This new layer leverages the configuration layer system, removes the
clutter of package installations in the function 'spacemacs/init' and
isolate the bootstrap packages in one place.
2016-04-03 00:28:47 -04:00
syl20bnr
5efa0e58c0 April Fool 2016 2016-04-01 00:26:19 -04:00
syl20bnr
05a04768b1 core: new function spacemacs/window-system-is-mac
Use if to disable the menu-bar
2016-03-31 00:34:28 -04:00
syl20bnr
8f3494d83c core: move system functions to core-funcs.el 2016-03-31 00:33:56 -04:00
d12frosted
80874646fc properly check for system-is-mac 2016-03-31 00:23:59 -04:00
d12frosted
98b329e741 move system-is-* function to core 2016-03-31 00:23:59 -04:00
syl20bnr
2d61e5304e core: add support for :variables keyword in dotspacemacs-editing-style
Add variable `hybrid-mode-enable-hjkl-bindings` to enable hjkl
navigation in hybrid mode.

example:

dotspacemacs-editing-style '(hybrid :variables
                                     hybrid-mode-enable-hjkl-bindings t
                                     hybrid-mode-default-state 'normal)
2016-03-16 22:43:50 -04:00
Eivind Fonn
83556719cb Add display-graphic-p to SPC hds 2016-02-23 23:34:49 +01:00
justbur
aab007d225 evil-jumper: Remove obsolete package
The functionality is now incorporated into the evil core and this
package has been marked as obsolete.
2016-02-16 21:23:07 -05:00
Fabien Dubosson
aa39eb3fd0 Add a command for reporting issue to spacemacs 2016-01-26 01:21:02 -05:00
justbur
35ad5f32ba core: Add defer-until-after-user-config
Add function that can be used to defer execution until after
dotspacemacs/user-config is run. If it has already been run the function
executes immediately.

Initially this is only used for deferring the definitions of
transient-states.
2016-01-26 01:21:01 -05:00
justbur
76cd590667 transient-state: Put code in new core file 2016-01-26 01:21:01 -05:00
justbur
9e097d898c transient-state: Load defs after user-config 2016-01-26 01:21:00 -05:00
justbur
90df083ad3 spacemacs-base: Add hydra package 2016-01-26 01:20:59 -05:00
Eivind Fonn
2d29953200 Enhance theme handling
- Restrict default theme code to spaceacs/load-theme
- Don't download package for default
- Explicitly call post-theme-init for default
- Explicitly disable existing themes when loading
2016-01-23 14:40:24 +01:00
Ista Zahn
86dd7926b7 Allow default theme in dotspacemacs-themes 2016-01-23 14:13:25 +01:00
Fredrik Bergroth
061805c7ea Add prev/next file navigation to unimpaired layer 2016-01-17 22:48:12 -05:00
syl20bnr
33ead6fc42 Deprecation of extensions and <pkg>-excluded-packages variables
As announced in previous releases, see CHANGELOG.next for more info
in the Breaking Changes section.
2016-01-17 22:06:04 -05:00
Fabien Dubosson
78b8d939f4 Add spacemacs/describe-last-keys 2016-01-11 22:01:01 -05:00
Fabien Dubosson
dbf6a9de7e Improve describe-system-info output 2016-01-11 22:01:01 -05:00
syl20bnr
046d86800c Clean copyrights and update for year 2016 2016-01-11 21:42:17 -05:00
Eivind Fonn
d8833215b0 Make scratch buffer major mode configurable 2016-01-11 01:13:10 -05:00
syl20bnr
6d1df2845f core: remove evil variable aliases and change default to nil
People transitioning from Vim could be surprised if we set these
variable to t by default, so setting them to nil respects better
the POLA principle.

Impacted variables:
dotspacemacs-ex-substitute-global
dotspacemacs-remap-Y-to-y$
2016-01-11 01:13:10 -05:00
Fabien Dubosson
72a89ab312 Use jump-forward C-i binding only in GUI mode
Background: `C-i` and `TAB` are the same keycode for historic reasons.

With the current settings, evil [1] and evil-jumper [2] associate
`jump-forward` to `C-i` (==`TAB`), what overrides bindings set to
`TAB` (==`C-i`) in terminal mode, like `orc-cycle`. To fix this,
this commit:

- Set `evil-want-C-i-jump` to `nil`, to prevent `evil` and `evil-jumper`
  to use the `C-i` (==`TAB`) keycode.

- Remove the spacemacs' code that bind `jump-forward` to `TAB`(==`C-i`)

The current spacemacs code already rebind `jump-forward` to the GUI-only
`<C-i>` keycode.

[1] 082bd65ccc/evil-maps.el (evil-maps.el-323)
[2] efaa841ca4/evil-jumper.el (L241)

Fix #4505
Fix #4487
2016-01-09 18:43:48 +01:00
justbur
f39033afdb startup: Fix for #4057
Please check this, but this does the trick for me to fix #4057. The
reason I'm not sure about it is I don't know what the purpose of the
do-after-display-system-init code is. It doesn't seem necessary for me,
and I'm testing this on the GUI version.
2016-01-06 23:19:12 -05:00
syl20bnr
15c7ae5bdf core: hide home buffer if a file is passed on the command line
Note that any non Emacsy command line parameter and non processed
command line parameter (that is unknown from Spacemacs) will hide the
home buffer. This should be good enough.

Fixes #4057
2016-01-06 23:03:23 -05:00
syl20bnr
76d8ff8621 core: allow debug arguments without --debug-init
Add a new core file for processing command line arguments
2016-01-06 22:50:13 -05:00
syl20bnr
1558ca3b09 Fix spacemacs-buffer/goto-buffer being called twice in some cases
When using the GUI the function is called twice, once in spacemacs/init
and once with spacemacs--after-display-system-init-list
2016-01-06 22:14:17 -05:00
syl20bnr
1fc798139b nyancat: Add support for emacs --daemon and GUI client 2016-01-04 23:48:55 -05:00
syl20bnr
18b1b4b411 Explicitly recreate the home buffer for first GUI client 2016-01-04 23:39:35 -05:00
Travis B. Hartwell
eea3df4877 Properly initialize the display for daemon mode.
Add macro to wrap things that depend on the display being
initialized (and a frame active), such as getting the font.  Advise the
`server-create-window-system-frame` function which is called by
emacsclient when creating a window-system frame.  This is only run the
first time a frame is created, so the advice removes itself.

Fixes: syl20bnr/spacemacs#299 and syl20bnr/spacemacs#1894
(Among others)
2016-01-04 01:06:05 -05:00
syl20bnr
96a648d1da Update deprecation TODO to 0.106 2016-01-03 22:46:01 -05:00
syl20bnr
00c420211c core: fix configuration-layer--refresh-package-timeout
Set it again to dotspacemacs-elpa-timeout in
configuration-layer/initialize
2015-12-21 00:56:04 -05:00
Eivind Fonn
2710c14153 core: load order fix
core-configuration-layer must be loaded before calls to
dotspacemacs|call-func, which may invoke configuration-layer//set-error
2015-12-21 00:45:17 -05:00
syl20bnr
a5022743e5 core: remove dash and f from boostrap and attempt to remove evil
Cannot remove evil due to bind-map requiring it.
2015-12-20 23:00:09 -05:00
syl20bnr
45799a0d27 core: remove GUI elements at the beginning 2015-12-13 15:41:24 -05:00
syl20bnr
103b864f0e core: delay creation of spacemacs buffer
Create it after the installation of the theme.
Add a redisplay when the buffer is created.
2015-12-13 15:41:24 -05:00
syl20bnr
4a6fd1b364 core: hide mode-line at startup 2015-12-11 03:07:15 -05:00
syl20bnr
b55381f0e3 core: move buffer creation after GUI elements removal 2015-12-11 02:27:52 -05:00
justbur
812ba329f2 core: move spacemacs-mode to core-spacemacs-buffer.el
The rationale is to keep the spacemacs buffer related code contained in
the core-spacemacs-buffer.el file.
2015-12-11 02:25:22 -05:00
justbur
f2878d594a core: Factor out spacemacs-buffer creation
Factor out the code related to creating the spacemacs buffer, so that it
can be recreated easily if it gets deleted.
2015-12-11 02:25:19 -05:00
syl20bnr
df353eda54 core: remove duplicated require of core-configuration-layer 2015-12-07 23:02:24 -05:00
justbur
246ebc1a27 core-keys: Enable distinction between C-i and TAB
Added dotfile variable to template and core-dotspacemacs.el

After enabling, if C-i is translated to the "key" <C-i> which allows you
to bind a separate command in the GUI like this

(define-key map [C-i] 'c-i-command)

or this

(define-key map (kbd "<C-i>") 'c-i-command)

This has the side effect of no longer making C-i default to TAB in the
GUI, but will not affect the TAB or <tab> bindings.

Removes spacemacs//handle-terminal-keys
2015-12-04 00:23:10 -05:00
syl20bnr
61707e593d core: improve installation speed of themes and bootstrap packages
package-refresh-packages was called every time a bootstrap package or
a theme was installed

Use configuration-layer/retrieve-package-archives to install bootstrap
packages and themes
Add a reentrance boolean to configuration-layer/retrieve-package-archives
Add force and quiet optional arguments to configuration-layer/retrieve-package-archives
Force refresh of archive when the user requests an update of packages
2015-12-02 23:53:02 -05:00
syl20bnr
d822241739 core: use request.el to check elpa archive availability
Add request.el to core/libs
Refactor package.el initialization in configuration-layer.el
Cosmetic improvements to loading messages
Remove redefinition of package-refresh-packages
2015-12-02 23:25:00 -05:00
syl20bnr
4d87ea626d core: add a basic timeout of 5s to fetch elpa archive
New file core-emacs-ext.el
This is a basic monkey-patch solution but it will do the job for now.
The timeout amount is not configurable for now.

Tested on 24.5 and 24.3.1

fixes #3284
2015-11-30 00:49:12 -05:00
syl20bnr
a19c0f3d24 core: remove spacemacs/set-key funcs and add a new pre-command-hook
This pre-command-hook translates the special key to the corresponding
emacs function key. This effects only happens in terminal, this hook is
a no-op in GUI.

By doing this we attempt to bring more consistency between the GUI
and the terminal regarding TAB and RET keys.
2015-11-28 23:11:48 -05:00
syl20bnr
d5233a9706 core: new spacemacs function to set keys
spacemacs/set-key
spacemacs/set-key-for-state

These functions find normalized keys which should handle as sanely as
possible the GUI and the terminal.

See docstring of spacemacs//normalize-key for more info.
2015-11-28 00:13:31 -05:00
justbur
ee6a486d4c core: Add new set-key functions to core-keybindings
Set up to use bind-map instead of evil-leader for leader key
functionality.

Alias evil-leader funcs and remove package
2015-11-21 18:18:01 +01:00
justbur
b294461957 evilified-state: Make into local package 2015-11-18 23:35:01 -05:00
syl20bnr
1061adbac9 New variable dotspacemacs-elpa-https
If non nil use HTTPS otherwise use HTTP.
Default is t.
2015-11-18 13:50:30 -05:00
Eivind Fonn
4f2b08154c core: Don't delete bootstrap packages as orphans 2015-11-04 20:21:42 +01:00
syl20bnr
3c7ad38e4d core: remove dotspacemacs-verbose-loading
verbose is activate with --init-debug
2015-10-07 15:51:40 -04:00
justbur
7a288656b1 debug-init: Get more info from debug-init
1. Make sure debug-on-error stays on
2. Force verbose loading
3. Detect long requires and loads (with --timed-requires)
4. Start profiler (with --profile)
2015-10-07 15:51:40 -04:00
syl20bnr
0cbe01433d Move (setq help-window-select 't) to spacemacs-base 2015-10-07 15:51:40 -04:00
sooheon
984f5aa3d8 Keep focus while navigating *help* buffers
As discussed in issue #2659.
2015-10-07 15:51:39 -04:00
Eivind Fonn
def1a8df2b core: Spacemacs home as initial buffer for clients 2015-10-07 15:51:39 -04:00
syl20bnr
169d1622e8 core: set ad-redefinition-action to accept
resolves #192
resolves #2893
2015-09-29 21:10:59 -04:00
syl20bnr
5637f0963c core: fix crash at startup due to bad require 2015-09-26 00:36:01 -04:00
syl20bnr
773076a1be core: remove core-evilify-keymap.el
Move its contents to core-evilified-state.el
2015-09-26 00:26:16 -04:00
syl20bnr
8aa4eadc74 core: move prefix funcs to new file core-keybindings.el 2015-09-13 22:53:15 -04:00
Eivind Fonn
de64218dcd Add distribution to describe-system 2015-09-13 22:24:02 -04:00
syl20bnr
3b7d66d118 sync-configuration-layers: add option to skip tests 2015-09-11 23:04:55 -04:00
syl20bnr
77161bd591 core: restore default mode line in home buffer 2015-09-11 23:04:01 -04:00
d12frosted
82c905559a fix return binding in terminal for spacemacs-mode 2015-09-04 09:38:15 +02:00
syl20bnr
c688f29738 core: rename dotspacemacs/config to dotspacemacs/user-config
in template dotfile.
Display a warning when dotspacemacs/config is encountered; support for
dotspacemacs/config will be dropped in 0.105.0
2015-08-31 22:02:43 -04:00
justbur
51022543a8 Add tests for correctness of .spacemacs
Note this makes a critical (but backwards compatible) change
to .spacemacs.template
2015-08-31 21:26:03 -04:00