- 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)
29 lines
555 B
Go
29 lines
555 B
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
|
|
"git.warky.dev/wdevs/pgtidy/pkg/lsp"
|
|
)
|
|
|
|
func cmdLsp(args []string, stdin io.Reader, stdout, stderr io.Writer) int {
|
|
for _, a := range args {
|
|
if a == "-h" || a == "--help" {
|
|
fmt.Fprintln(stdout, "pgtidy lsp — start the Language Server Protocol server (stdio transport)")
|
|
return 0
|
|
}
|
|
}
|
|
wd, err := os.Getwd()
|
|
if err != nil {
|
|
wd = "."
|
|
}
|
|
if err := lsp.Serve(context.Background(), stdin, stdout, wd); err != nil {
|
|
fmt.Fprintf(stderr, "pgtidy lsp: %v\n", err)
|
|
return 1
|
|
}
|
|
return 0
|
|
}
|