branch: scratch/expand-region commit 4419d5d52e24db530ec407f33cef361f485f46b9 Author: Magnar Sveen <magn...@gmail.com> Commit: Magnar Sveen <magn...@gmail.com>
Revert "feat: add `er/mark-yaml-outer-block` & `er/mark-yaml-inner-block`" This reverts commit 6ed37a7c58549da761f5d9b6864192ff5e535bec. --- yaml-mode-expansions.el | 74 +++++++++++++------------------------------------ 1 file changed, 20 insertions(+), 54 deletions(-) diff --git a/yaml-mode-expansions.el b/yaml-mode-expansions.el index 902285f178..72c17bd62b 100644 --- a/yaml-mode-expansions.el +++ b/yaml-mode-expansions.el @@ -24,9 +24,6 @@ ;; - er/mark-yaml-key-value ;; - er/mark-yaml-list-item ;; - er/mark-yaml-block -;; - er/mark-yaml-outer-block -;; - er/mark-yaml-inner-block - ;;; Code: @@ -48,7 +45,8 @@ (defvar er--yaml-list-item-regex (rx (seq "- " (one-or-more - (any "0-9A-Za-z" "\"':=_-"))))) + (any "0-9A-Za-z" " '_-")) + "\n"))) (defvar er--yaml-block-regex (rx (seq (zero-or-more @@ -71,39 +69,8 @@ (when (looking-at regex) (set-mark (line-end-position)))) -(defun er/mark-yaml-block-static-base (regex) - "Mark yaml block based on REGEX passed. NEXT-INDENT-LEVEL can be used to search outer blocks when necessary." - ;; go bac to indentation so always can get regexp - (back-to-indentation) - ;; make sure the cursor is set inside the block - ;; mark point at this higher code block - (set-mark (point)) - ;; save level of this blocks indentation - (let ((block-indentation (current-indentation))) - (forward-line 1) - (while (and - ;; No need to go beyond the end of the buffer. Can't use - ;; eobp as the loop places the point at the beginning of - ;; line, but eob might be at the end of the line. - (not (= (point-max) (point-at-eol))) - ;; Proceed if: indentation is too deep - (or (> (current-indentation) block-indentation) - ;; Looking at an empty line - (looking-at (rx line-start (* whitespace) line-end)) - ;; We're not looking at the start of a YAML block - ;; and the indent is deeper than the block's indent - (and (not (looking-at regex)) - (> (current-indentation) block-indentation)))) - (forward-line 1) - (back-to-indentation)) - ;; Find the end of the block by skipping comments backwards - (python-util-forward-comment -1) - (exchange-point-and-mark)) - (back-to-indentation)) - (defun er/mark-yaml-block-base (regex &optional next-indent-level) "Mark yaml block based on REGEX passed. NEXT-INDENT-LEVEL can be used to search outer blocks when necessary." - ;; go bac to indentation so always can get regexp (back-to-indentation) ;; make sure the cursor is set inside the block (let ((next-indent-level @@ -111,10 +78,10 @@ ;; Use the given level next-indent-level ;; used to mark current block + ;; if true then at start of block and wanna mark itself + ;; else were are inside the block already and will mark it))) + ;; move up the code unti a parent code block is reached (er--get-regex-indentation-level regex)))) - ;; if true then at start of block and wanna mark itself - ;; else were are inside the block already and will mark it))) - ;; move up the code unti a parent code block is reached (while (and (>= (current-indentation) next-indent-level) (not (eq (current-indentation) 0))) (re-search-backward regex (point-min) t) @@ -133,7 +100,7 @@ (or (> (current-indentation) block-indentation) ;; Looking at an empty line (looking-at (rx line-start (* whitespace) line-end)) - ;; We're not looking at the start of a YAML block + ;; We're not looking at the start of a Python block ;; and the indent is deeper than the block's indent (and (not (looking-at regex)) (> (current-indentation) block-indentation)))) @@ -154,34 +121,33 @@ (interactive) (er/mark-yaml-line-base er--yaml-list-item-regex)) -(defun er/mark-yaml-inner-block () - "Mark the yaml contents of the block at point. Command that wraps `er/mark-yaml-block-base'." - (interactive) - (er/mark-yaml-block-base er--yaml-block-regex (current-indentation)) - (forward-line) - (back-to-indentation)) - (defun er/mark-yaml-block () - "Mark the yaml block that point is currently at the top of. Command that wraps `er/mark-yaml-block-base'." + "Mark the yaml block that surrounds the block around point. + +Command that wraps `er/mark-yaml-block-base'." (interactive) - (er/mark-yaml-block-static-base er--yaml-block-regex)) + (er/mark-yaml-block-base er--yaml-block-regex)) + +(defun er/mark-outer-yaml-block () + "Mark the outer yaml block that surrounds the block around point. -(defun er/mark-yaml-outer-block () - "Mark the outer yaml block that surrounds the block around point. Command that wraps `er/mark-yaml-block-base'." +Command that wraps `er/mark-yaml-block-base'." (interactive) (er/mark-yaml-block-base er--yaml-block-regex (current-indentation))) (defun er/add-yaml-mode-expansions () "Add yaml-mode-specific expansions for buffers in yaml-mode." - (let ((try-expand-list-additions '(er/mark-symbol + (let ((try-expand-list-additions '( + er/mark-symbol er/mark-outside-quotes er/mark-yaml-list-item er/mark-yaml-key-value er/mark-yaml-block - er/mark-yaml-outer-block - er/mark-yaml-inner-block))) + er/mark-outer-yaml-block + mark-page))) (set (make-local-variable 'expand-region-skip-whitespace) nil) - (set (make-local-variable 'er/try-expand-list) try-expand-list-additions))) + (set (make-local-variable 'er/try-expand-list) + (append try-expand-list-additions er/try-expand-list)))) (er/enable-mode-expansions 'yaml-mode 'er/add-yaml-mode-expansions)