Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 18:25:26 +08:00
commit e178663e5d
5 changed files with 119 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
{
"name": "prettier-plugin",
"description": "Automatically formats files with Prettier after edits",
"version": "1.0.1",
"author": {
"name": "Eli Oshinsky",
"email": "elimelech.oshinsky@gmail.com"
},
"hooks": [
"./hooks"
]
}

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
# prettier-plugin
Automatically formats files with Prettier after edits

15
hooks/hooks.json Normal file
View File

@@ -0,0 +1,15 @@
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write|MultiEdit",
"hooks": [
{
"type": "command",
"command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/prettier-format.sh"
}
]
}
]
}
}

40
hooks/prettier-format.sh Executable file
View File

@@ -0,0 +1,40 @@
#!/bin/bash
# Prettier hook for Claude Code (Plugin Mode)
# Formats files with prettier after edits and outputs JSON format
# Source utilities
source "$(dirname "$0")/../../shared/hooks/utils.sh"
# Helper function to output JSON and exit
output_json() {
echo "$1"
exit 0
}
# Read input from stdin
INPUT=$(cat)
# Parse input and extract fields
if ! parse_hook_input "$INPUT"; then
output_json '{}'
fi
# Check if project has local prettier hook override
if has_project_hook_override "$PROJECT_DIR" "prettier"; then
output_json '{}'
fi
# Check if project has prettier configured
if ! has_prettier_config "$PROJECT_DIR"; then
output_json '{}'
fi
# Get the appropriate package runner
PKG_RUNNER=$(get_package_runner)
# Run prettier on the file (always succeed regardless of outcome)
cd "$PROJECT_DIR" && $PKG_RUNNER prettier --write "$FILE_PATH" >/dev/null 2>&1
# Always return empty JSON with success status
output_json '{}'

49
plugin.lock.json Normal file
View File

@@ -0,0 +1,49 @@
{
"$schema": "internal://schemas/plugin.lock.v1.json",
"pluginId": "gh:eli0shin/cli-lsp-client:claude-plugins/prettier-plugin",
"normalized": {
"repo": null,
"ref": "refs/tags/v20251128.0",
"commit": "9afe13203d3486923f173a14e0c0755135d0d7e9",
"treeHash": "6cb1aec87d0eef19d0a3fbfdf463c7707abf17b1db18a25ccd593419be7785de",
"generatedAt": "2025-11-28T10:16:45.970996Z",
"toolVersion": "publish_plugins.py@0.2.0"
},
"origin": {
"remote": "git@github.com:zhongweili/42plugin-data.git",
"branch": "master",
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
},
"manifest": {
"name": "prettier-plugin",
"description": "Automatically formats files with Prettier after edits",
"version": "1.0.1"
},
"content": {
"files": [
{
"path": "README.md",
"sha256": "d3ff5a0c255e8e36a5b6365e6ab44257abbd8fb9a80798e1e78f4b474a097a71"
},
{
"path": "hooks/hooks.json",
"sha256": "a60661fe2fa430fa7e6d32c8e5149c8d0f89b85457218f14ba3f4ba634ec3dd6"
},
{
"path": "hooks/prettier-format.sh",
"sha256": "75f349f1737bc51e07b7cb5bf740ffb62b768d90c71087e1e4e52d54a26a13eb"
},
{
"path": ".claude-plugin/plugin.json",
"sha256": "88e9f8a28c3b39c401c8559c84f138e25bfdb12f904ff20f0521311c23dea271"
}
],
"dirSha256": "6cb1aec87d0eef19d0a3fbfdf463c7707abf17b1db18a25ccd593419be7785de"
},
"security": {
"scannedAt": null,
"scannerVersion": null,
"flags": []
}
}