如何监听一个方法在执行后,重写相关设置?

The default value of the docstr-format-var property is "- %s:" .

After this setting, but the value does not change to "- Parameter %s:"

(after! docstr 
   (setq! docstr-desc-summary "[描述]")
   (setq! docstr-desc-param "[属性]")
   (setq! docstr-desc-return "[返回值]") 
  (setq! docstr-format-var "- Parameter %s:")
 )

advanced

原来想通过在doom 中的自定义模块中config.el中设置更改docstr-format-var属性默认值。

在config.el中尝试了两种方法,都失败了:

  1. (setq! docstr-format-var "- Parameter %s:")
  2. 声明的docstr-swift-config-swift-doc覆盖docstr package 中的原用方法。

原因是,docstr 注释命令是在 /// 插入时,才调用 docstr-swift-config-swift-doc,导致最终使用的还是它原来的的方法实现:

(defun docstr-swift-config-swift-doc ()
  "Configure for convention, SwiftDoc."
  (docstr-util-default-format :param "" :ret "" :show-tn nil)
  (setq-local docstr-format-var "- Parameter %s:"
              doc
              str-format-return (format "- returns: %s" docstr-key-desc)))

如何在真正插入时,来更改docstr-format-var属性值,(setq-local docstr-format-var “- Parameter %s:”)

上面已经告诉你答案了 advice。

(另外我觉得你问题描述的不是很清楚,可能在问一个 x-y 问题)

你应该通过 advice override 一个 docstr-swift-config-swift-doc

没有用过advice override ,有文章推荐吗?我学习下。

(defun docstr-swift-config-swift-doc@override ()
  "Configure for convention, SwiftDoc."
  (docstr-util-default-format :param "" :ret "" :show-tn nil)
  (setq-local docstr-format-var "- Parameter %s:"
              doc
              str-format-return (format "- returns: %s" docstr-key-desc)))

(advice-add 'docstr-swift-config-swift-doc :override #'docstr-swift-config-swift-doc@override)

你的大概是这样,C-h f docstr-swift-config-swift-doc 确认 override 成功。 具体使用可以看 advice-add 的文档,论坛也有讨论,你可以搜搜

1 个赞