【问题标题】:JavaScript equivalent of C indentJavaScript 等价于 C 缩进
【发布时间】:2011-05-23 22:13:07
【问题描述】:

有一个 GNU indent 用于样式化 C 源代码,有 JavaScript 的等价物吗?

我希望它有编码风格、缩进风格等选项,就像indent一样。

我会将它用于 *NIX 平台上的一个相当大的项目,所以我不喜欢仅限 Windows 的实用程序或在线工具。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    我没有使用过它,但不久前我在js-beautify 上添加了书签,快速检查似乎表明它可能满足您的要求。 (而且,使用 JavaScript 编写,您可能可以轻松改进它。)

    【讨论】:

    • 感谢您的回答,但命令行工具需要 V8 依赖项,这非常庞大……正如 Crowder 所说,建立在 indent 之上的东西当然会更好。
    • @ryanli:它不需要 V8(而且 V8 不是一个巨大的依赖项;添加到 *nix 系统很简单——我对它的简单程度感到惊讶)。您可以使用 V8 从命令行或 Rhino(我的书中更大的依赖项)运行它。
    • V8 本身的大小大约是indent 的 10 倍,不过我还是去看看吧,因为这里似乎没有竞争对手。
    • @ryanli:哦,毫无疑问,它比indent 更大(它是一个完整的 JavaScript 实现)。在我的系统上,编译后的 v8 库是 indent 程序大小的 142 倍。但在 10M 左右,它不会破坏我的存储设备,它让我可以做一些有趣的事情。 :-)
    【解决方案2】:

    jsBeautifier,它可以通过Rhino 在启用Java 的环境中从命令行运行,也可以通过V8 运行(或其他几个,请查看github page)。显然他们正在开发 Python 命令行版本。

    显然有人(至少)在updating indent itself to understand JavaScript 上开始了。开源的乐趣!即使不完整,语法也非常相似...... (不,显然它只是 indent 的网页前端 - 根本没有帮助。)所以改写:我想知道修改 indent 以支持 JavaScript 有多难?语法非常相似...

    【讨论】:

    • 开始是在 2005 年。:-)
    • @ryanli:我早在你发表评论之前就已经删除了这一点,你一定是在看一个陈旧的页面——看起来他甚至没有修改indent,只是做了一个前面-结束它。没有用。 :-)
    • 我明白了,我打字很慢……如果有人可以破解 indent 的 JavaScript 将会很有用。但如果没有,我可能不得不尝试 js-beautifier,虽然构建它相当复杂。
    【解决方案3】:

    你有几个选择:

    有些编辑器也会为您这样做:

    • Emacs
    • vi(m)
    • 日食
    • ...

    编辑:

    • 另一个在线工具JavaScript Indent 声称它在后台使用缩进。也许作者会分享设置。不是很好,但只是一个开始。
    • JS Beautifier 页面还提到了 Python 版本,如果正在开发中的话。让我们稍后再检查。同时,您可以将其与 Rhino 一起使用,如他们页面上所述。

    最后,已经有几个 SO 问题回答了这个问题,您可以找到 by searching(一些结果指向格式化程序以在线显示代码,这是另一回事,尽管您也可以使用它):

    【讨论】:

    • 感谢您的回答。我之前进行了几次搜索,但大多数结果并不令人满意。以 lint 为例,它主要用于 Windows,还有其他几个用 JavaScript 编写的工具。我更喜欢用 C 编写的。
    • Closure Linter 如何帮助进行漂亮的打印?我的意思是,当然,有fixjsstyle 命令,但你几乎无法控制它。当然,编译器服务是一个在线工具——ryanli 专门要求提供离线选项。
    • @T.J. Crowder:没错,你对它们没有太多控制权,所以如果你找不到具有正确可配置选项集的东西,也许你可以找到一个按照你喜欢的方式来做的东西。就我个人而言,我使用 Closure Linter 并编辑了它的代码来做我想做的事,而不是抱怨我不关心的事情。
    • @ryanli:我明白你的意思,我也对 JavaScript 工具的一般状态不满意。但是看看 Closure Linter。它是用 Python 编写的,可以跨平台移植。代码可读性强,易于修改。很遗憾它并没有真正提供选项,但我认为这可能是故意的,因为他们真的想强制一种风格,而不是让人们侥幸逃脱其他事情。但供您个人使用,请随意编辑。
    • +1 给为你做这件事的编辑。 @Ryan Li - vi 是 linux 上的标准,尽管在多个文件上运行比 indent 更难...
    【解决方案4】:

    Javascript Tidy,它使用浏览器本身重新格式化Javascript代码。所以结果取决于你使用的浏览器。

    您无法确定样式,但是一旦将 Javascript 重新格式化为标准格式,就可以更轻松地修改源代码以匹配您自己的样式。

    【讨论】:

      【解决方案5】:

      libjavascript-beautifier-perl 包有 /usr/bin/js_beautify,这对我有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-11
        • 1970-01-01
        • 1970-01-01
        • 2021-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-11
        相关资源
        最近更新 更多