199199
200200(defvar elixir-mode--eval-filename " elixir-mode-tmp-eval-file.exs" )
201201
202+ (defvar elixir-quoted--buffer-name " *elixir-quoted*" )
203+
202204(defvar elixir-basic-offset 2 )
203205(defvar elixir-key-label-offset 0 )
204206(defvar elixir-match-label-offset 2 )
@@ -492,6 +494,18 @@ Argument FILE-NAME ."
492494 (when (string= compiler-output " " )
493495 (message " Compiled and saved as %s " (elixir-mode-compiled-file-name)))))
494496
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+
495509;;;### autoload
496510(defun elixir-mode-iex (&optional args-p )
497511 " Elixir mode interactive REPL.
@@ -542,7 +556,7 @@ Optional argument ARGS-P ."
542556 file))
543557
544558(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))'"
559+ (format " %s -e 'IO.puts inspect(elem(Code.string_to_quoted(File.read!(\" %s \" )), 1), pretty: true )'"
546560 elixir-mode-command
547561 file))
548562
@@ -566,7 +580,7 @@ Optional argument ARGS-P ."
566580
567581(defun elixir-mode--string-to-quoted (string )
568582 (let* ((output (elixir-mode--execute-elixir-with-code-string-to-quoted string)))
569- (message output)))
583+ (elixir-quoted--initialize-buffer output)))
570584
571585(defun elixir-mode-eval-on-region (beg end )
572586 " Evaluate the Elixir code on the marked region.
@@ -646,6 +660,12 @@ Argument END End of the region."
646660 (t
647661 (remove-hook 'after-save-hook 'elixir-mode-compile-file t ))))
648662
663+ (define-minor-mode elixir-quoted-minor-mode
664+ " Minor mode for displaying elixir quoted expressions"
665+ :group 'elixir-quoted :lighter " quoted"
666+ :keymap '((" q" . quit-window))
667+ (setq buffer-read-only t ))
668+
649669;;;### autoload
650670(defun elixir-mode-run-tests ()
651671 " Run ERT test for `elixir-mode' ."
0 commit comments