diff --git a/modules/feature/snippets/autoload/evil.el b/modules/feature/snippets/autoload/evil.el index a9d254214..4783eddae 100644 --- a/modules/feature/snippets/autoload/evil.el +++ b/modules/feature/snippets/autoload/evil.el @@ -10,8 +10,8 @@ and switches to insert mode if there are editable fields." (cl-letf (((symbol-function 'region-beginning) (lambda () evil-visual-beginning)) ((symbol-function 'region-end) (lambda () evil-visual-end))) (yas-insert-snippet)) - (let* ((snippet (first (yas--snippets-at-point))) - (fields (yas--snippet-fields snippet))) - (evil-insert-state +1) - (unless fields (evil-change-state 'normal)))) + (when-let (snippet (car-safe (yas--snippets-at-point))) + (let ((fields (yas--snippet-fields snippet))) + (evil-insert-state +1) + (unless fields (evil-change-state 'normal))))) diff --git a/modules/feature/snippets/autoload/snippets.el b/modules/feature/snippets/autoload/snippets.el index 0567e3eed..4c3896778 100644 --- a/modules/feature/snippets/autoload/snippets.el +++ b/modules/feature/snippets/autoload/snippets.el @@ -57,7 +57,3 @@ buggy behavior when is pressed in an empty field." (when (and field (> (point) sof)) (delete-region sof (point))))) -;; TODO move this to ivy -;;;###autoload -(defun +snippets/ivy-prompt (prompt choices &optional display-fn) - (yas-completing-prompt prompt choices display-fn #'ivy-completing-read)) diff --git a/modules/feature/snippets/config.el b/modules/feature/snippets/config.el index 44aeb23f3..a75e5456a 100644 --- a/modules/feature/snippets/config.el +++ b/modules/feature/snippets/config.el @@ -23,7 +23,8 @@ yas-indent-line 'auto yas-also-auto-indent-first-line t yas-prompt-functions '(yas-completing-prompt yas-ido-prompt yas-no-prompt) - yas-snippet-dirs '(yas-installed-snippets-dir)) + yas-snippet-dirs '(yas-installed-snippets-dir) + yas-use-menu nil) ;; Allows project-specific snippets (defun +snippets|enable-project-modes (mode &rest _) @@ -43,6 +44,7 @@ "" '+snippets/goto-end-of-field "" '+snippets/goto-start-of-field "" 'yas-prev-field + "" 'yas-prev-field "" '+snippets/delete-to-start-of-field "" 'evil-normal-state [backspace] '+snippets/delete-backward-char @@ -61,12 +63,11 @@ "Strip out the shitespace before a line selection." (when (and (evil-visual-state-p) (eq (evil-visual-type) 'line)) - (setq-local - yas-selected-text - (replace-regexp-in-string - "\\(^ *\\|\n? $\\)" "" - (buffer-substring-no-properties evil-visual-beginning - evil-visual-end))))) + (setq yas-selected-text + (replace-regexp-in-string + "\\(^\\s-*\\|\n? $\\)" "" + (buffer-substring-no-properties evil-visual-beginning + evil-visual-end))))) (add-hook 'yas-before-expand-snippet-hook '+snippets|yas-before-expand) (defun +snippets|yas-after-expand ()