保留附加到数据表的 JSL 代码中的注释和空格当我编写代码时,我会尽力使其易于阅读、理解和维护。我写评论。我缩进代码块。我使用换行符将代码分散到多行中。我尝试以一致的风格编写代码。然而,我经常发现 JMP 会在不询问的情况下重新格式化我的代码。它只是决定抹掉我为良好编码实践付出的所有努力。
例如,我编写一个脚本并将其附加到数据表。然后我右键单击脚本并按“复制”,然后在脚本窗口中右键单击并按“粘贴”。脚本的副本不包含原始脚本中的任何注释或代码块缩进。
另一个例子:我在数据表上创建一个公式列。在公式编辑器块内部,我编写了一些 JSL 代码来执行迭代计算(这真的很酷。 我刚刚发现你可以做到这一点!)。当然,我想在这段代码中使用注释和空格,就像我在任何地方编写的任何代码中一样。好吧,在我按 Enter 键后,注释是不可见的,直到我双击公式编辑器块为止。但它们确实存在。直到我单击“确定”并且 JMP 计算公式。下次我打开公式时,注释和空格都消失了。
情况变得更糟。我的表上附加了多个脚本,它们都引用了某个列。然后我重命名该列。所有这些脚本都使用新的列名称进行更新。但这样做时,它们都被 JSL 解析器“重新格式化”,并且我的所有注释和空格都被破坏了。ಠ_ಠ
如果 JMP 一有机会就立即将其删除,那么即使使用 JSL 语言进行注释又有什么意义呢?我是否应该在不那么敌意的文本编辑器(即 Notepad++)中编辑 JSL 脚本并将可读版本存储为单独的文件?我只是不明白为什么一定要这样。请留下我的评论!
笔记: @Cwalla在论坛中报告了同样的问题这里
自动化和脚本编写回复:保留附加到数据表的 JSL 代码中的注释和空格 - 状态更改为:已确认你好@克里斯_罗德里格斯, 谢谢你的建议! 我们已收到您的请求并将予以考虑。
回复:保留附加到数据表的 JSL 代码中的注释和空格谢谢@XanGregg ,这解决了我的问题:)
回复:保留附加到数据表的 JSL 代码中的注释和空格我在线程中添加了一个 JSL Quote 示例。
New Table( "formatted script",
New Script( "my script",
Eval( Parse(JSL Quote(
// example
x = 1;
Print( :column 1[1], y );
) )
)
),
New Column( "Column 1", Set Values( [5] ) )
)
回复:保留附加到数据表的 JSL 代码中的注释和空格你好@克里斯_罗德里格斯,
我刚刚就这个话题进行了讨论:如何使用新脚本保留格式和注释
我的问题不会在完全相同的上下文中出现,但结果是相同的:当脚本使用以下命令将新脚本添加到数据表时新脚本 ()功能、注释和布局都丢失了。
我认为可能有一个解决方法,但要在数据表内的脚本中重新插入注释和布局,但看起来情况并非如此。
在我们等待您的愿望清单项目获得批准时,可以使用以下几种解决方案:
- 将脚本存储在单独的文件中。 在数据表中,您的脚本只是打开 .jsl 文件的链接。 这样就不会丢失信息。
- 将您的评论存储在自定义评论功能中,该功能仅将您的评论写入日志中。 我知道这并不理想,因为您仍然可能会丢失布局,但至少您的评论会被保留。
希望更多的人工藤这个愿望,看起来非常有必要!
回复:在 JSL 代码中保留注释和空格我确实将格式良好的脚本版本单独存储为文本文件。 我希望 JMP 保留该格式。回复:保留数据表附加的 JSL 代码中的注释和空格目前提到的大多数问题都已得到解决 - 并且通过重新格式化我可以生活了:)
剩下的是:列公式中的注释。
由于 JMP 对客户的意见非常开放,因此似乎有一个强有力的论据反对它:
评论不能保留在列公式中吗?
为什么?
回复:保留数据表附加的 JSL 代码中的注释和空格关于表脚本中列变量的重命名,有趣的是源脚本也被编辑了。
在此示例中,通过重命名摘要表中的列,源脚本被损坏:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dtsum = dt << Summary(
Group( :sex ),
Mean( :height ),
Link to original data table( 0 )
);
dtsum:sex << Set Name( "sex_2" );
回复:保留数据表附加的 JSL 代码中的注释和空格如果多个用户使用同一个文件,则允许在列公式中添加注释将会有很大帮助。
使用临时变量存储注释字符串:

是一种可接受的解决方法 - 但评论应该以评论的形式显示。
如果可能的话:使用明确定义的颜色来将其标识为注释。
我刚刚发现了这个愿望——完全一样的请求:
保留列公式中的注释
在其中一条回复中, @mia_stephens于 2023 年写道:

现在还是这样吗?对于表格脚本,这个问题似乎已经修复了。