199
199
200
200
(defvar elixir-mode--eval-filename " elixir-mode-tmp-eval-file.exs" )
201
201
202
+ (defvar elixir-quoted--buffer-name " *elixir-quoted*" )
203
+
202
204
(defvar elixir-basic-offset 2 )
203
205
(defvar elixir-key-label-offset 0 )
204
206
(defvar elixir-match-label-offset 2 )
@@ -492,6 +494,19 @@ Argument FILE-NAME ."
492
494
(when (string= compiler-output " " )
493
495
(message " Compiled and saved as %s " (elixir-mode-compiled-file-name)))))
494
496
497
+ (defun elixir-quoted--initialize-buffer (quoted )
498
+ (pop-to-buffer elixir-quoted--buffer-name)
499
+ (setq buffer-undo-list nil ) ; Get rid of undo information from
500
+ ; previous expansions
501
+ (let ((inhibit-read-only t )
502
+ (buffer-undo-list t )) ; Ignore undo information
503
+ (erase-buffer )
504
+ (insert quoted)
505
+ (goto-char (point-min ))
506
+ (elixir-mode)
507
+ (elixir-quoted-minor-mode 1 )
508
+ (font-lock-ensure )))
509
+
495
510
;;;### autoload
496
511
(defun elixir-mode-iex (&optional args-p )
497
512
" Elixir mode interactive REPL.
@@ -542,7 +557,7 @@ Optional argument ARGS-P ."
542
557
file))
543
558
544
559
(defun elixir-mode--code-string-to-quoted-command (file )
545
- (format " %s -e 'IO.puts inspect(elem(Code.string_to_quoted(File.read!(\" %s \" )), 1))'"
560
+ (format " %s -e 'IO.puts inspect(elem(Code.string_to_quoted(File.read!(\" %s \" )), 1), pretty: true )'"
546
561
elixir-mode-command
547
562
file))
548
563
@@ -566,7 +581,7 @@ Optional argument ARGS-P ."
566
581
567
582
(defun elixir-mode--string-to-quoted (string )
568
583
(let* ((output (elixir-mode--execute-elixir-with-code-string-to-quoted string)))
569
- (message output)))
584
+ (elixir-quoted--initialize-buffer output)))
570
585
571
586
(defun elixir-mode-eval-on-region (beg end )
572
587
" Evaluate the Elixir code on the marked region.
@@ -646,6 +661,12 @@ Argument END End of the region."
646
661
(t
647
662
(remove-hook 'after-save-hook 'elixir-mode-compile-file t ))))
648
663
664
+ (define-minor-mode elixir-quoted-minor-mode
665
+ " Minor mode for displaying elixir quoted expressions"
666
+ :group 'elixir-quoted :lighter " quoted"
667
+ :keymap '((" q" . quit-window))
668
+ (setq buffer-read-only t ))
669
+
649
670
;;;### autoload
650
671
(defun elixir-mode-run-tests ()
651
672
" Run ERT test for `elixir-mode' ."
0 commit comments