Commit Graph

124 Commits

Author SHA1 Message Date
Aria
fe8b17d6da move projectile fd out of magit.el
lol
2018-12-04 20:09:44 +11:00
Michael Fiano
9c96a2bab7 Fix: Prevent projectile from deleting important buffers 2018-12-02 02:02:56 -05:00
Henrik Lissner
1785adb068 projectile-require-project-root = t
Now that projectile-project-root has changed not throw errors (depending
on projectile-require-project-root), it is safe to change this, in case
you use other projectile commands that do require a project.
2018-09-28 21:13:27 -04:00
Henrik Lissner
53fe7a1f04 Refactor Project API to reflect changes upstream
projectile-project-root no longer returns `default-directory` if not in
a project (it returns nil). As such, doom-project-* functions (and their
uses) have been refactored.

+ doom-project-p & doom-project-root are aliases for
  projectile-project-p & projectile-project-root.
+ doom-project-{p,root,name,expand} now has a DIR argument (for
  consistency, since projectile-project-name and
  projectile-project-expand do not).
+ The nocache parameter is no longer necessary, as projectile's caching
  behavior is now more sane.
+ Removed some projectile advice/hacks that are no longer necessary.
+ Updated unit tests
2018-09-28 21:13:27 -04:00
Henrik Lissner
078e3028a6 Minor, general comment revision 2018-09-28 21:02:59 -04:00
Henrik Lissner
4bdd6002a4
Restore projectile-project-root's old behavior
For now...
2018-09-27 21:55:19 -04:00
Henrik Lissner
57579b883b
Refactor doom core files 2018-09-09 09:58:20 -04:00
Henrik Lissner
7d3ffdff06
Remove third line in section headers
This is truly important stuff. We've saved many lives with this update.
2018-09-09 09:58:19 -04:00
Henrik Lissner
d7e4901bda
Disable bottom-up root search if HOME is a project #833 2018-08-26 12:19:47 +02:00
Henrik Lissner
e348e32cbc
Fix def-project-mode! :add-hooks overwriting hooks
Would overwrite hooks previously added to the project mode.
2018-08-11 01:59:36 +02:00
Henrik Lissner
a3124f00d5
Remove redundant projectile-indexing-method setter 2018-08-01 19:26:48 +02:00
Henrik Lissner
9a2f96c0f1
Lazy load projectile (experimental)
I can feel it; the power coursing through my veins. Every millisecond
saved at startup makes me more powerful. This world will be mine. Mine I
tell you!
2018-06-16 11:42:37 +02:00
Henrik Lissner
5501b949ef
Refactor def-project-mode! with cl-defmacro 2018-06-16 11:34:19 +02:00
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
Henrik Lissner
cc6dee6c99 core-projects: add def-project-mode! macro & doom-project-hook 2017-03-02 18:28:46 -05:00
Henrik Lissner
33c88d4f82 Revert macros to ...! name convention (elisp doesn't like @...) 2017-02-23 00:06:12 -05:00
Henrik Lissner
11a5e15e4e Refactor core config 2017-02-20 00:26:08 -05:00
Henrik Lissner
66b223f02c core-projects: fix redundant slashes in paths 2017-02-20 00:26:08 -05:00
Henrik Lissner
2d5d826177 Remove dash/f dependencies; use cl-lib & subr-x more 2017-02-20 00:26:07 -05:00
Henrik Lissner
5c79105be3 core-projects: don't set projectile-completion-system here 2017-02-20 00:26:07 -05:00
Henrik Lissner
fed4835bb6 core-projects: refactor multiple-pushes into one append+setq 2017-02-20 00:26:07 -05:00
Henrik Lissner
7ef87546cc Refactor package management system 2017-02-20 00:26:06 -05:00
Henrik Lissner
6c06aa0ce7 Macros now prefixed with @, instead of suffixed with ! 2017-02-20 00:26:06 -05:00
Henrik Lissner
9bd8c6cc21 General cleanup 2017-02-20 00:26:05 -05:00
Henrik Lissner
58bdc997a2 Add core/core-projects.el 2017-02-20 00:23:05 -05:00