fix outline + local

changes lots of setq to setq-local as well.
1 files changed, 29 insertions(+), 31 deletions(-)

M perl-ts-mode.el
M perl-ts-mode.el +29 -31
@@ 409,16 409,14 @@ Argument STR is either a string, or a li
 
 (defun perl-ts-outline-acceptable (node)
   "Matches a comment NODE that starts with multiple hashes."
-  (let ((gp (treesit-node-get node '((parent 3)))))
-    (if (and (string= (treesit-node-type node) "comment")
-	     (or (not gp)
-		 (member (treesit-node-type gp)
-			 '("class_statement" "package_statement"))))
-	(save-excursion
-	  (goto-char (treesit-node-start node))
-	  (= (point) (line-beginning-position)))
-      (string= "###"
-	       (substring (treesit-node-text node t) 0 3)) t)))
+  (message (treesit-node-type node))
+  (let ((gp (treesit-node-get node '((parent 2)))))
+    (and (or (not gp)
+	     (member (treesit-node-type gp)
+		     '("class_statement" "package_statement")))
+	 (if (string= (treesit-node-type node) "comment")
+	     (string= "###" (substring (treesit-node-text node t) 0 3))
+	   t))))
 
 (defun perl-ts-language-at-point (point)
   "Return language at POINT."

          
@@ 466,16 464,16 @@ Takes all the relevent commands from `cp
   (setq-local electric-pair-pairs
 	      '((?\" . ?\") (?\' . ?\') (?\" . ?\")
 		(?\[ . ?\]) (?\{ . ?\}) (?\( . ?\))))
-  (setq treesit-language-at-point-function 'perl-ts-language-at-point)
+  (setq-local treesit-language-at-point-function 'perl-ts-language-at-point)
   ;; We can't use the treesitter interface of imenu because of perl's
   ;; package class system where it is hard to tell which class
   ;; function is in.
-  (setq imenu-create-index-function 'perl-ts-imenu-create-index)
-  (setq treesit-defun-type-regexp
+  (setq-local imenu-create-index-function 'perl-ts-imenu-create-index)
+  (setq-local treesit-defun-type-regexp
 	"subroutine_declaration_statement\\|method_declaration_statement")
   (setq-local treesit-font-lock-level perl-ts-font-lock-level)
-  (setq treesit-thing-settings perl-ts-thing-settings)
-  (setq treesit-defun-name-function 'perl-ts-function-name)
+  (setq-local treesit-thing-settings perl-ts-thing-settings)
+  (setq-local treesit-defun-name-function 'perl-ts-function-name)
   (setq-local treesit-outline-predicate
 	      (cons
 	       (concat "\\`"

          
@@ 488,7 486,7 @@ Takes all the relevent commands from `cp
 				   t)
 		       "\\'")
 	       'perl-ts-outline-acceptable))
-  (setq comment-start "#")
+  (setq-local comment-start "#")
   ;; EXTREMLY delicate
   (let ((args '(:host perl
 		      :embed perl

          
@@ 500,21 498,21 @@ Takes all the relevent commands from `cp
 		      :embed pod
 		      :host perl
 		      ((pod) @capture))))
-    (setq treesit-range-settings
-          (apply
-	   'treesit-range-rules
-           (if perl-ts-highlight-verbatim
-	       (append args
-		       '(:host pod
-			       :embed perl
-			       :local t
-			       ((verbatim_paragraph (content) @cap))))
-	     args))))
-  (setq treesit-primary-parser (treesit-parser-create 'perl))
-  (setq font-lock-defaults nil
-	treesit-font-lock-settings perl-ts-font-lock
-	treesit-font-lock-feature-list perl-ts-font-lock-feature-list
-	treesit-simple-indent-rules perl-ts-indent-settings)
+    (setq-local treesit-range-settings
+		(apply
+		 'treesit-range-rules
+		 (if perl-ts-highlight-verbatim
+		     (append args
+			     '(:host pod
+				     :embed perl
+				     :local t
+				     ((verbatim_paragraph (content) @cap))))
+		   args))))
+  (setq-local font-lock-defaults nil
+	      treesit-primary-parser (treesit-parser-create 'perl)
+	      treesit-font-lock-settings perl-ts-font-lock
+	      treesit-font-lock-feature-list perl-ts-font-lock-feature-list
+	      treesit-simple-indent-rules perl-ts-indent-settings)
   (treesit-major-mode-setup)
   (setq-local outline-level #'perl-ts-outline-level))