Skip to content

Instantly share code, notes, and snippets.

@gabrielbidula
Last active September 2, 2024 16:32
Show Gist options
  • Save gabrielbidula/4b8f84a02dafd242b0e1cf1d682fcaac to your computer and use it in GitHub Desktop.
Save gabrielbidula/4b8f84a02dafd242b0e1cf1d682fcaac to your computer and use it in GitHub Desktop.
fake laravel pint formatter mode
#!/bin/bash
# Check if an argument was provided
if [ $# -eq 0 ]; then
echo "No file path provided."
exit 1
fi
# Use the provided argument (file path)
file="$1"
# Ensure the file exists
if [ ! -f "$file" ]; then
echo "File does not exist: $file"
exit 1
fi
# Run pint on the provided file without outputting any progress or errors
/path/to/pint --quiet "$file"
# Output the content of the file
cat "$file"
@gopeter
Copy link

gopeter commented Apr 25, 2024

You can also add this to your .zed/settings.json:

{
  "language_overrides": {
    "PHP": {
      "format_on_save": {
        "external": {
          "command": "bash",
          "arguments": ["-c", "vendor/bin/pint --quiet {buffer_path} && cat {buffer_path}"]
        }
      }
    }
  }
}

@brandon-beacher
Copy link

This worked a bit better for me - since I think there was a race condition between Zed and pint writing to the file?

{
  "language_overrides": {
    "PHP": {
      "format_on_save": {
        "external": {
          "command": "bash",
          "arguments": [
            "-c",
            "temp=$(mktemp) && cp {buffer_path} $temp && vendor/bin/pint --quiet $temp && cat $temp"
          ]
        }
      }
    }
  }
}

@brandon-beacher
Copy link

Update for the latest version of Zed:

  "language_overrides": {
    "PHP": {
      "formatter": {
        "external": {
          "command": "bash",
          "arguments": [
            "-c",
            "temp=$(mktemp) && cat > $temp && ./vendor/bin/pint --quiet $temp && cat $temp"
          ]
        }
      }
    }
  }

@yob-yob
Copy link

yob-yob commented May 10, 2024

@yob-yob
Copy link

yob-yob commented May 10, 2024

should be enough

temp=$(mktemp) && cat > $temp && ./vendor/bin/pint --quiet $temp && cat $temp && rm $temp

@hpiaia
Copy link

hpiaia commented Sep 2, 2024

You guys are absolute legends

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment