Fix treesit-indent-region
Fix it for the case where there is no suitable rule for the line. Right now treesit-indent-region would indent the line to column 0. After the change the indentation is not altered. * lisp/treesit.el (treesit-indent-region): Handle the case where ANCHOR or OFFSET is nil specially.
This commit is contained in:
parent
7ef9a8210c
commit
4a6db125b9
1 changed files with 15 additions and 5 deletions
|
@ -1532,14 +1532,24 @@ Similar to `treesit-indent', but indent a region instead."
|
||||||
(aref meta-vec (+ 1 (* idx meta-len))) nil)
|
(aref meta-vec (+ 1 (* idx meta-len))) nil)
|
||||||
(pcase-let* ((`(,anchor . ,offset) (treesit--indent-1))
|
(pcase-let* ((`(,anchor . ,offset) (treesit--indent-1))
|
||||||
(marker (aref meta-vec (* idx meta-len))))
|
(marker (aref meta-vec (* idx meta-len))))
|
||||||
|
(if (not (and anchor offset))
|
||||||
|
;; No indent for this line, either...
|
||||||
|
(if (markerp marker)
|
||||||
|
(progn
|
||||||
|
;; ... Set marker and offset to do a dummy
|
||||||
|
;; indent, or...
|
||||||
|
(back-to-indentation)
|
||||||
|
(move-marker marker (point))
|
||||||
|
(setf (aref meta-vec (+ 1 (* idx meta-len))) 0))
|
||||||
|
;; ...Set anchor to nil so no indent is performed.
|
||||||
|
(setf (aref meta-vec (* idx meta-len)) nil))
|
||||||
;; Set ANCHOR.
|
;; Set ANCHOR.
|
||||||
(when anchor
|
|
||||||
(if (markerp marker)
|
(if (markerp marker)
|
||||||
(move-marker marker anchor)
|
(move-marker marker anchor)
|
||||||
(setf (aref meta-vec (* idx meta-len))
|
(setf (aref meta-vec (* idx meta-len))
|
||||||
(copy-marker anchor t))))
|
(copy-marker anchor t)))
|
||||||
;; SET OFFSET.
|
;; SET OFFSET.
|
||||||
(setf (aref meta-vec (+ 1 (* idx meta-len))) offset)))
|
(setf (aref meta-vec (+ 1 (* idx meta-len))) offset))))
|
||||||
(cl-incf idx)
|
(cl-incf idx)
|
||||||
(setq lines-left-to-move (forward-line 1)))
|
(setq lines-left-to-move (forward-line 1)))
|
||||||
;; Now IDX = last valid IDX + 1.
|
;; Now IDX = last valid IDX + 1.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue