Commit Graph

61 Commits

Author SHA1 Message Date
Henrik Lissner
b207c4040b
Minor, general refactor 2018-06-07 02:51:46 +02:00
Henrik Lissner
52a04fd8c6
Optimize file-exists-p! & project-file-exists-p! 2018-06-04 21:17:49 +02:00
Henrik Lissner
4ee0b5ba6d
New macros file-exists-p! & project-file-exists-p!
The latter replaces the doom-project-has! macro
2018-05-24 21:15:17 +02:00
Henrik Lissner
8da3f56795
core-project: rename autoload-project-mode => init-project-mode
To be consistent with other initializing hooks.
2018-05-20 12:18:16 +02:00
Henrik Lissner
bec79a3d4c
Major refactor of Doom bootstrap process
+ New `input` and `buffer` support for :defer in def-package! can now
  defer packages until the first command invoked after startup or first
  interactive buffer switch, respectively
+ Exploit these new :defer techniques to lazy-load many core packages,
  netting Doom a 20-30% decrease in startup time
+ Various userland macros (like package!, def-package-hook!, packages!,
  and disable-packages!) will now throw an error if used incorrectly
  (i.e. outside of their intended files; e.g. package! should be used in
  packages.el files)
+ Removed support for multiple/nested doom! calls. There should only be
  THE ONE in ~/.doom.d/init.el (or ~/.config/doom/init.el)
+ Fix an issue where load-path and auto-mode-list modifications would
  not persist because doom-packages-file was cached too late.
+ Added package-activated-list to cached variables in
  doom-packages-file, thus we no longer need custom-file.
+ Load Doom core files from doom-initialize. Now doom-initialize can be
  called from state-dependent non-interactive functions, instead of
  reloading core/core.el, which was clumsy
+ Removed the doom-post-init-hook hook. There was no reason for it to
  exist when doom-init-hook can simply be appended to
2018-05-14 20:37:13 +02:00
Henrik Lissner
3ad39af712
Add HOME & /tmp to projectile-ignored-projects 2018-05-07 19:26:31 +02:00
Henrik Lissner
0b33e729e0
Projectile: ignore ./node_modules & ./flow-typed 2018-04-29 22:53:06 -04:00
Henrik Lissner
3777474471
Don't remove projectile-root-local from root file functions
Doesn't do anything for the cache.
2018-03-20 03:39:03 -04:00
Henrik Lissner
ce091ddde6
Improve reliability of 'nocache & without-project-cache! macro 2018-03-14 18:29:16 -04:00
Henrik Lissner
f113f99484
projectile-indexing-method = native (on windows) 2018-02-19 20:27:47 -05:00
Henrik Lissner
dce496e246
Change doom-project-p to return a boolean 2018-02-06 17:30:38 -05:00
Henrik Lissner
f28a89f701
Add doom-project-name function 2018-02-06 17:30:16 -05:00
Henrik Lissner
508dbf7a5c
Revise docstrings for doom-project-{root,p} 2018-02-06 17:30:03 -05:00
Henrik Lissner
7e31d1c5af
Add nocache arg to doom-project-* functions 2018-02-01 01:31:26 -05:00
Henrik Lissner
3bd262117d
Initialize project-mode sooner
Fixes a couple projectile errors when parts of Doom try to use
projectile before it's loaded.
2018-01-28 16:28:53 -05:00
Henrik Lissner
d4c1050e32
core-project: fix projectile caching error when buffer-file-name is nil 2018-01-28 04:31:14 -05:00
Henrik Lissner
560548db33
core-projects: refactor projectile var init 2017-12-31 18:32:56 -05:00
Henrik Lissner
3e41c11138
Refactor core-projects; fix autoload-project-mode & doom-project-hook
+ doom-project can now be a symbol or list of project modes.
+ doom-project-hook hooks are promised to receive the mode symbol and
  state, but until now only received the former.
+ Add docstrings to doom-project-{find-file,browse}.
+ doom|autoload-project-mode is now on find-file-hook instead of
  after-change-major-mode (which fires it way too many times).
2017-12-31 11:35:39 -05:00
Henrik Lissner
d9175748b7
Remove (interactive) from doom-project-{find-file,browse}
These aren't meant to be interactive.
2017-12-31 11:13:58 -05:00
Henrik Lissner
6d7a6a80b2
Fix projectile not tracking directories #308 2017-12-31 11:09:47 -05:00
Henrik Lissner
88a3732ae7
Add doom-project-{find-file,browse} functions 2017-12-23 02:09:40 -05:00
Henrik Lissner
9d81bc5a8b
Major refactor: use-package-always-defer = nil & use :hook
Possibly breaking change: packages are no longer deferred by default.

Addresses #286
2017-12-08 23:14:11 -05:00
Henrik Lissner
95a5b46dc5
New // naming convention + refactor doom management functions 2017-11-05 19:54:43 +01:00
Henrik Lissner
9a959e73bc
projectile: ignore doom-local-dir properly 2017-10-23 20:09:01 +02:00
Henrik Lissner
8fc1c46dca
Initialize projectile variables before loading projectile
Fixes #236
2017-10-08 13:10:01 +02:00
Henrik Lissner
cd7ab060e0
General refactor & docstring updates 2017-10-05 17:02:59 +02:00
Henrik Lissner
3fe9ea2b2e
Redesign def-project-mode! macro & update references
+ Renamed :init to :on-load (run once, the first time the project mode
  is activated).
