Saul Tobin <saul.james.to...@gmail.com> writes: >> >> I pushed a commit just now that should resolve this. Please let me know. >> > > I should mention — you will need to either manually remove the old compiled > LilyPond grammar from .emacs.d/tree-sitter and restart Emacs, or manually > run (lilypond-ts--install) after pulling from the updated lilypond-ts-mode > repo.
Debugger entered--Lisp error: (void-function file-notify-add-watch) (file-notify-add-watch file-dir '(change) #'(lambda (ev) (let ((ev-file (car (last ev)))) (if (string-match-p ".nav" ev-file) (progn (lilypond-ts--init-nav-watcher file-dir) (let* (...) (progn ... nil))))))) (cons file-dir (file-notify-add-watch file-dir '(change) #'(lambda (ev) (let ((ev-file (car ...))) (if (string-match-p ".nav" ev-file) (progn (lilypond-ts--init-nav-watcher file-dir) (let* ... ...))))))) (cons (cons file-dir (file-notify-add-watch file-dir '(change) #'(lambda (ev) (let ((ev-file ...)) (if (string-match-p ".nav" ev-file) (progn ... ...)))))) lilypond-ts--watchers) (setq lilypond-ts--watchers (cons (cons file-dir (file-notify-add-watch file-dir '(change) #'(lambda (ev) (let (...) (if ... ...))))) lilypond-ts--watchers)) (if (file-exists-p nav-dir) (progn (mapc #'lilypond-ts--read-nav-data (directory-files nav-dir t "^.*\\.l$")) (setq lilypond-ts--watchers (cons (cons nav-dir (file-notify-add-watch nav-dir '(change) #'lilypond-ts--nav-watcher-callback)) lilypond-ts--watchers))) (setq lilypond-ts--watchers (cons (cons file-dir (file-notify-add-watch file-dir '(change) #'(lambda (ev) (let ... ...)))) lilypond-ts--watchers))) (if s (if (file-exists-p nav-dir) (progn (mapc #'lilypond-ts--read-nav-data (directory-files nav-dir t "^.*\\.l$")) (setq lilypond-ts--watchers (cons (cons nav-dir (file-notify-add-watch nav-dir '... #'lilypond-ts--nav-watcher-callback)) lilypond-ts--watchers))) (setq lilypond-ts--watchers (cons (cons file-dir (file-notify-add-watch file-dir '(change) #'(lambda ... ...))) lilypond-ts--watchers)))) (let* ((fname (and t (or fname (buffer-file-name)))) (file-dir (and fname (file-name-directory fname))) (nav-dir (and file-dir (file-name-concat file-dir ".nav"))) (s (and nav-dir (not (assoc nav-dir lilypond-ts--watchers))))) (if s (if (file-exists-p nav-dir) (progn (mapc #'lilypond-ts--read-nav-data (directory-files nav-dir t "^.*\\.l$")) (setq lilypond-ts--watchers (cons (cons nav-dir (file-notify-add-watch nav-dir ... ...)) lilypond-ts--watchers))) (setq lilypond-ts--watchers (cons (cons file-dir (file-notify-add-watch file-dir '... #'...)) lilypond-ts--watchers))))) lilypond-ts--init-nav-watcher() (if lilypond-ts-navigation-mode (lilypond-ts--init-nav-watcher) (lilypond-ts--maybe-remove-nav-watcher)) (let ((last-message (current-message))) (setq lilypond-ts-navigation-mode (cond ((eq arg 'toggle) (not lilypond-ts-navigation-mode)) ((and (numberp arg) (< arg 1)) nil) (t t))) (if (boundp 'local-minor-modes) (progn (setq local-minor-modes (delq 'lilypond-ts-navigation-mode local-minor-modes)) (if lilypond-ts-navigation-mode (progn (setq local-minor-modes (cons 'lilypond-ts-navigation-mode local-minor-modes)))))) (if lilypond-ts-navigation-mode (lilypond-ts--init-nav-watcher) (lilypond-ts--maybe-remove-nav-watcher)) (run-hooks 'lilypond-ts-navigation-mode-hook (if lilypond-ts-navigation-mode 'lilypond-ts-navigation-mode-on-hook 'lilypond-ts-navigation-mode-off-hook)) (if (called-interactively-p 'any) (progn nil (if (and (current-message) (not (equal last-message (current-message)))) nil (let ((local " in current buffer")) (message "%s %sabled%s" "Lilypond-Ts-Navigation mode" (if lilypond-ts-navigation-mode "en" "dis") local)))))) lilypond-ts-navigation-mode(1) (progn (set (make-local-variable 'treesit-primary-parser) (treesit-parser-create 'lilypond)) (if (multisession-value lilypond-ts--lily-installs-alist) nil (lilypond-ts-find-installs)) (lilypond-ts--ensure-repl) (set (make-local-variable 'comment-start) "%") (set (make-local-variable 'comment-start-skip) "[%;]+{? *") (set (make-local-variable 'comment-end) "") (set (make-local-variable 'block-comment-start) "%{") (set (make-local-variable 'block-comment-end) "%}") (set (make-local-variable 'treesit-thing-settings) lilypond-ts--thing-settings) (set (make-local-variable 'treesit-defun-name-function) #'lilypond-ts--defun-name) (set (make-local-variable 'treesit-defun-tactic) 'nested) (set (make-local-variable 'treesit-font-lock-settings) (apply #'treesit-font-lock-rules (lilypond-ts--font-lock-rules))) (set (make-local-variable 'treesit-font-lock-feature-list) lilypond-ts--font-lock-features) (set (make-local-variable 'treesit-font-lock-level) 3) (set (make-local-variable 'treesit-simple-indent-rules) lilypond-ts-indent-rules) (set (make-local-variable 'treesit-simple-imenu-settings) lilypond-ts-imenu-rules) (add-hook 'lilypond-ts-post-eval-hook #'lilypond-ts--require-list-refresh) (treesit-major-mode-setup) (set (make-local-variable 'lisp-indent-function) #'scheme-indent-function) (set (make-local-variable 'syntax-propertize-function) #'lilypond-ts--propertize-syntax) (lilypond-ts-autodoc-mode 1) (lilypond-ts-capf-mode 1) (lilypond-ts-navigation-mode 1)) (if (treesit-ready-p 'lilypond) (progn (set (make-local-variable 'treesit-primary-parser) (treesit-parser-create 'lilypond)) (if (multisession-value lilypond-ts--lily-installs-alist) nil (lilypond-ts-find-installs)) (lilypond-ts--ensure-repl) (set (make-local-variable 'comment-start) "%") (set (make-local-variable 'comment-start-skip) "[%;]+{? *") (set (make-local-variable 'comment-end) "") (set (make-local-variable 'block-comment-start) "%{") (set (make-local-variable 'block-comment-end) "%}") (set (make-local-variable 'treesit-thing-settings) lilypond-ts--thing-settings) (set (make-local-variable 'treesit-defun-name-function) #'lilypond-ts--defun-name) (set (make-local-variable 'treesit-defun-tactic) 'nested) (set (make-local-variable 'treesit-font-lock-settings) (apply #'treesit-font-lock-rules (lilypond-ts--font-lock-rules))) (set (make-local-variable 'treesit-font-lock-feature-list) lilypond-ts--font-lock-features) (set (make-local-variable 'treesit-font-lock-level) 3) (set (make-local-variable 'treesit-simple-indent-rules) lilypond-ts-indent-rules) (set (make-local-variable 'treesit-simple-imenu-settings) lilypond-ts-imenu-rules) (add-hook 'lilypond-ts-post-eval-hook #'lilypond-ts--require-list-refresh) (treesit-major-mode-setup) (set (make-local-variable 'lisp-indent-function) #'scheme-indent-function) (set (make-local-variable 'syntax-propertize-function) #'lilypond-ts--propertize-syntax) (lilypond-ts-autodoc-mode 1) (lilypond-ts-capf-mode 1) (lilypond-ts-navigation-mode 1))) (let ((delay-mode-hooks t)) (prog-mode) (setq major-mode 'lilypond-ts-mode) (setq mode-name "Lilypond") (progn (if (get 'prog-mode 'mode-class) (put 'lilypond-ts-mode 'mode-class (get 'prog-mode 'mode-class))) (if (keymap-parent lilypond-ts-mode-map) nil (set-keymap-parent lilypond-ts-mode-map (current-local-map))) (let ((parent (char-table-parent lilypond-ts-mode-syntax-table))) (if (and parent (not (eq parent (standard-syntax-table)))) nil (set-char-table-parent lilypond-ts-mode-syntax-table (syntax-table)))) (if (or (abbrev-table-get lilypond-ts-mode-abbrev-table :parents) (eq lilypond-ts-mode-abbrev-table local-abbrev-table)) nil (abbrev-table-put lilypond-ts-mode-abbrev-table :parents (list local-abbrev-table)))) (use-local-map lilypond-ts-mode-map) (set-syntax-table lilypond-ts-mode-syntax-table) (setq local-abbrev-table lilypond-ts-mode-abbrev-table) (if (treesit-ready-p 'lilypond) (progn (set (make-local-variable 'treesit-primary-parser) (treesit-parser-create 'lilypond)) (if (multisession-value lilypond-ts--lily-installs-alist) nil (lilypond-ts-find-installs)) (lilypond-ts--ensure-repl) (set (make-local-variable 'comment-start) "%") (set (make-local-variable 'comment-start-skip) "[%;]+{? *") (set (make-local-variable 'comment-end) "") (set (make-local-variable 'block-comment-start) "%{") (set (make-local-variable 'block-comment-end) "%}") (set (make-local-variable 'treesit-thing-settings) lilypond-ts--thing-settings) (set (make-local-variable 'treesit-defun-name-function) #'lilypond-ts--defun-name) (set (make-local-variable 'treesit-defun-tactic) 'nested) (set (make-local-variable 'treesit-font-lock-settings) (apply #'treesit-font-lock-rules (lilypond-ts--font-lock-rules))) (set (make-local-variable 'treesit-font-lock-feature-list) lilypond-ts--font-lock-features) (set (make-local-variable 'treesit-font-lock-level) 3) (set (make-local-variable 'treesit-simple-indent-rules) lilypond-ts-indent-rules) (set (make-local-variable 'treesit-simple-imenu-settings) lilypond-ts-imenu-rules) (add-hook 'lilypond-ts-post-eval-hook #'lilypond-ts--require-list-refresh) (treesit-major-mode-setup) (set (make-local-variable 'lisp-indent-function) #'scheme-indent-function) (set (make-local-variable 'syntax-propertize-function) #'lilypond-ts--propertize-syntax) (lilypond-ts-autodoc-mode 1) (lilypond-ts-capf-mode 1) (lilypond-ts-navigation-mode 1)))) (progn (make-local-variable 'delay-mode-hooks) (let ((delay-mode-hooks t)) (prog-mode) (setq major-mode 'lilypond-ts-mode) (setq mode-name "Lilypond") (progn (if (get 'prog-mode 'mode-class) (put 'lilypond-ts-mode 'mode-class (get 'prog-mode 'mode-class))) (if (keymap-parent lilypond-ts-mode-map) nil (set-keymap-parent lilypond-ts-mode-map (current-local-map))) (let ((parent (char-table-parent lilypond-ts-mode-syntax-table))) (if (and parent (not (eq parent ...))) nil (set-char-table-parent lilypond-ts-mode-syntax-table (syntax-table)))) (if (or (abbrev-table-get lilypond-ts-mode-abbrev-table :parents) (eq lilypond-ts-mode-abbrev-table local-abbrev-table)) nil (abbrev-table-put lilypond-ts-mode-abbrev-table :parents (list local-abbrev-table)))) (use-local-map lilypond-ts-mode-map) (set-syntax-table lilypond-ts-mode-syntax-table) (setq local-abbrev-table lilypond-ts-mode-abbrev-table) (if (treesit-ready-p 'lilypond) (progn (set (make-local-variable 'treesit-primary-parser) (treesit-parser-create 'lilypond)) (if (multisession-value lilypond-ts--lily-installs-alist) nil (lilypond-ts-find-installs)) (lilypond-ts--ensure-repl) (set (make-local-variable 'comment-start) "%") (set (make-local-variable 'comment-start-skip) "[%;]+{? *") (set (make-local-variable 'comment-end) "") (set (make-local-variable 'block-comment-start) "%{") (set (make-local-variable 'block-comment-end) "%}") (set (make-local-variable 'treesit-thing-settings) lilypond-ts--thing-settings) (set (make-local-variable 'treesit-defun-name-function) #'lilypond-ts--defun-name) (set (make-local-variable 'treesit-defun-tactic) 'nested) (set (make-local-variable 'treesit-font-lock-settings) (apply #'treesit-font-lock-rules (lilypond-ts--font-lock-rules))) (set (make-local-variable 'treesit-font-lock-feature-list) lilypond-ts--font-lock-features) (set (make-local-variable 'treesit-font-lock-level) 3) (set (make-local-variable 'treesit-simple-indent-rules) lilypond-ts-indent-rules) (set (make-local-variable 'treesit-simple-imenu-settings) lilypond-ts-imenu-rules) (add-hook 'lilypond-ts-post-eval-hook #'lilypond-ts--require-list-refresh) (treesit-major-mode-setup) (set (make-local-variable 'lisp-indent-function) #'scheme-indent-function) (set (make-local-variable 'syntax-propertize-function) #'lilypond-ts--propertize-syntax) (lilypond-ts-autodoc-mode 1) (lilypond-ts-capf-mode 1) (lilypond-ts-navigation-mode 1))))) lilypond-ts-mode() funcall-interactively(lilypond-ts-mode) call-interactively(lilypond-ts-mode record nil) command-execute(lilypond-ts-mode record) execute-extended-command(nil "lilypond-ts-mode" "lilypond-ts-mo") funcall-interactively(execute-extended-command nil "lilypond-ts-mode" "lilypond-ts-mo") call-interactively(execute-extended-command nil nil) command-execute(execute-extended-command) -- David Kastrup