[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Font lock in org+elisp confused with ?\[

From: Arthur Miller
Subject: Re: Font lock in org+elisp confused with ?\[
Date: Sat, 03 Apr 2021 20:38:28 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (windows-nt)

John Kitchin <jkitchin@andrew.cmu.edu> writes:

> This is related to the issues with <> in src blocks. [ and ] have open and 
> close syntactical meanings like < and > do in org files. A similar solution 
> as found in
> https://emacs.stackexchange.com/questions/50216/org-mode-code-block-parentheses-mismatch
>  seems to work to fix it.

Indeed, the code from SX works, I took the simpler version and converted
it to work with square brackets:

#+begin_src emacs-lisp
             (defun org-mode-sqbr-syntax-fix (start end)
               (when (eq major-mode 'org-mode)
                   (goto-char start)
                   (while (re-search-forward "[]\\[]" end t)
                     (when (get-text-property (point) 'src-block)
                       ;; This is a ?[ or ?] in an org-src block
                       (put-text-property (point) (1- (point))
                                          'syntax-table (string-to-syntax 

             (defun org-setup-sqbr-syntax-fix ()
               "Setup for characters ?[ and ?] in source code blocks.
  Add this function to `org-mode-hook'."
               (setq syntax-propertize-function 'org-mode-sqbr-syntax-fix)
               (syntax-propertize (point-max)))

             (add-hook 'org-mode-hook 'org-setup-sqbr-syntax-fix)

I have confirmed that code runs when I load my org file, but there seems
to be something else than that callback involed, later on, evaluating
and changing those properties back. I still see same error in the
babel-block. However when I run fix explicitly on that code block (I
converted it to interactive "r" for test), then syntax is fine. So it
seems there is some other callback involved.

Sorry little bit late answer, I thought I sent this a day ago or so, but
apparently I didn't.

Thanks for the help.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]