Commit Graph

2230 Commits

Author SHA1 Message Date
Henrik Lissner
fbb9947c7e
Add doom-{after,before}-switch-window-hook hooks 2018-03-12 13:32:02 -04:00
Henrik Lissner
00a9a08afb
Automatically add execute permission to files with a shebang line 2018-03-12 13:32:02 -04:00
Henrik Lissner
74c8b1d113
Rewrite doctor; move warn! blocks out in doctor.el files 2018-03-12 13:32:01 -04:00
Henrik Lissner
5c36519dab
Ignore package! if package is disabled
This allows you to disable packages with (def-package-hook! X :disable)
without an accompanying (package! X :ignore t). This reduces redundancy.
2018-03-12 13:32:01 -04:00
Henrik Lissner
a8906cc077
Add note to def-package-hook! to use it only in init.el files 2018-03-12 13:32:01 -04:00
Henrik Lissner
23fda88b2f
Detach doom-modules-dirs from doom! macro
Formerly, you were required to have a doom! call (even a blank one) in
~/.doom.d/init.el if you wanted to have private sub-modules in
~/.doom.d/modules/.

No more. It is no longer doom!'s responsibility to affect
`doom-modules-dirs`. This is now done by :config private, while the
Doom modules directory is now the initial entry in doom-modules-dirs.
2018-03-12 13:32:00 -04:00
Henrik Lissner
c6931db3f8
Fix module count in benchmark 2018-03-12 13:32:00 -04:00
Henrik Lissner
724773cbe4
Up the doom-modules :size to 100 2018-03-12 13:32:00 -04:00
Henrik Lissner
5726da8be2
Fix unbalanced-parenthesis error in some helpful-variable buffers 2018-03-12 13:32:00 -04:00
Henrik Lissner
686ce7b26e
New doom-delete-backward-functions hook as fallback in doom/delete-backward-char 2018-03-12 12:42:26 -04:00
Henrik Lissner
a94ddd4a58
core-os: correct typo in :env setting #449 2018-03-12 12:41:00 -04:00
Henrik Lissner
7afc62fb1d
Rewrite scratch buffer commands
+ No longer open persistent scratch buffers by default. Supply the
  universal argument to do that.

  SPC x = open throw-away scratch buffer
  SPC u SPC x = open persistent scratch buffer (prompted for file)

+ Added doom/delete-scratch-files
2018-03-07 21:15:15 -05:00
Henrik Lissner
54393534ff
Don't abort kbd macros on doom/escape #455 2018-03-07 01:58:13 -05:00
Henrik Lissner
4c535b2643
Refactor + slight optimization for backspace #452 2018-03-06 16:19:47 -05:00
Henrik Lissner
74d8ea2b0f
New doom-demote-warnings option for suppress dependency warnings 2018-03-05 03:02:17 -05:00
Henrik Lissner
55b2a6df68
Fix doom/forward-to-last-non-comment-or-eol when visual-line-mode is off #450 2018-03-05 02:59:21 -05:00
Henrik Lissner
e6aad90db5
Don't display benchmark on doom//reload-load-path 2018-03-02 23:48:35 -05:00
Henrik Lissner
4b82c7b7db
Ensure doom is reinitialized properly after package management 2018-03-02 21:59:10 -05:00
Henrik Lissner
a22d5f0bb4
Fix error when package cache doesn't exist on reload-load-path 2018-03-02 20:52:30 -05:00
Henrik Lissner
57efa1b864
Update & fix unit tests 2018-03-02 20:46:45 -05:00
Henrik Lissner
d5c799a536
Rewrite require! macro 2018-03-02 20:45:43 -05:00
Henrik Lissner
738f39d21a
Change how shell env is injected #449
Changes the behavior of the :env setting to fetch the shell variables
immediately on call.
2018-03-02 19:55:05 -05:00
Henrik Lissner
0425724571
Major rewrite of doom module API
+ Fix #446, where the .local/packages.el cache was generated with
  a faulty load-path.
+ Entries in the doom-modules hash table are now plists, containing
  :flags and :path, at least.
+ Add doom-initialize-modules for loading module config.el files.
+ Add doom-module-get for accessing this plist, e.g.

    (doom-module-get :some module)         ; returns plist
    (doom-module-get :some module :flags)  ; return specific property

