Commit Graph

18 Commits

Author SHA1 Message Date
790c2a6d84 fix(eval): eros overlay going off-screen
Evaluating code (and :tools (eval +overlay) enabled) will do one of two
things with the return value:

If long, it will be displayed in a popup window on the bottom of the
frame. If short (<3-4 lines), it will be displayed in an overlay at the
end of the line.

If you happened to have scrolled horizontally (such that the BOL isn't
visible), the overlay would be displayed offscreen and unreadable. Any
attempt to scroll it into view will cause it to disappear (as per its
transient nature). This fix pads each newline in said overlay such that
the overlay is pushed into view.
2022-08-07 19:43:27 +02:00
7290f85cfd feat(eval): set load-true-file-name & buffer-file-truename
So they are available in evaluated contexts.
2022-01-27 03:50:52 +01:00
aebd4b0c99 docs(eval): explain DWIM behavior 2021-12-18 10:45:17 -05:00
fea561f678 feat(eval): :send-region and :send-buffer handlers
Ref: #2496
2021-12-18 10:45:17 -05:00
14d341530a tools/eval: always eval elisp in current session
If you used an +eval/* command from a non-emacs-lisp-mode buffer,
quickrun would prompt you for a program to evaluate the code with. If
you selected "emacs" the code would evaluate in an external Emacs
process and return displayed output (stdout).

This commit changes +eval/buffer, +eval/region, and
+eval/region-and-replace (and all the other +eval commands that use
them) to evaluate code in the current session instead.
2021-02-24 18:06:30 -05:00
8bbac4bfb3 Minor refactors 2020-08-08 03:06:26 -04:00
345479c29e Always display evaluated result in popup buffer
If +eval isn't enabled
2020-01-07 14:27:02 -05:00
7ef3bee851 Consider eval output width when deciding how to display it
If ':tools (eval +overlay)' is enabled, eval commands display their
output in a floating overlay at EOL. If the output is longer than
+eval-popup-min-lines (5), it will display it in a popup window instead.

With this, it also will use a popup window if the output is longer than
the minibuffer can display in one line,
2019-12-28 13:53:13 -05:00
318754c4d2 Prevent eval results from consuming > half the frame 2019-12-05 20:48:53 -05:00
26c8f5c6ef Bytecompiler bytecompiler, won't you shut up 2019-11-23 01:21:25 -05:00
c2db4a8708 tools/eval: add REPL support for +eval/buffer 2019-11-15 00:17:10 -05:00
762c374198 Rename +eval-overlay-max-lines -> +eval-popup-min-lines
Generalize variable.
2019-10-29 18:19:02 -04:00
d2fe021bd9 tools/eval: display in minibuffer if below threshold
If it's just a couple lines, display in minibuffer instead.
2019-10-26 03:54:09 -04:00
36c9f7c333 tools/eval: fix popup when +overlay is disabled 2019-10-26 03:53:54 -04:00
84a063ca78 tools/eval: add +overlay feature
Now, inline evaluation will display results in an overlay next to the
cursor, rather than in the minibuffer (unless it gets too big, in which
case it'll use a popup buffer).
2019-10-26 02:12:58 -04:00
a940d07e4b tools/eval: minor refactors 2019-10-24 19:23:17 -04:00
2214c3175e Minor tweaks across the board 2019-05-21 00:34:32 -04:00
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