Skip to content

Instantly share code, notes, and snippets.

@gabrielbidula
Last active May 10, 2024 18:06
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

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