+ Replace doom-module-enable with doom-module-set, e.g.

    (doom-module-set :some module :flags '(+a +b +c))

+ Remove doom-module-flags (use doom-module-get instead)
+ Rename doom-module-enabled-p with doom-module-p
+ Replace doom-module-path with doom-module-find-path and
  doom-module-expand-file. The former will search for an existing module
  or file in doom-modules-dirs. The latter will expand the path from
  whatever path is stored in doom-modules.
+ Replace doom-module-paths with doom-module-load-path
+ Changed doom! to allow for nested doom! calls by delaying the loading
  of module config.el files until as late as possible.
+ Refactor doom-initialize-packages to only ihitialize package state
  (i.e. doom-packages, package-alist, and quelpa-cache), rather than its
  previous behavior of loading all Doom files (and sometimes all module
  files). This is faster and more predictable.
2018-03-02 19:14:45 -05:00
Henrik Lissner
01f9ca9e67
Ensure (if|when)-let* are available to the byte-compiler
This fixes void function errors in earlier versions of Emacs while
byte-compiling Doom.
2018-03-02 19:14:45 -05:00
Henrik Lissner
5c9ef4ee38
Replace doom-hide-modeline-mode w/ hide-mode-line-mode #423 2018-03-02 19:14:44 -05:00
Henrik Lissner
7542f4a660
Fix doom-visible-windows including popup windows 2018-03-01 22:07:14 -05:00
Henrik Lissner
cde3a3ee78
Delete doom-packages-file on doom//reload-load-path
Fixes potentially malformed load-path after package management
operatins.
2018-03-01 04:47:14 -05:00
Henrik Lissner
70159d829f
Fix doom! not loading modules properly 2018-03-01 03:34:38 -05:00
Henrik Lissner
a9cbfc7f4e
New :env setting for pulling shell envvars into MacOS sessions
:env lets you specify what environment variables exec-path-from-shell
should pull in from your shell environment at startup. As such, these
need to be defined at startup. :env is useless post-init.

May address #433
2018-03-01 01:03:03 -05:00
Henrik Lissner
48e605a7ca
Delay exec-path-from-shell & don't omit it after byte-compile
Gives users an opportunity to customize what environment variables
exec-path-from-shell pulls in.

May address #433
2018-03-01 01:03:03 -05:00
Henrik Lissner
138ec2bf07
Remove manual loading of pkg-autoloads files
No longer necessary as of 0c80bb42
2018-02-28 17:57:30 -05:00
Henrik Lissner
0b2548f7b1
Fix module load order (delay config.el load) #441 2018-02-28 17:57:30 -05:00
Henrik Lissner
589108fdb2
Extend after! macro to support :any, :all & feature lists #442 2018-02-28 17:57:30 -05:00
Henrik Lissner
cacf13f226
Don't byte-compile exec-path on MacOS 2018-02-28 17:57:30 -05:00
Henrik Lissner
606b4695cc
Add NOSUFFIX flag to (load custom-file) 2018-02-28 17:57:30 -05:00
Henrik Lissner
56c7d7fdcf
doom//byte-recompile-plugins: use non-interactive session
May indirectly solve #428
2018-02-28 17:57:30 -05:00
Henrik Lissner
c2fd538261
Refactor doom startup benchmark 2018-02-28 17:57:29 -05:00
Henrik Lissner
047ed6c9ea
Rethink doom-initialize & use package-initalize
Doom saves a lot of startup time by avoiding package-initialize, because
it loads every packages' autoloads file, which is expensive.
Unfortunately, these autoloads files are necessary for some plugins with
abnormal file structures (such as ESS). Previously, I was content with
loading them myself, but these occurrences have become more frequent, so
it would be safest if I relied on package-initialize more.

So doom-initialize will now do so. However, it will cache the load-path
(and Info-directory-list, fixing the lost info buffers) on first run.
This makes byte-compiling Doom almost useless, but it makes startup just
as fast as Doom would be if you had.

This needs more testing.
2018-02-28 17:57:29 -05:00
Henrik Lissner
2f7c9254d6
Fix over-zealous delete-backward-char #431
Would consume entire sexps.
2018-02-24 20:05:35 -05:00
Henrik Lissner
55c6244e9f
doom-install-package: clean up after failed quelpa install 2018-02-22 04:48:36 -05:00
Henrik Lissner
446a66603f
Fix quelpa packages looking up elpa version
This is a regression introduced in b1bf67f6.

Package management would incorrectly compare quelpa package versions
with elpa package versions. This would cause "outdated" packages to get
deleted.
2018-02-22 04:19:25 -05:00
Henrik Lissner
fe81a501f3
Fix void-function doom--menu-read error in byte-compiled Doom #427
The macro would be expanded, and then its helpers would never be loaded.
2018-02-21 15:32:51 -05:00
Henrik Lissner
7bfd0a3304
And changed-quelpa-recipe detection
These packages are now reinstalled on make install.
2018-02-20 17:55:55 -05:00
Henrik Lissner
b1bf67f630
Refactor package init process
quelpa is now initialized by doom-initialize-packages.
2018-02-20 17:54:10 -05:00
Henrik Lissner
f113f99484
projectile-indexing-method = native (on windows) 2018-02-19 20:27:47 -05:00
Henrik Lissner
95009c08f8
doom/describe-module: detect module associated with major-mode 2018-02-19 20:27:18 -05:00
Henrik Lissner
6f1b96bc9a
Fix void-function error in doom//reload-autoloads
Don't use a third party library in a function that could potentially run
before packages are installed, ya big silly!
2018-02-19 01:31:31 -05:00
Henrik Lissner
a967aa051a
Force autoloads to use absolute paths
Autoload paths used to be relative to arbitrary roots (usually
doom-modules-dir). This commit changes doom//reload-autoloads to iterate
over autoloads in doom-autoloads-file and replace their file paths with
an absolute one.

Theoretically this should make Emacs feel marginally faster, but we
*probably* get more of a benefit from a shorter load-path (because we no
longer need doom-modules-dirs, doom-core-dir or doom-psuedo-module-paths
in the load-path).

This is highly experimental however!
2018-02-19 01:25:37 -05:00
Henrik Lissner
1a20c49ef3
Refactor cl-loop => cl-member in doom//byte-compile 2018-02-19 01:20:53 -05:00
Henrik Lissner
7707aec28a
Remove doom group
Not really useful, and Doom doesn't encourage using the Emacs Customize
interface.
2018-02-18 03:04:58 -05:00