Skip to content

Commit

Permalink
Add scripts for loading vscode snippets
Browse files Browse the repository at this point in the history
  • Loading branch information
yyoncho committed Dec 3, 2019
1 parent 6532b97 commit b121626
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions scripts/lsp-vscode-snippets.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@

(defun lsp-load-and-save-snippets (file-name mode dir)
(ht-each
(-lambda (name (&hash "description" "body" "prefix"))
(with-temp-buffer (insert (format "# -*- mode: snippet -*-
# name: %s
# key: %s
# --
%s
"
name
prefix
(lsp-fix-snippet (s-join "\n" body))))
(yas-load-snippet-buffer mode)
(f-write-text (buffer-string) 'utf-8 (f-join dir prefix))
))
(json-parse-string (f-read-text file-name))))

(defun lsp-fix-snippet (string)
(-let* ((regex "\\(\\${[[:digit:]]*:[[:alnum:]]*}\\).*")
(part (cl-second (s-match regex string))))
(if part
(let* ((index (s-index-of part string))
(s1 (substring string 0 (+ index (length part))))
(s2 (substring string (+ index (length part)))))
(concat s1 (lsp-fix-snippet (s-replace part (concat "$" (cl-second (s-match "{\\([[:digit:]]*\\).*}" part))) s2))))
string)))

;; (lsp-load-and-save-snippets "/home/kyoncho/Sources/vscode-mssql/snippets/mssql.json" 'sql-mode "/home/kyoncho/Sources/lsp/lsp-mssql/snippets/")

0 comments on commit b121626

Please sign in to comment.