Commit Graph

366 Commits

Author SHA1 Message Date
Henrik Lissner
3dca6d8028
doom-popup-prop => doom-popup-property
Also, new doom-popup-properties function.
2017-09-24 20:45:23 +02:00
Henrik Lissner
65d758ce8f
Add doom-popup-inhibit-autokill variable 2017-09-24 20:44:17 +02:00
Henrik Lissner
e6f892b115
Refactor doom-popup-p 2017-09-24 20:42:30 +02:00
Henrik Lissner
558a8d973c
Change doom-popup-buffer & doom-popup-file signature
...and update its references.
2017-09-24 20:41:14 +02:00
Henrik Lissner
51fa99996d
Update+improve doom buffer library docstrings 2017-09-24 19:18:26 +02:00
Henrik Lissner
78db91bdd2
Check if buffer/window is live in doom-popup-p 2017-09-24 18:41:12 +02:00
Henrik Lissner
9b0d333a66
Close popups in doom/kill-all-buffers 2017-09-24 18:40:50 +02:00
Henrik Lissner
5ff9849b39
Sort settings list in doom/describe-settings 2017-09-24 17:10:48 +02:00
Henrik Lissner
78b6676987
doom-resize-window: add two args (window & force-p) 2017-09-24 17:10:47 +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
42fec8494d
Rename doom/reload => doom/reload-load-path 2017-09-19 15:07:57 +02:00
Henrik Lissner
8f0268d9fc
Add GNUTLS feature detection to doom/am-i-secure 2017-09-15 14:37:19 +02:00
Henrik Lissner
d5b84eee3d
Refactor doom/what-face 2017-09-15 14:37:19 +02:00
Henrik Lissner
3345872d7a
Switch to fallback buffer on kill-all-buffers 2017-09-13 12:49:36 +02:00
Henrik Lissner
81c54684de
Fix incorrect user-emacs-directory when updating packages #190 2017-09-05 12:40:54 +02:00
Henrik Lissner
5e393b3233
Ensure module state is initialized on make test 2017-08-09 15:30:42 +02:00
Henrik Lissner
6e8726a624
Simplify core loading process (part 2) 2017-08-08 16:31:48 +02:00
Henrik Lissner
65748c5809
Simplify core loading process 2017-08-08 14:25:36 +02:00
Henrik Lissner
85c28444b3
General cleanup & refactor 2017-08-06 16:30:53 +02:00
Henrik Lissner
0ad96a4100
Switch to fallback buffer on kill-all-buffers 2017-08-04 22:36:06 +02:00
Henrik Lissner
a63640b120
Force interactive when running tests 2017-07-29 00:30:42 +02:00
Henrik Lissner
f2d8681ef4
Refactor line number implementation
+ Add relative line number support (see doom-line-numbers-style)
+ Update doom/toggle-line-numbers
+ New hook functions: doom|enable-line-numbers,
  doom|disable-line-numbers

Addresses #156
2017-07-19 00:25:05 +02:00
Henrik Lissner
439bbe64fa
Add doom|enable-delete-trailing-whitespace 2017-07-17 12:01:45 +02:00
Henrik Lissner
59544391f2
Refactor doom-get-packages
Adds an INSTALLED-ONLY-P argument to doom-get-packages.

Fixes a missing-package error when doom-get-outdated-packages iterates
over packages that aren't installed.

