【问题标题】:Conditionally skip a field in yasnippet有条件地跳过 yasnippet 中的字段
【发布时间】:2022-01-05 09:31:42
【问题描述】:

我正在尝试为 MOVE 语句 i COBOL 创建一个 yasn-p。 编写 MOVE 语句是我们经常做的事情,我希望尽可能快速高效地使用它。

通常是这样的:

MOVE variable-1 TO variable-2

但有时你也使用函数:

MOVE FUNCTION LENGTH(variable-1) TO variable-2

所以我要的是一个 sn-p,如果 field-1 = "FUNCTION",它会跳过 field-2。

我现在拥有的是:

MOVE $1 ${2:$$(unless (or yas-modified-p yas-moving-away-p (equal (upcase (yas-field-value 1)) "FUNCTION")) (yas-skip-and-clear-field))} TO $0

这对于“MOVE FUNCTION ...”情况非常有用,但在其他情况下则不然。 在这里,当我在 field-1 中输入 varaible-1 后点击时,我得到(光标是 |):

MOVE variable-1 #<marker at 2998 in text.cbl>| TO

因此,yas-skip-and-clear-field 的返回值似乎被打印出来,而不是跳转到 $0。

我该如何解决这个问题?或者有什么更好的方法吗?

【问题讨论】:

    标签: emacs cobol yasnippet


    【解决方案1】:

    如果在Configuration SectionRepository 段落中添加FUNCTION ALL INSTRINSIC,则无需在MOVE 语句中编码FUNCTION。这可能会缓解您的问题,而无需使用 yasn-p。

    【讨论】:

    • 确实如此,但我不想这样做。我组织中的一些人非常“老式”,更喜欢“FUNCTION”前缀。感谢您的回答!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 2020-05-29
    • 2015-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多