Commit graph

50 commits

Author SHA1 Message Date
Henrik Lissner
ad6a3d0f33
refactor: deprecate featurep! for modulep!
featurep! will be renamed modulep! in the future, so it's been
deprecated. They have identical interfaces, and can be replaced without
issue.

featurep! was never quite the right name for this macro. It implied that
it had some connection to featurep, which it doesn't (only that it was
similar in purpose; still, Doom modules are not features). To undo such
implications and be consistent with its namespace (and since we're
heading into a storm of breaking changes with the v3 release anyway),
now was the best opportunity to begin the transition.
2022-08-14 20:43:35 +02:00
Daniel Levy Moreno
6a038068d2
fix(rss): unbalanced parens in map!
Amend: 85b16f2f48
2022-01-31 01:19:11 +01:00
Daniel Levy Moreno
85b16f2f48
refactor(rss): factor out hardcoded workspace name 2022-01-30 20:43:07 +01:00
Jeetaditya Chatterjee
2476c3e780 feat(rss): add elfeed-goodies package 2021-09-27 14:43:08 +01:00
Jeetaditya Chatterjee
279a897862 feat(rss): add +rss/copy-link command
Add the copy link function and bind it to `gc` as a way to draw similar
comparisons to `go` which takes the entry link and sends it to the
browser
2021-09-27 14:43:08 +01:00
Henrik Lissner
bbdea54b77 app/rss: fix empty rmh-elfeed-org-files
Due to overeager cleanup that we now defer until elfeed-org consults
rmh-elfeed-org-files.
2021-02-26 21:33:00 -05:00
Henrik Lissner
1ed06e68cc
Prevent rmh-elfeed-org-files being overwritten
Because :after changes when :init is evaluated. Without :after, it's
evaluated before the package is loaded. With :after, it is evaluated
after the package is loaded, but before its :config block.

:preface is what we want; it is always evaluated before the package is
loaded.
2020-02-29 18:17:01 -05:00
Henrik Lissner
5689fe5a23
Set elfeed dir vars before package loads
To be consistent with other dir/file vars.
2020-02-29 17:59:03 -05:00
Henrik Lissner
e3d7b2662c
Don't throw error if elfeed org file does not exist
The user may not want an org file, so we shouldn't impose this error on
them if one doesn't exist.
2020-02-18 00:20:35 -05:00
Henrik Lissner
60fde473d4
Remove +rss-elfeed-files & use rmh-elfeed-org-files
No need for the abstraction.
2020-02-18 00:20:35 -05:00
Henrik Lissner
a3e262c7ac
💥 Refactor add-hook! macro & change arg order
This update may potentially break your usage of add-hook! if you pass
the :local or :append properties to it. This is how they used to work:

  (add-hook! :append 'some-mode-hook #'do-something)

Thsoe properties must now follow the hooks, e.g.

  (add-hook! 'some-mode-hook :append #'do-something)

Other changes:
- Various add-hook calls have been renamed to add-hook! because I
  incorrectly assumed `defun` always returned its definition's symbol,
  when in fact, its return value is "undefined" (so sayeth the
  documentation). This should fix #1597.
