为什么 button-lock-mode 在 Emacs 中不能与 python-mode 一起使用?

Why doesn't button-lock-mode work with python-mode in Emacs?

我希望在 Emacs 中的 Python 代码中有指向 JIRA 票证的可点击链接。

例如,我在我的集​​成测试代码中使用了 doxygen 文档字符串,它链接了一个票号:

def test_user_type_isolation(self):
    """
    Ensure UDT cannot be used from another keyspace
    @jira_ticket CASSANDRA-9409
    @since 2.2
    """
    ....

我希望能够单击 CASSANDRA-9409 并将其直接转到 JIRA ticket it's referencing. I found button-lock-mode,效果很好!然而,这个 elisp 在每个模式下都有效 除了 对于 python-mode:

(require 'button-lock)
(global-button-lock-mode 1)

(setq cassandra-jira-button
      (button-lock-set-button "CASSANDRA-[0-9]+"
        #'(lambda ()
            (interactive)
            (browse-url (concat "https://issues.apache.org/jira/browse/"
                         (thing-at-point 'symbol)))
        )
    :face 'link :face-policy 'prepend))

不仅是我的代码,button-lock.el 中包含的示例中的 none 也可以在 python 模式下工作。那么,有谁知道可能导致冲突的原因吗?

我对button-lock-mode一无所知,但Emacs自带bug-reference-mode,还有非常有用的子模式bug-reference-prog-mode。我建议改用那些。为了您的使用,您需要通过 bug-reference-bug-regexpbug-reference-url-format.

进行配置

bug-reference-prog-mode 很方便,因为它将其按钮化行为限制为注释和字符串——非常适合编程模式。