8000 added browser functions for fallback in case of svg rendering issues. by andorsk · Pull Request #19 · andorsk/d2-mode · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

added browser functions for fallback in case of svg rendering issues. #19

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Nov 29, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 12 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,21 +83,18 @@ By default `d2-tmp-dir` points to `\tmp\`. Feel free to set it to a more appropr
To customize the key bindings but this into your `init.el` ...

```elisp
(setq d2-mode-map
(let ((map d2-mode-map))
(define-key map (kbd "C-c C-c") nil)
(define-key map (kbd "C-c C-f") nil)
(define-key map (kbd "C-c C-b") nil)
(define-key map (kbd "C-c C-r") nil)
(define-key map (kbd "C-c C-o") nil)
(define-key map (kbd "C-c C-d") nil)
(define-key map (kbd "C-c C-d c") 'd2-compile)
(define-key map (kbd "C-c C-d c") 'd2-compile)
(define-key map (kbd "C-c C-d f") 'd2-compile-file)
(define-key map (kbd "C-c C-d b") 'd2-compile-buffer)
(define-key map (kbd "C-c C-d r") 'd2-compile-region)
(define-key map (kbd "C-c C-d o") 'd2-open-browser)
(define-key map (kbd "C-c C-d d") 'd2-open-doc)
(defvar d2-mode-map
(let ((map (make-sparse-keymap)))
(define-key map (kbd "C-c C-c") 'd2-compile)
(define-key map (kbd "C-c C-f") 'd2-compile-file)
(define-key map (kbd "C-c C-b") 'd2-compile-buffer)
(define-key map (kbd "C-c C-r") 'd2-compile-region)
(define-key map (kbd "C-c C-h") 'd2-compile-file-and-browse)
(define-key map (kbd "C-c C-j") 'd2-compile-buffer-and-browse)
(define-key map (kbd "C-c C-k") 'd2-compile-region-and-browse)
(define-key map (kbd "C-c C-o") 'd2-open-browser)
(define-key map (kbd "C-x C-o") 'd2-view-current-svg)
(define-key map (kbd "C-c C-d") 'd2-open-doc)
map))

```
Expand Down
49 changes: 41 additions & 8 deletions d2-mode.el
Original file line number Diff line number Diff line change
Expand Up @@ -140,25 +140,54 @@ and indentation. STR is the declaration."
(interactive)
(let* ((tmp-file-name (concat d2-tmp-dir "current-buffer.d2")))
(write-region (point-min) (point-max) tmp-file-name)
(d2-compile-file tmp-file-name)))
(d2-compile-file-with-options tmp-file-name)))

(defun d2-compile-region ()
(defun d2-compile-region (&optional browse)
"Compile the current d2 region using d2."
(interactive)
(let* ((tmp-file-name (concat d2-tmp-dir "current-region.d2")))
(when (use-region-p)
(write-region (region-beginning) (region-end) tmp-file-name)
(d2-compile-file tmp-file-name))))
(d2-compile-file tmp-file-name browse))))

(defun d2-compile-file (file-name)
"Compile the given d2 file using d2."
(defun d2-compile-region-and-browse ()
"Compile the current d2 region using d2 and browse on browser."
(interactive)
(d2-compile-region t))

(defun d2-compile-file (file-name &optional browse)
"Compile the given d2 file using d2. browse option determines opening method"
(interactive "fFilename: ")
(let* ((input file-name)
(output (concat (file-name-sans-extension input) d2-output-format)))
(message output)
(apply #'call-process d2-location nil "*d2*" nil (list input output))
(display-buffer (find-file-noselect output t))))
(if (equal browse t)
(progn
(d2-browse-file output))
(progn
(display-buffer (find-file-noselect output t))))))

(defun d2-view-current-svg ()
"view the current svg in the browser"
(interactive)
(d2-browse-file buffer-file-name))

(defun d2-browse-file (file-name)
"View a file in the browser"
(interactive "fFilename: ")
(let ((url file-name))
(browse-url url)))

(defun d2-compile-file-with-options (file-name &optional browse)
"compile file with options"
(interactive "fFilename: ")
(message "compiling with current options")
(d2-compile-file file-name browse))

(defun d2-compile-buffer-and-browse()
"compile buffer and browse"
(interactive)
(d2-compile-file-with-options buffer-file-name t))

(defun d2-open-doc ()
"Open the d2 home page and doc."
Expand All @@ -171,7 +200,11 @@ and indentation. STR is the declaration."
(define-key map (kbd "C-c C-f") 'd2-compile-file)
(define-key map (kbd "C-c C-b") 'd2-compile-buffer)
(define-key map (kbd "C-c C-r") 'd2-compile-region)
(define-key map (kbd "C-c C-h") 'd2-compile-file-and-browse)
(define-key map (kbd "C-c C-j") 'd2-compile-buffer-and-browse)
(define-key map (kbd "C-c C-k") 'd2-compile-region-and-browse)
(define-key map (kbd "C-c C-o") 'd2-open-browser)
(define-key map (kbd "C-x C-o") 'd2-view-current-svg)
(define-key map (kbd "C-c C-d") 'd2-open-doc)
map))

Expand All @@ -186,4 +219,4 @@ and indentation. STR is the declaration."

(provide 'd2-mode)

;;; d2-mode.el ends here
;;; d2-mode.el ends here
0