- This update adds the ability to add multiple functions to hooks
  without a list:

    (add-hook! 'some-mode-hook
               #'do-something
               #'do-something-else)

- The indentation logic has been changed so that consecutive function
  symbols at indented at the same level as the first argument, but forms
  are indent like a defun.

    (add-hook! 'some-mode-hook
               #'do-something
               #'do-something-else)

    (add-hook! 'some-mode-hook
      (message "Hello"))
2019-07-26 20:17:29 +02:00
Henrik Lissner
76cacb5bfe
💥 Rename def-package! -> use-package!
Calling this pivotal macro "def-package!" has frequently been a source
of confusion. It is a thin wrapper around use-package, and it should be
obvious that it is so. For this reason, and to match the naming
convention used with other convenience macros/wrappers, it is now
use-package!.

Also changes def-package-hook! -> use-package-hook!

The old macros are now marked obsolete and will be removed when straight
integration is merged.
2019-07-23 12:50:45 +02:00
Henrik Lissner
c795a988e6
Conform many modules to new conventions 2019-07-23 12:30:47 +02:00
Henrik Lissner
77e4cc4d58
💥 Remove :feature category
:feature was a "catch-all" category. Many of its modules fit better in
other categories, so they've been moved:

- feature/debugger -> tools/debugger
- feature/evil -> editor/evil
- feature/eval -> tools/eval
- feature/lookup -> tools/lookup
- feature/snippets -> editor/snippets
- feature/file-templates -> editor/file-templates
- feature/workspaces -> ui/workspaces

More potential changes in the future:

- A new :term category for terminal emulation modules (eshell, term and
  vterm).
- A new :os category for modules dedicated to os-specific functionality.
  The :tools macos module would fit here, but so would modules for nixos
  and arch.
- A new :services category for web-service integration, like wakatime,
  twitter, elfeed, gist and pastebin services.
2019-04-24 18:16:04 -04:00
Henrik Lissner
ca32f7b7d1
app/rss: improve entry readability
By not using variable-pitch fonts in the SHR-converted output and
allowing images to be larger than 60% of the window's width.

Also corrects the docstring for +rss|elfeed-wrap, promising to use
`visual-fill-column-mode` when it doesn't (and never did).

Also changes `=rss` to an alias.
2019-04-02 15:47:09 -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
f52008873e
Refactor app/rss & improve kill-buffer process 2018-06-29 15:08:06 +02:00
Henrik Lissner
ba674c8744
Slice images in rss entries for easier scrolling
Can be disabled with +rss-enable-sliced-images.
2018-06-29 14:12:50 +02:00
Henrik Lissner
db0ad48e4d
Enable evil-collection-elfeed 2018-06-29 14:12:50 +02:00
Henrik Lissner
1a923441ff
Fix infinite-recursion when killing elfeed buffers 2018-06-29 14:12:50 +02:00
Henrik Lissner
b583af198d
Pop up elfeed-show buffers below current
Instead of in a frame popup. You no longer are required to run elfeed in
fullscreen.
2018-06-29 13:57:21 +02:00
Henrik Lissner
6c0c6ee47b
Fix infinite recursion when quitting elfeed
+rss/quit kills the buffer, triggering its kill-buffer-hook, which calls
+rss/quit, triggering its kill-buffer-hook, which calls +rss/quit,
triggering its kill-buffer-hook, which calls +rss/quit, triggering its
kill-buffer-hook, which calls +rss/quit, triggering its
kill-buffer-hook, which calls +rss/quit, triggering its
kill-buffer-hook, which calls +rss/quit, triggering its
kill-buffer-hook, which calls +rss/quit, which summons Cthulhu...
2018-06-28 14:40:12 +02:00
Henrik Lissner
e9ccc09fe4
Fix featurep! check in app/rss
Reported by @sarg
2018-06-27 20:35:49 +02:00
Henrik Lissner
e6a89e4bf9
app/rss: fix keymapp error & refactor keybinds 2018-06-26 18:58:02 +02:00
Henrik Lissner
6808c46b58
💥 Change set-popup-rule! usage
Now accepts a flat plist of all its former parameters, including new
:parameters and :actions properties to increase your control over the
fate of your windows.

The old usage of set-popup-rule! is deprecated and may not work right!

The :ui popup module has also seen a major refactor to improve
efficiency and load times.

Sorry! This is the last "big" change before 2.1!
2018-06-18 02:34:16 +02:00
Henrik Lissner
d8b1e469bc
Introduce autodefs to replace some settings
+ :popup -> set-popup-rule!
+ :popups -> set-popup-rules!
+ :company-backend -> set-company-backend!
+ :evil-state -> set-evil-initial-state!

I am slowly phasing out the setting system (def-setting! and set!),
starting with these.

What are autodefs? These are functions that are always defined, whether
or not their respective modules are enabled. However, when their modules
are disabled, they are replaced with macros that no-op and don't
waste time evaluating their arguments.

The old set! function will still work, for a while.
2018-06-15 03:42:01 +02:00
Henrik Lissner
6693db48af
Mark +org-dir obsolete (use org-directory instead)
I prefer not to invent new variables when they aren't strictly
necessary. org-directory is one such variable (although the other path
variables are still necessary).
2018-06-15 01:05:22 +02:00
Henrik Lissner
32a2a2b64d
General, minor refactor
+ Group hooks with add-hook!
+ Sharpquote elfeed call
+ Extract elfeed buffer detector into function and ensure idempotency of
  doom-real-buffer-functions
2018-06-03 15:51:59 +02:00
Henrik Lissner
1e81a35461
Minimize dependence on map!
This is in preparation for general.el integration coming in 2.1.1. It is
very likely that map! will change (and even more, be split into several
macros). Not much, but change none-the-less. Specifically, the state
keywords (e.g. :nvi, :n, :i) will be removed in favor of a :state
property that takes a list, e.g. (normal visual insert).

In any case, both map! and general are also relatively expensive
compared to define-key and evil-define-key* (and the new define-key!
macro), so use that when we can.

This also means changes to either API won't affect Doom's modules in the
long term.
2018-06-03 15:46:00 +02:00
Henrik Lissner
da416736ef
app/rss: minor refactor; new flag (+org) 2018-02-19 20:20:25 -05:00
Henrik Lissner
70c8e3cb52
app/rss: bind M-RET = open entry in browser 2018-02-17 04:56:27 -05:00
Henrik Lissner
9f471806fe
app/rss: add :popup rule for elfeed-entry windows 2018-02-17 04:56:16 -05:00
Henrik Lissner
d8be0a5f4c
app/rss: move default elfeed file 2018-02-17 04:56:03 -05:00
Sergey Trofimov
efce68bc29 Make elfeed-org ready at elfeed start. 2018-02-10 19:52:00 +03:00
Henrik Lissner
414383e5f4
Remove vestigial references to doom/{next,previous}-buffer 2018-02-04 05:05:40 -05:00
Henrik Lissner
b681917082
Remove/replace references to doom-popup-buffer 2018-01-06 03:27:23 -05:00
Henrik Lissner
8e875bfa0e
Phase out doom-kill-buffer 2018-01-04 03:01:35 -05:00
Henrik Lissner
649c9649c1
app/rss: elfeed-org after elfeed *and* org 2017-12-26 19:27:49 -05:00
Henrik Lissner
a24e22cf57
cl-pushnew => push
Now that doom//byte-compile and doom//reload-autoloads always run in an
isolated Emacs session, there is little need to ensure idempotency of
the current session's state.
2017-11-10 00:19:05 +01:00
Henrik Lissner
be0e23686b
org/org: resolve +rss-elfeed-files later
This gives the user more time to change +org-dir.
2017-09-12 14:52:37 +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
af3b6ee7e0 app/rss: revise maps & popup rules 2017-05-14 10:12:41 +02:00
Henrik Lissner
0e7254d312 General cleanup + refactor 2017-04-17 02:20:07 -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
8f970eb1d8 Rearrange .local file structure (voids previous cache structure) 2017-04-16 20:36:15 -04:00
Henrik Lissner
813630fc56 app/rss: add +rss/quit command 2017-04-10 15:54:54 -04:00
Henrik Lissner
c14a61946b app/rss: don't hide mode-line in listing window + make =rss less opinionated 2017-04-08 01:31:09 -04:00
Henrik Lissner
3d77989c66 app/rss: add elfeed-search-live-filter keybinding 2017-03-08 21:34:18 -05:00
Henrik Lissner
ae614c9c6f General cleanup + refactor 2017-03-08 14:41:32 -05:00
Henrik Lissner
ca8b3b18fa Add modules/app/rss (WIP) 2017-03-06 22:01:37 -05:00