一个用例是black
为 python 文件提供sqlfluff
代码格式化程序,为 SQL 文件提供代码格式化程序,并为这两种工具使用相同的键盘快捷键。
目前,两者都设置在 中Preferences -> Tools -> External Tools
,遵循black
文档。
可悲的是没有。您不能根据文件扩展名分配一个快捷方式并调用不同的外部工具。
但是您可以很容易地解决它:
black
对于 Python 文件和sqlfluff
SQL 文件)。感谢 LazyOne 的建议,我编写了这个小 shell 脚本来运行black
或sqlfluff
根据文件扩展名运行:
#!/bin/sh
file_path="$1"
file_name=$(basename -- "$file_path")
extension="${file_name##*.}"
echo "Formatting file $file_path"
echo "With extension $extension"
if [ "$extension" = "py" ]; then
/Users/alexandre/.local/bin/black "$file_path"
elif [ "$extension" = "sql" ]; then
/Users/alexandre/.local/bin/sqlfluff fix -f --dialect postgres "$file_path"
else
exit 2
fi
确保将路径更改为您的实际安装路径(which black
和的输出which sqlfluff
)。
您可以将脚本保存在文件中(例如code_formatter.sh
),并使其可执行:
chmod +x code_formatter.sh
然后在 Pycharm 设置中将其配置为外部工具,不要忘记"$FilePath$"
参数:
您现在可以为“我的代码格式化程序”外部工具定义一个键盘快捷键,它应该适用于 sql 和 python 文件。