Julia代码格式化器
指导
Julia代码格式化器
粘贴任何 Julia(.jl)源代码,即可立即获得遵循更广泛 Julia 科学计算社区所采用规范的格式化输出。该工具完全在您的浏览器中运行——无需 Julia 运行时,无需服务器往返——因此即使是机密研究或专有代码也可以安全地进行清理。
该格式化器遵循 JuliaFormatter.jl:四个空格缩进,二元运算符周围的一致空格,紧致的类型注解,例如 x::Int 且 T <: Real,保留 juxtaposition 乘法,如 2π,以及在 92 个字符处可配置的软行长度警告。
如何使用
- 将您的 Julia 代码粘贴到 Julia 代码 文本区域中每行输入一个颜色,或点击 尝试一个示例 以加载一个示例模块。
- 选择一个 缩进样式 ——四个空格是 JuliaFormatter 的默认设置,两个空格和制表符也都是可用的。
- 调整 行长度 如果您的团队使用不同于 92 个字符的宽度,请调整滑块。长行会被报告但不会被自动断开,因此结果保持语法等价。
- 切换 二元运算符周围的间距, 紧致的类型注解间距, 保留注释,并且 合并多个空行 按个人喜好设置。
- 点击 格式。通过剪贴板按钮复制结果,或将其下载为
.jl文件。
特征
- JuliaFormatter 默认风格 ——四个空格缩进,空行约定,以及一致的运算符间距,出厂即具备。
- 块感知缩进 ——正确处理
function,if/elseif/else,for,while,try/catch/finally,let,begin,do,module,struct,quote,macro,并且abstract type/primitive type声明。 - 支持 Unicode 的词法分析器 ——识别希腊字母及其他 Unicode 标识符,例如
π,α,θ,并且Δ. - 保留 juxtaposition 乘法 ——数值系数写成
2π或0.5x保持紧凑,而显式2 * π则保持间距。 - 紧致的类型注解 -
x::Int,T <: Real,并且Vector{<:Shape}保持紧凑。 - 注释和字符串被尊重 ——行注释(
#),嵌套块注释(#=…=#),三引号字符串,前缀字符串(r"…",raw"…"),字符字面量,以及字符串插值均保持不变。 - 软行长度报告 ——超出行数会被计数,以便您手动重构,而不会导致格式化器破坏语义。
- 一键复制和下载 作为
formatted.jl. - 100% 客户端 ——没有任何内容离开您的浏览器。
常问问题
-
JuliaFormatter 默认遵循哪种风格指南?
JuliaFormatter.jl 的默认风格是 Julia 社区中最广泛采用的规范。它使用四个空格缩进,为大多数二元运算符添加单个空格,保持类型注解和子类型运算符紧致(例如
x::Int,T<:Real),保留 juxtaposition 乘法,如2π,并设定一个约 92 个字符的软行宽。多个 Julia 组织的包将此风格作为贡献的基准。 -
Julia 允许数字和标识符之间不使用运算符直接书写,这是为什么?
Julia 将一个数字字面量后紧跟标识符或括号表达式视为隐式乘法——这一特性称为 juxtaposition。因此
2π表示2 * π,0.5x表示0.5 * x,并且3(a + b)表示3 * (a + b)。数字字面量必须在前;反向(π2)无效,因为 Julia 无法判断它是乘法还是标识符名称的一部分。从风格上讲,惯例是保持 juxtaposition 无空格紧致。 -
Julia 的块结构与 C 风格语言有何不同?
Julia 使用关键字限定的块,而不是大括号。几乎每一个块打开符——
function,if,for,while,let,begin,try,do,module,struct,macro,quote,并且abstract type/primitive type——都由一个匹配的end标记关闭。像elseif,else,catch,并且finally这样的延续项与打开符处于相同缩进位置,但会在下一层深度引入新的体。这使得 Julia 代码在视觉上更接近 Ruby 或 Lua,而非 Java 或 C。 -
普通字符串与 Julia 中的非标准(前缀)字符串字面量有何区别?
在 Julia 中,像
"hello"这样的普通双引号字符串由标准String构造函数处理,包含反斜杠转义序列。而像r"\d+"或raw"C:\path"这样的前缀字符串则调用非标准字符串宏——r用于正则表达式,raw用于未转义内容,b用于字节数组,以及其他许多包括用户自定义的宏。在非标准字面量内部,内容将原样传递,因此反斜杠不会被词法分析器消耗。三引号变体("""…""")可跨多行,并去除常见的首行缩进。
