_ interesting point, interregion here
> indent line (or interregion if > _) according to major mode
@ add position to `skeleton-positions'
- & do next ELEMENT if previous moved point
- | do next ELEMENT if previous didn't move point
+ & do next ELEMENT iff previous moved point
+ | do next ELEMENT iff previous didn't move point
-num delete num preceding characters (see `skeleton-untabify')
resume: skipped, continue here if quit is signaled
nil skipped
opoint)
(or str
(setq str `(setq str (skeleton-read ',(car skeleton) nil ,recursive))))
- (when (and (eq (car skeleton) '\n)
- (save-excursion (beginning-of-line) (looking-at "[ \t]*$")))
- (setq skeleton (cons '> (cdr skeleton))))
+ (when (and (eq (cadr skeleton) '\n)
+ (<= (current-column) (current-indentation)))
+ (setq skeleton (cons nil (cons '> (cddr skeleton)))))
(while (setq skeleton-modified (eq opoint (point))
opoint (point)
skeleton (cdr skeleton))
;; t)
;; '(save-excursion
;; (if (re-search-forward page-delimiter nil t)
-;; (error "Not on last page.")))
+;; (error "Not on last page")))
;; comment-start "Local Variables:" comment-end \n
;; comment-start "mode: " str
;; & -5 | '(kill-line 0) & -1 | comment-end \n
"*If this is nil, paired insertion is inhibited before or inside a word.")
-(defvar skeleton-pair-filter (lambda ())
+(defvar skeleton-pair-filter (lambda () nil)
"Attempt paired insertion if this function returns nil, before inserting.
This allows for context-sensitive checking whether pairing is appropriate.")
is visible the pair is wrapped around it depending on `skeleton-autowrap'.
Else, if `skeleton-pair-on-word' is non-nil or we are not before or inside a
word, and if `skeleton-pair-filter' returns nil, pairing is performed.
+Pairing is also prohibited if we are right after a quoting character
+such as backslash.
If a match is found in `skeleton-pair-alist', that is inserted, else
the defaults are used. These are (), [], {}, <> and `' for the
(skeleton-end-hook))
(if (or arg
(not skeleton-pair)
+ (memq (char-syntax (preceding-char)) '(?\\ ?/))
(and (not mark)
(or overwrite-mode
(if (not skeleton-pair-on-word) (looking-at "\\w"))
(provide 'skeleton)
-;; skeleton.el ends here
+;;; skeleton.el ends here