+ New properties :on-enter FORM and :on-exit FORM (run each time the
  mode is enabled or disabled, respectively).
+ New property :hooks HOOKS (automatically add HOOKS to mode-hook).
2017-10-04 18:00:23 +02:00
Henrik Lissner
55f584646b
Add :hook property to def-project-mode! 2017-10-03 15:44:57 +02:00
Henrik Lissner
6cb5efc929
core-lib: rename helper fns; move doom-resolve-vim-path
+ doom--resolve-paths => doom--resolve-path-forms
+ doom--resolve-hooks => doom--resolve-hook-forms
+ +evil*ex-replace-special-filenames => doom-resolve-vim-path
2017-09-27 01:23:54 +02:00
Henrik Lissner
65e142fdd1
core-projects: refactor & update
+ Use new structure for projectile-other-file-alist
+ Refactor variable assignment
+ Rewrite for new, updated projectile-project-root
2017-09-20 01:44:52 +02:00
Henrik Lissner
3fcbdae441
Make doom-project-{p,root} functions simpler
+ doom-project-root and doom-project-p no longer takes arguments
+ Remove doom*project-root advice
2017-09-20 01:33:31 +02:00
Henrik Lissner
6b68ad4d99
Add doom/reload-project; improve doom-project-root docstring 2017-09-19 15:08:59 +02:00
Henrik Lissner
d160da2c57
core-project: use default projectile project root files 2017-09-19 15:08:24 +02:00
Henrik Lissner
9ed322ded6
Remove recentf-filename-handlers fix for projectile-recentf-files
This is unnecessary now that path abbreviation occurs in an ivy
transformer rather than as a handler in recentf-filename-handlers.
2017-08-21 21:58:53 +02:00
Henrik Lissner
4c1f42de81
Refactor core-projects
Relevant to #161
2017-07-26 18:43:10 +02:00
Benjamin Andresen
10bae5a835 Fix: core/projects: don't overwrite projectile-globally-ignored-directories 2017-07-21 17:11:51 +02:00
Henrik Lissner
a2ca21cc21
Add doom*project-root advice fn 2017-06-19 00:03:37 +02:00
Henrik Lissner
414363fe38
Revise documentation for def-project-mode! 2017-06-18 23:43:08 +02:00
Henrik Lissner
4984a548d1
Refactor DOOM init & add new init hooks
+ Add doom-init-hook and doom-post-init-hook to simplify Emacs init
  hooks into less ambiguous ones.
+ Attach former after-init-hook and emacs-startup-hook hooks to new doom
  init hooks.
+ Vastly improves daemon and tty support: preventing incorrect colors
  from bleeding across face class barriers, and into GUI Emacs and vice
  versa, when spawned with emacsclient.
+ Fix persp-mode breaking Emacs daemon, and ensuring that initialization
  is done properly in terminal Emacs (and emacsclient frames).
2017-06-12 00:37:14 +02:00
Henrik Lissner
c7254e7bdc
Major optimization refactor, across the board
+ enable lexical-scope everywhere (lexical-binding = t): ~5-10% faster
  startup; ~5-20% general boost
+ reduce consing, function calls & garbage collection by preferring
  cl-loop & dolist over lambda closures (for mapc[ar], add-hook, and
  various cl-lib filter/map/reduce functions) -- where possible
+ prefer functions with dedicated opcodes, like assq (see byte-defop's
  in bytecomp.el for more)
+ prefer pcase & cond (faster) over cl-case
+ general refactor for code readability
+ ensure naming & style conventions are adhered to
+ appease byte-compiler by marking unused variables with underscore
+ defer minor mode activation to after-init, emacs-startup or
  window-setup hooks; a customization opportunity for users + ensures
  custom functionality won't interfere with startup.
2017-06-09 00:47:45 +02:00
Henrik Lissner
baad7953bf
Breaking change: rewrite add-transient-hook!
HOOK is now evaluated. Hooks should be quoted (and functions
sharp-quoted).

This also fixes commit 0150f78e.
2017-06-05 16:43:14 +02:00
Henrik Lissner
94227bbb79 Fix projectile-recentf (#86) 2017-06-03 12:05:43 +02:00
Henrik Lissner
5ae94b765c PRAISE BE TO THE BYTE COMPILER FOR THY SHARP QUOTES 2017-04-17 02:17:10 -04:00
Henrik Lissner
9f6d187ea3 core-projects: disable projectile-locate-dominating-file in remote buffers 2017-04-16 11:55:47 -04:00
Henrik Lissner
fc5dd09f47 core: minor tweaks 2017-03-27 13:05:30 -04:00
Henrik Lissner
84acc2df09 core-projects: add package.json to projectile-project-root-files 2017-03-25 03:46:41 -04:00
Henrik Lissner
ac5ad085dc core-projects: quote doom-project-hook in def-project! 2017-03-25 02:09:09 -04:00
Henrik Lissner
2f4c3c977e core-projects: move find-tag bindings to private module 2017-03-16 14:29:23 -04:00
Henrik Lissner
8c9269c9a2 General cleanup + refactor 2017-03-15 22:42:05 -04:00
Henrik Lissner
6ff007e70d core-projects: remap find-tag bindings to projectile-find-tag 2017-03-15 22:00:32 -04:00