[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/sketch-mode 19202c7 32/38: Implement first step for sni
From: |
ELPA Syncer |
Subject: |
[elpa] externals/sketch-mode 19202c7 32/38: Implement first step for snippets/import |
Date: |
Wed, 15 Sep 2021 16:57:39 -0400 (EDT) |
branch: externals/sketch-mode
commit 19202c75aa53305d509480cece8fec03ff86a35c
Author: Daniel Nicolai <dalanicolai@gmail.com>
Commit: Daniel Nicolai <dalanicolai@gmail.com>
Implement first step for snippets/import
---
sketch-mode.el | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
diff --git a/sketch-mode.el b/sketch-mode.el
index 7c303d5..418377a 100644
--- a/sketch-mode.el
+++ b/sketch-mode.el
@@ -1006,6 +1006,59 @@ PROPS is passed on to `create-image' as its PROPS list."
(pp lisp (current-buffer))
(end-of-buffer)))
+;;; import/snippets
+
+(defun sketch-snippets-add-ids (dom)
+ (let ((idx 0))
+ (dolist (n (dom-by-tag dom 'g))
+ (dom-set-attribute n 'id (number-to-string idx))
+ (setq idx (1+ idx)))))
+
+(defun sketch-snippets-add-labels (svg-file)
+ (interactive "f")
+ (let (dom)
+ (with-temp-buffer "svg"
+ (insert-file-contents-literally svg-file)
+ (xml-remove-comments (point-min) (point-max))
+ (setq dom (libxml-parse-xml-region (point-min)
(point-max)))
+ (sketch-snippets-add-ids dom))
+ (mapc (lambda (n)
+ (let* ((s (dom-attr n 'transform))
+ (coords (when s
+ (split-string
+ (string-trim
+ s
+ "translate(" ")")
+ ","))))
+ (svg-text dom
+ (dom-attr n 'id)
+ :x (car coords)
+ :y (cadr coords)
+ :font-size 10
+ :stroke "red"
+ :fill "red")))
+ (cdr (dom-by-tag dom 'g)))
+ (unless sketch-mode
+ (user-error "Not in sketch-mode buffer"))
+ ;; (save-current-buffer
+ ;; (when lisp-buffer
+ ;; (sketch-update-lisp-window lisp lisp-buffer))
+ ;; (let ((lisp-window (or (get-buffer-window "*sketch-root*")
+ ;; (get-buffer-window lisp-buffer))))
+ ;; (unless (string= (buffer-name (window-buffer lisp-window))
"*sketch*")
+ ;; (if-let (buf (get-buffer"*sketch-root*"))
+ ;; (sketch-update-lisp-window sketch-root buf)
+ ;; (sketch-update-lisp-window lisp lisp-buffer))))
+ ;; (setq sketch-root (append (subseq sketch-root 0 2) (list (nth (car
show-layers) svg-layers))))
+ ;; (dolist (layer (cdr show-layers))
+ ;; (setq sketch-root (append sketch-root (list (nth layer
svg-layers)))))
+ ;; (setq sketch-svg (append svg-canvas
+ ;; (when sketch-show-grid (list sketch-grid))
+ ;; (when sketch-show-labels (list
(sketch-labels)))
+ ;; (list sketch-root)))
+ (erase-buffer) ;; a (not exact) alternative is to use (kill-backward-chars
1)
+ (insert-image (svg-image dom))
+ (print dom)))
(provide 'sketch-mode)
;;; sketch-mode.el ends here
- [elpa] externals/sketch-mode 7583fcb 17/38: Fix variable names and implement svg lisp togglable side window, (continued)
- [elpa] externals/sketch-mode 7583fcb 17/38: Fix variable names and implement svg lisp togglable side window, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 8b63796 19/38: First try: implement update for both type side-winows, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode ec35bb4 23/38: Add xml processing instruction and DOCTYPE element (see #4), ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 846f4a0 24/38: Implement layers (incl. reformat labels), ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 6433b20 30/38: Add circle/ellipse labels, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 406f51d 25/38: Fix undo-redo (i.e. switch to use undo-tree-mode), ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 9eb86b8 31/38: Add comments and cleanup, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode aaac04d 38/38: Fix indentation (simply auto indent complete file), ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 0005a3a 27/38: Add sketch-mapcons function (refactor sketch--circle-radius), ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode bebba7b 37/38: Fix add layer mechanism, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 19202c7 32/38: Implement first step for snippets/import,
ELPA Syncer <=