Plus, updated unit tests.
2017-07-14 15:16:32 +02:00
Henrik Lissner
f93fb61f33
Refactor core.el
+ Load Doom core in doom! macro
+ Move automatic minor modes to core-editor
+ Move doom*set-indirect-buffer-filename to core-editor
2017-07-13 00:05:30 +02:00
Henrik Lissner
64aa0fef4d
Appease byte-compiler 2017-07-13 00:00:35 +02:00
Henrik Lissner
4acfe3742b
Less 'nowhere to go' spam on doom/kill-this-buffer 2017-07-13 00:00:34 +02:00
Henrik Lissner
c0bfaec9d4
Add display-line-numbers support in Emacs 26 #59 2017-07-12 23:59:38 +02:00
Henrik Lissner
e87d278811
Remove (interactive) from non-interactive funcs 2017-07-12 14:59:00 +02:00
Henrik Lissner
9c7e431de7
Refactor doom-popup-size (cond -> pcase) 2017-07-11 01:08:30 +02:00
Henrik Lissner
d6133adef0
Refactor doom-popup-prop (cond -> pcase) 2017-07-11 01:06:26 +02:00
Henrik Lissner
65696cebf6
Fix wrong-type-argument: bufferp error on ESC 2017-07-11 01:06:10 +02:00
Henrik Lissner
f40ebf9725
Minor docstring updates 2017-07-09 02:14:45 +02:00
Henrik Lissner
aba1dbce55
Add doom-set-buffer-real fn & doom-real-buffer-p var 2017-07-08 21:08:14 +02:00
Henrik Lissner
99b6274b03
New command: doom/other-popup #141
Like other-window, but for doom popups. Also bound this to `C-x p` in
private module.
2017-07-06 17:46:06 +02:00
Henrik Lissner
8c3693ed47
Add new variable: doom-popup-windows
Contains a list of open popup windows.

This preserves window order. Before this commit, doom-popup-windows (the
function), did not do this.
2017-07-06 17:43:17 +02:00
Henrik Lissner
4fc39a0f71
Rename doom/popup => doom/popup-this-buffer 2017-07-06 16:42:35 +02:00
Henrik Lissner
1d961563c0
Fix #139: no-region error in doom/scratch-buffer 2017-07-05 15:23:20 +02:00
Henrik Lissner
576a91b66c
New macro: with-popup-rules! 2017-07-05 02:59:17 +02:00
Henrik Lissner
6093b81412
+present/big-mode => doom-big-font-mode
And added new variable: doom-big-font

app/present is deprecated so this feature has been moved into core.
2017-07-05 02:58:50 +02:00
Henrik Lissner
ed1a79040e
Revert async package refresh
Unnecessary complexity for negligible gain.
2017-07-04 12:26:34 +02:00
Henrik Lissner
8c1fb1e6b2
+doom:scratch-buffer => doom/scratch-buffer 2017-07-03 03:39:18 +02:00
Henrik Lissner
a002f7025c
Rewrite docstrings for package functions/macros 2017-07-02 16:47:27 +02:00
Henrik Lissner
cca37f2508
Add doom-(pre|post)-reload-theme-hook 2017-06-29 14:58:10 +02:00
Henrik Lissner
fa47730204
Fix void-function error in doom/reload-theme 2017-06-29 11:58:58 +02:00
Henrik Lissner
ecd8ad0f46
Change how themes, fonts & modelines are loaded
WARNING: THIS IS A BREAKING CHANGE FOR THEME/FONT/NLINUM CUSTOMIZATIONS.

This change was motivated by the need to decouple theme and font loading
from the ui/doom module.

Now, it is doom-core's purview. Theme and fonts are loaded after
initfiles are read (attached to the doom-init-ui-hook hook), giving
other modules (especially private ones) a chance to change the theme or
fonts.

+ Refactor core-ui.el
+ New init hook: doom-init-ui-hook
+ Decouple theme/font loading from ui/doom
+ Load modelines are doom-init-ui-hook
+ New theme/font variables (replaces old ui/doom variables)
  + doom-theme
  + doom-font
  + doom-variable-pitch-font
  + doom-unicode-font
+ Change nlinum variables
  + doom-line-number-lpad
  + doom-line-number-rpad
  + doom-line-number-pad-char

Addresses #117
2017-06-28 16:18:24 +02:00
Henrik Lissner
76b020eddb
package management: change output on retry/errors 2017-06-28 15:33:19 +02:00
Henrik Lissner
f246d89fb6
Fix make test:X/Y where Y is omitted
This way, make feature will run all unit tests in feature/* modules.
2017-06-28 15:28:51 +02:00
Henrik Lissner
869bc03ca6
Load bare minimum for tests 2017-06-28 15:28:13 +02:00
Henrik Lissner
510e7116c8
Use different function for :cleanup 2017-06-28 12:26:49 +02:00
Henrik Lissner
5ebda9b0c6
Refactor buffer functions & update tests
+ Split doom-buffer-list into doom-buffer-list
  & doom-project-buffer-list.
+ doom-real-buffers-list => doom-real-buffer-list (for naming
  consistency).
2017-06-28 12:26:49 +02:00
Henrik Lissner
822c78554f
destructuring-bind => cl-destructuring-bind 2017-06-25 02:04:50 +02:00
Henrik Lissner
cbfb3eeda4
Fix, rename & move doom/run-tests => doom-run-tests 2017-06-24 17:15:22 +02:00
Henrik Lissner
83f4f2e725 Remove s.el dependency in doom/packages-update 2017-06-24 02:25:15 +02:00
Henrik Lissner
e2c161cbf8 Clean up doom-get-outdated-packages 2017-06-24 02:25:15 +02:00
Henrik Lissner
50f924bcfc Fix doom-ansi-apply alias to autoload in format!
A wrong-type-argument: symbolp error occurs when core files are
byte-compiled and the expanded message!/format! macros are trying to
cl-flet-alias 'color to doom-ansi-apply (which hasn't been loaded yet).
2017-06-24 02:25:15 +02:00
Henrik Lissner
ee1fb43b93
Make doom-get-outdated-packages asynchronous 2017-06-21 16:09:58 +02:00
Henrik Lissner
8f7e138357
Add debug! macro 2017-06-21 16:09:34 +02:00
Henrik Lissner
7029d287e5
Add doom/toggle-profiler 2017-06-18 23:43:08 +02:00
Henrik Lissner
633e693cab
{Fix,Refactor} doom/describe-{setting,module} 2017-06-14 21:15:19 +02:00
Henrik Lissner
9c93c453e8
Reorganize unit-tests and test workflow
+ Moved unit tests out of tests/ and into their respective modules.
+ Rewrite makefile and added these tasks:
  + <MODULE>/<SUBMODULE> -- byte-compile a specific module
  + test:<MODULE>/<SUBMODULE> -- runs tests for a specific module
  + testi -- run tests in an interactive session of Emacs (WIP)
  + run -- opens an Emacs session with this config; useful when it is in
    a non-standard location.
2017-06-14 21:15:19 +02:00
Henrik Lissner
cacd188286
Replace doom-package-*-p with doom-package-prop 2017-06-14 21:15:19 +02:00
Henrik Lissner
732dee608a
Stability/error-handling refactor (part 1)
This refactor is about improving how Emacs deals with errors.

A large net is now cast at startup to catch possible errors, produce
more helpful error messages, and localize the damage. Significantly
reducing the risk of later modules not loading (and leaving you
stranded in a half-broken Emacs session).

The DOOM core files are an exception. If something messes up in there,
it *should* choke.

+ use-package will now report missing packages or slow-loading/broken
  def-package! configurations.
+ Persp-mode no longer (inadvertantly) hides buffers that pop up at
  startup, like the *Warnings*, *Backtrace* or debugger buffers.
+ `make autoloads` (or doom/reload-autoloads) now produces a slightly
  more informative error message if an error occurs while building the
  autoloads file.
+ Error handling for package management is *slightly* better now; error
  messages now include the type of error; this needs work.
2017-06-14 21:15:19 +02:00
Henrik Lissner
d9d049549f
By default, empty buffer-file-name = unreal buffer 2017-06-12 14:28:59 +02:00
Henrik Lissner
66cfbb2563
Fix quit confirmations in daemon; add for frames
+ Add quit confirmation when closing a frame with real buffers
+ Ensure quit confirmations also work in daemon frames (tty or gui)
2017-06-11 16:24:49 +02:00
Henrik Lissner
7c20a43be6
Clean up quelpa build repos on package deletion 2017-06-10 23:32:59 +02:00
Henrik Lissner
de8269acf8
fixup! Fix doom/what-face not handling face plist specs 2017-06-10 16:10:59 +02:00
Henrik Lissner
ca222c1b75
Fix doom/what-face not handling face plist specs 2017-06-10 16:07:56 +02:00
Henrik Lissner
1ef4d6f190
Optimize buffer library (reduce function calls) 2017-06-09 01:18:31 +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
4d487c3e0f Rewrite buffer tests; refactor doom-kill-buffer 2017-06-08 13:46:23 +02:00
Henrik Lissner
7b5d2063f8 doom-popup-p: don't require window for buffer target 2017-06-08 13:45:04 +02:00
Henrik Lissner
c60de062ce doom/what-minor-mode: accept symbols & handle errors 2017-06-08 11:16:44 +02:00
Henrik Lissner
b4986e908a doom/what-face: return list noninteractively 2017-06-08 11:16:44 +02:00
Henrik Lissner
655e565fe0 doom/what-face: accept pos arg 2017-06-08 11:16:44 +02:00
Henrik Lissner
a2f14183a1
Fix double package-refresh on first install 2017-06-06 12:01:10 +02:00
Henrik Lissner
27bfa14def General refactor + cleanup 2017-06-05 14:23:17 +02:00
Henrik Lissner
435fda0f41
Add :ignore & :freeze support to package! 2017-06-05 14:21:07 +02:00
Henrik Lissner
e8a94535da Fix package update not deleting old folder 2017-06-05 12:35:51 +02:00
Henrik Lissner
1c6ecc660a Improve package management feedback
With quelpa updating fixed, there is a longer delay on package update.
So I added a 'looking for outdated packages...' message, and improved
the formatting of backtraces in debug output.
2017-06-03 21:31:16 +02:00
Henrik Lissner
ca96b0d9c5 Fix wrong-type-argument on quelpa package update 2017-06-03 21:30:41 +02:00
Henrik Lissner
09ec857c60 Fix outdated quelpa package detection 2017-06-03 21:29:33 +02:00
Henrik Lissner
6807a5fda8 Rewrite how doom-update-package updates from ELPA
This is an attempt to make package updating atomic. Previously, if
a package failed to update, it would've been deleted.
2017-06-03 21:01:32 +02:00
Henrik Lissner
45627d6ea6 Initialize more state for package management fns 2017-06-03 12:05:43 +02:00
Henrik Lissner
e4a6780775 How did I miss this mistake?! Argh!
Must've slipped through during one of a 4am debugging session.
2017-06-03 12:05:43 +02:00
Henrik Lissner
e2f06f0692 Fix doom/toggle-line-numbers 2017-05-28 15:39:36 +02:00
Henrik Lissner
29091c40ad Refactor doom-refresh-packages (and make it async) 2017-05-28 02:48:20 +02:00
Henrik Lissner
8ca6e2630b Bring back nlinum
linum-mode *really* slows down buffers when they're displayed in more
than one window. This lag isn't present in nlinum. nlinum isn't perfect
either but... lesser of two evils.

This includes advisors and an ESC hook to mitigate the issue of
disappearing nlinum line numbers.
2017-05-28 02:48:20 +02:00
Henrik Lissner
db6de01b16 Add doom/describe-{setting,module} 2017-05-28 02:48:20 +02:00
Henrik Lissner
42a63c661b Use persistent-soft's native TTL expiration
Don't need to reinvent the wheel.
2017-05-26 20:22:45 +02:00
Henrik Lissner
8615bf23ca Move doom/am-i-secure to autoload/debug 2017-05-26 20:22:45 +02:00
Henrik Lissner
41a288d21d Refactor minibuffer bindings
+ conform their function names to naming conventions
+ place ivy-specific version in ivy autoloads
2017-05-26 20:22:45 +02:00
Henrik Lissner
2cd0818801 Fix error cascade in doom--condition-case! 2017-05-26 20:22:45 +02:00
Henrik Lissner
5d47be15ef doom/popup-close-all: return non-nil on success 2017-05-25 12:20:51 +02:00
Henrik Lissner
5e894027c5 Improve error handling for package management 2017-05-19 22:30:44 +02:00
Henrik Lissner
e678d13ed6 Use HTTPS ELPA sources & verify TLS (#72) 2017-05-19 22:30:34 +02:00
Henrik Lissner
656452df00 General cleanup & refactor; update TODO 2017-05-19 17:21:52 +02:00
Henrik Lissner
254298b1b0 Revise debug/help keybindings & commands 2017-05-19 16:52:32 +02:00
Henrik Lissner
d6220201d7 Fix #70: doom--window-enlargened error 2017-05-19 15:56:35 +02:00
Henrik Lissner
13b2cc9446 Fix whitespacing-eating in org-tables on SPC/DEL 2017-05-19 13:20:50 +02:00
Henrik Lissner
002d4cff9e Remember popup size in history + refactor 2017-05-19 03:01:49 +02:00
Henrik Lissner
6eb5f1c8d1 Add doom/window-enlargen (replace C-w o bind) 2017-05-19 03:00:27 +02:00
Henrik Lissner
323b2f6c2f Refactor package management: better feedback & bug fixes 2017-05-19 02:57:39 +02:00
Henrik Lissner
615cf15313 General refactor & cleanup 2017-05-17 21:07:41 +02:00
Henrik Lissner
310c235bb5 Better doom/what-face; remove unused util defuns 2017-05-17 18:27:02 +02:00
Henrik Lissner
a6c4aace90 Better magit+shackle integration 2017-05-17 18:27:02 +02:00
Henrik Lissner
ac3e63715d core/autoload/packages: refactor 2017-05-16 00:49:35 +02:00
Henrik Lissner
1b253f5bad Turn off nosave-p flag on package-delete
Prevents false positives when updating packages
2017-05-15 22:35:57 +02:00
Henrik Lissner
c492379e07 doom-install-package: inherit plist from doom-packages 2017-05-15 20:26:32 +02:00
Henrik Lissner
a1384d17f6 Refactor doom/sudo-find-file, add doom/sudo-this-file 2017-05-15 20:26:32 +02:00
Henrik Lissner
7f6c38fcb6 Fix package updater unable-to-remove error 2017-05-15 11:09:44 +02:00
Henrik Lissner
7d7ade82b3 Fix doom-update-package errors for unreachable dependencies 2017-05-14 14:37:38 +02:00
Henrik Lissner
5b6f3119c7 doom/popup-restore: clone file buffers if needed 2017-05-14 14:37:06 +02:00
Henrik Lissner
1ab5f86188 core-popups: read rules from local var 2017-05-14 14:36:49 +02:00
Henrik Lissner
25fa4e019c General refactor & cleanup
+ refactor package management
+ core-editor: describe ediff
+ core-popups: alphabetized hack blocks
+ ui/doom-modeline: refactor buffer path fn
+ feature/version-control/+git: autoload magit-blame
2017-05-14 09:56:32 +02:00
Henrik Lissner
5491fd552e Replace nlinum with linum 2017-05-13 22:40:52 +02:00
Henrik Lissner
afb31659a3 General refactor & cleanup 2017-05-13 00:14:17 +02:00
Henrik Lissner
7fbaf2ced1 General cleanup & refector; update TODO.org 2017-05-12 14:18:27 +02:00
Henrik Lissner
ed6941e8ae core-popups: clone buffer if visible elsewhere
Allows us to modify the buffer in the pop up window indepdently from the
rest.
2017-05-12 12:17:01 +02:00
Henrik Lissner
388e5b4711 feature/evil: rewrite :mv & :rm (file move/delete commands) 2017-05-12 12:17:01 +02:00
Henrik Lissner
195609d89d doom/cleanup-buffers: support ex command usage 2017-05-12 11:49:01 +02:00
Henrik Lissner
2044872b9b Move doom/reset-theme to ui/doom (and update binding) 2017-05-11 21:45:50 +02:00
Henrik Lissner
3dcc423308 Refactor doom/window-zoom
Inspired by gilbertw1/bmacs's +gdoom/toggle-maximize-buffer
2017-05-11 09:48:26 +02:00
Henrik Lissner
e265431507 General refactor, cleanup & commenting 2017-05-10 05:28:50 +02:00
Henrik Lissner
90b4e22008 doom-minibuffer-kill-word: fall back to evil/ivy delete char 2017-05-06 23:25:34 +02:00
Henrik Lissner
db1deb4a18 Fix M-z in minibuffer (ivy/evil/etc) 2017-05-06 23:01:09 +02:00
Henrik Lissner
5d83fe83ca Prevent 'Text is read-only' monopolizing minibuffer (ivy/evil/minibuffer) 2017-05-06 22:56:43 +02:00
Henrik Lissner
09218f5bb3 core-editor: refactor large-file detection 2017-05-06 22:55:10 +02:00
Bryan Gilbert
712c01f4f4 add `doom/large-file-check to prompt literal open of large files 2017-05-06 11:53:10 -04:00
Henrik Lissner
acca0a86c7 Redesign doom-system-os 2017-05-03 22:03:08 +02:00
Henrik Lissner
d651311d1d Various tweaks & clean up 2017-05-01 14:52:29 -04:00
Henrik Lissner
b425f45875 Add doom/sudo-find-file 2017-04-26 15:25:34 -04:00
Henrik Lissner
49b4b39dfe autoload/packages: refactor + improve output consistency 2017-04-18 05:45:47 -04:00
Henrik Lissner
4159da2f37 autoload/packages: no-byte-compile = t 2017-04-18 05:44:39 -04:00
Henrik Lissner
8854573d2b Package management: fix wrong-type-argument errors in error handling 2017-04-18 05:09:15 -04:00
Henrik Lissner
e57ba47c5a General cleanup + refactor 2017-04-17 16:54:31 -04:00
Henrik Lissner
a94a591072 message!: add newline in doom buffer 2017-04-17 16:54:00 -04:00
Henrik Lissner
5e2c483923 core/autoload/system: rewrite doom-fetch (factor out s.el dependency) 2017-04-17 02:19:37 -04:00
Henrik Lissner
ed2e7a65f6 Refactor out s.el usage 2017-04-17 02:18:25 -04:00
Henrik Lissner
5ae94b765c PRAISE BE TO THE BYTE COMPILER FOR THY SHARP QUOTES 2017-04-17 02:17:10 -04:00
Henrik Lissner
3e0f83261b Colored autoremoval output + use symbol-name for package names 2017-04-16 11:55:04 -04:00
Henrik Lissner
9288b59d91 Remove spacing in package management output 2017-04-16 11:54:22 -04:00
Henrik Lissner
fedfa1ffad Generalize message! & format! (interactive vs noninteractive) 2017-04-15 03:14:03 -04:00
Henrik Lissner
e48c6c5381 ansi-{format,message}! => {format,message}! (to be generalized) 2017-04-15 01:29:24 -04:00
Henrik Lissner
e32a804f1d autoload/message: doom--ansi-apply => doom-ansi-apply + autoload 2017-04-15 01:22:42 -04:00
Henrik Lissner
9c647ec636 doom/packages-install: fix format error on skipped packages 2017-04-12 12:06:19 -04:00
Henrik Lissner
c370e1cddd Add :disabled property to def-test-group! 2017-04-12 10:52:42 -04:00
Henrik Lissner
e50dabfde4 Replace ansi plugin with internal ansi library 2017-04-12 10:51:29 -04:00
Henrik Lissner
6e6f1a6698 Package management: color-coded feedback to stdout in terminal 2017-04-12 08:53:54 -04:00
Henrik Lissner
d8a0bc7827 doom/cleanup-buffers: add all-p parameter 2017-04-12 08:52:22 -04:00