Function: js--treesit-member-chained-expression-helper

js--treesit-member-chained-expression-helper is a byte-compiled function defined in js.el.gz.

Signature

(js--treesit-member-chained-expression-helper NODE PARENT BOL &rest ARGS)

Documentation

Anchor helper for member chained expressions.

Returns a position relative to PARENT context and the value of js-chain-indent. See js-chain-indent and js--chained-expression-p.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/js.el.gz
(defun js--treesit-member-chained-expression-helper (_node parent _bol &rest _args)
  "Anchor helper for member chained expressions.
Returns a position relative to PARENT context and the value of
`js-chain-indent'.
See `js-chain-indent' and `js--chained-expression-p'."
  (let ((parent-start (treesit-node-start parent)))
    (if (not js-chain-indent)
	(if-let* ((ancestor-node
		   (treesit-parent-until
		    parent
		    "variable_declarator")))
	    (treesit-node-start ancestor-node)
	  (save-excursion
	    (goto-char parent-start)
	    (back-to-indentation)
	    (if (eq parent-start (point))
		(+ parent-start js-indent-level)
	      parent-start)))
      (save-excursion
        (goto-char parent-start)
        (let ((pos (search-forward "." (pos-eol) t 1)))
          (if (and pos (> pos 0))
              (- pos 1)
            parent-start))))))