feat: add LSP server, VSCode + DataGrip extensions, release infra, autofix
CI / Test (push) Failing after 47s
CI / Build snapshot (push) Has been skipped

- pkg/lsp: JSON-RPC 2.0 LSP server (formatting, diagnostics, codeAction quick-fixes)
- cmd/pgtidy: lsp and config subcommands
- pkg/diagnostics: TextFix struct for byte-range autofixes
- pkg/lint: MIG001/MIG003 autofixes, ApplyFixes helper, --fix flag on lint command
- editors/vscode: TypeScript extension with LanguageClient, showVersion/showConfig/formatDocument commands, logo
- editors/datagrip: Gradle JetBrains plugin via LSP4IJ, pluginIcon
- .goreleaser.yaml, .github/workflows: CI + release pipeline
- Makefile: snapshot, release, vscode-compile, vscode-package targets
- go.mod + all imports: module path updated to git.warky.dev/wdevs/pgtidy
- assets: logo files (256px, 128px, 1024px, ico)
This commit is contained in:
2026-06-28 12:48:28 +02:00
parent 7fb76bae3d
commit e88d32f281
49 changed files with 3228 additions and 49 deletions
+88
View File
@@ -0,0 +1,88 @@
{
"name": "pgtidy",
"displayName": "PgTidy",
"description": "PostgreSQL formatter and linter powered by pgtidy",
"version": "0.1.0",
"publisher": "warky-devs",
"author": {
"name": "Hein Puth",
"email": "hein.puth@gmail.com"
},
"icon": "assets/logo_256.png",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://git.warky.dev/wdevs/PgTidy"
},
"engines": {
"vscode": "^1.85.0"
},
"categories": [
"Formatters",
"Linters"
],
"activationEvents": [
"onCommand:pgtidy.showVersion",
"onCommand:pgtidy.showConfig",
"onCommand:pgtidy.formatDocument"
],
"main": "./out/extension",
"contributes": {
"commands": [
{
"command": "pgtidy.showVersion",
"title": "Show Version",
"category": "PgTidy"
},
{
"command": "pgtidy.showConfig",
"title": "Show Config",
"category": "PgTidy"
},
{
"command": "pgtidy.formatDocument",
"title": "Format Document",
"category": "PgTidy"
}
],
"languages": [
{
"id": "sql",
"extensions": [
".pgsql"
]
}
],
"configuration": {
"title": "PgTidy",
"properties": {
"pgtidy.path": {
"type": "string",
"default": "pgtidy",
"description": "Path to the pgtidy binary. Defaults to 'pgtidy' (must be on PATH)."
},
"pgtidy.enable": {
"type": "boolean",
"default": true,
"description": "Enable the PgTidy language server."
}
}
}
},
"scripts": {
"build": "tsc -p ./",
"compile": "tsc -p ./",
"watch": "tsc -watch -p ./",
"package": "vsce package --no-dependencies",
"lint": "eslint src --ext ts"
},
"dependencies": {
"vscode-languageclient": "^9.0.1"
},
"devDependencies": {
"@types/node": "^20.0.0",
"@types/vscode": "^1.85.0",
"@vscode/vsce": "^2.24.0",
"typescript": "^5.3.0"
}
}