gpt4 book ai didi

emacs - 为自动缩进代码编写自定义函数有什么好的*抽象*?

转载 作者:行者123 更新时间:2023-12-05 00:33:54 32 4
gpt4 key购买 nike

这个月我花了一些时间与 Emacs Lisp 进行斗争,试图获得更好地满足我需求的自动缩进。令人惊讶的是,大多数缩进代码是多么低级。我只看到了很少的抽象,例如

  • 搜索不在字符串或注释中的第一个正则表达式实例

  • 我怀疑还有更多有用的抽象可以帮助编写更易于理解和修改的缩进代码。 (甚至我引用的抽象也可以改进为“重复将此函数应用于这些参数,直到函数返回 nil 或点不在字符串或注释中”。)

    我正在使用 emacs,但我也用 vim 标记了这个问题,因为我会从任何地方汲取好主意。

    如果你想编写干净的、设计良好的、模块化的、自定义的缩进函数, 你会使用什么抽象? (我也很高兴看到指向您认为使用良好抽象或设计良好的代码的指针。)

    最佳答案

    听起来您正在寻找更高级别的东西,但是 macs 23 来了
    SMIE ,它试图一般地解决这个问题。但它适用于主要模式
    开发人员,不要修改现有的缩进行为。

    编辑 : 主要的抽象似乎是

  • 一个相当弱的运算符优先级解析器,辅以肮脏的技巧词法分析器
  • 每个标记都有一个“虚拟缩进”的概念,如果开始一行
  • 就会出现在该处。
  • 每个标记都有一个“父”,它是封闭句法结构的开始。

  • 进入成本似乎相当大,并且该软件附有此免责声明:

    In practice, [the] default indentation style will probably not be good enough. You will want to tweak it in many different cases.



    (编辑结束)

    你说的话:

    Search for the first instance of a regular expression that is not in a string or a comment



    调用 syntax-ppss 即可轻松完成和 re-search-backward .

    关于emacs - 为自动缩进代码编写自定义函数有什么好的*抽象*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11374545/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com