Skip to main content

现代 fortran 源代码的自动格式化程序

项目描述

美化

构建状态 覆盖状态 许可证:GPL v3 PyPI 版本

fprettify 是现代 Fortran 代码的自动格式化程序,它采用 Python 编写的严格的空格格式化。

特征

  • 自动缩进。
  • 续行与前一个开始分隔符对齐(,[或(/与赋值运算符对齐=或=>。如果以上都不存在,则应用默认的悬挂缩进。
  • 运算符和分隔符周围的空格数量一致。
  • 去除多余的空白和连续的空白行。
  • 更改内在函数的字母大小写(大写/小写约定)
  • 测试编辑器集成。
  • 默认情况下, fprettify 仅导致空白更改,因此保留修订历史记录。
  • fprettify 可以处理 cpp 和fypp预处理器指令。

限制

  • 仅适用于现代 Fortran(Fortran 90 以上)。
  • 功能缺失?请创建一个问题。

要求

  • Python 2.7 或 Python 3.x
  • ConfigArgParse:可选,允许使用配置文件

例子

将examples/*before.f90(原始 Fortran 文件)与examples/*after.f90(重新格式化的 Fortran 文件)进行比较,看看 fprettify 做了什么。快速演示:

program demo
integer :: endif,if,elseif
integer,DIMENSION(2) :: function
endif=3;if=2
if(endif==2)then
endif=5
elseif=if+4*(endif+&
2**10)
elseif(endif==3)then
function(if)=endif/elseif
print*,endif
endif
end program

⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩ fprettify⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩

program demo
   integer :: endif, if, elseif
   integer, DIMENSION(2) :: function
   endif = 3; if = 2
   if (endif == 2) then
      endif = 5
      elseif = if + 4*(endif + &
                       2**10)
   elseif (endif == 3) then
      function(if) = endif/elseif
      print *, endif
   endif
end program

安装

可以使用 pip 安装最新版本:

pip install --upgrade fprettify

从源代码安装需要 Python Setuptools:

./setup.py install

对于本地安装,使用--user选项。

命令行工具

自动格式化 file1, file2, ... 就地

fprettify file1, file2, ...

默认缩进为 3。如果您更喜欢其他内容,请使用--indent n参数。

为了将 fprettify 递归应用到整个 Fortran 项目而不是单个文件,请使用该-r选项。

有关更多选项,请阅读

fprettify -h

编辑器集成

对于编辑器集成,使用

fprettify --silent

例如,对于 Vim,使用 fprettifygq将以下命令放入您的.vimrc:

autocmd Filetype fortran setlocal formatprg=fprettify\ --silent

停用和手动格式化(实验功能)

可以为选定的行停用 fprettify:单行后跟一个以 in 开头的内联注释!&不会自动格式化,而连续的行包含在两个注释行之间!&<并且!&>不会自动格式化。这对于手动对齐优于自动格式化的情况很有用。此外,当非标准 Fortran 语法(例如预处理器指令的高级使用)妨碍正确格式化时,必须停用。例如,考虑以下 fprettify 格式化代码片段:

A = [-1, 10, 0, &
     0, 1000, 0, &
     0, -1, 1]

为了手动对齐列,需要通过以下方式停用 fprettify

A = [-1,   10, 0, & !&
      0, 1000, 0, & !&
      0,   -1, 1]   !&

或者,等价于

!&<
A = [-1,   10, 0, &
      0, 1000, 0, &
      0,   -1, 1]
!&>

贡献/测试

测试机制允许您使用您选择的任何 Fortran 项目轻松测试 fprettify。只需将整个项目克隆或复制到fortran_tests/before并运行python setup.py test. 该目录fortran_tests/after包含测试输出(重新格式化的 Fortran 文件)。如果测试失败,请提交问题!

代码气候

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

fprettify-0.3.7.ta​​r.gz (29.6 kB 查看哈希)

已上传 source

内置分布

fprettify-0.3.7-py3-none-any.whl (28.1 kB 查看哈希)

已上传 py3