From 92ce3fc3865d7a0e5333af43f5501195e2d400a3 Mon Sep 17 00:00:00 2001 From: Radek Simko Date: Thu, 11 Aug 2022 08:51:38 +0100 Subject: [PATCH] textDocument/formatting: log terraform fmt execution time --- internal/langserver/handlers/code_action.go | 4 +--- internal/langserver/handlers/formatting.go | 12 ++++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/internal/langserver/handlers/code_action.go b/internal/langserver/handlers/code_action.go index 63b26a64..bfadc54f 100644 --- a/internal/langserver/handlers/code_action.go +++ b/internal/langserver/handlers/code_action.go @@ -57,9 +57,7 @@ func (svc *service) textDocumentCodeAction(ctx context.Context, params lsp.CodeA return ca, errors.EnrichTfExecError(err) } - svc.logger.Printf("Formatting document via %q", tfExec.GetExecPath()) - - edits, err := formatDocument(ctx, tfExec, doc.Text, dh) + edits, err := svc.formatDocument(ctx, tfExec, doc.Text, dh) if err != nil { return ca, err } diff --git a/internal/langserver/handlers/formatting.go b/internal/langserver/handlers/formatting.go index 6d163291..7d05c9eb 100644 --- a/internal/langserver/handlers/formatting.go +++ b/internal/langserver/handlers/formatting.go @@ -2,6 +2,7 @@ package handlers import ( "context" + "time" "github.com/hashicorp/terraform-ls/internal/document" "github.com/hashicorp/terraform-ls/internal/hcl" @@ -27,9 +28,7 @@ func (svc *service) TextDocumentFormatting(ctx context.Context, params lsp.Docum return edits, err } - svc.logger.Printf("formatting document via %q", tfExec.GetExecPath()) - - edits, err = formatDocument(ctx, tfExec, doc.Text, dh) + edits, err = svc.formatDocument(ctx, tfExec, doc.Text, dh) if err != nil { return edits, err } @@ -37,13 +36,18 @@ func (svc *service) TextDocumentFormatting(ctx context.Context, params lsp.Docum return edits, nil } -func formatDocument(ctx context.Context, tfExec exec.TerraformExecutor, original []byte, dh document.Handle) ([]lsp.TextEdit, error) { +func (svc *service) formatDocument(ctx context.Context, tfExec exec.TerraformExecutor, original []byte, dh document.Handle) ([]lsp.TextEdit, error) { var edits []lsp.TextEdit + svc.logger.Printf("formatting document via %q", tfExec.GetExecPath()) + + startTime := time.Now() formatted, err := tfExec.Format(ctx, original) if err != nil { + svc.logger.Printf("Failed 'terraform fmt' in %s", time.Now().Sub(startTime)) return edits, err } + svc.logger.Printf("Finished 'terraform fmt' in %s", time.Now().Sub(startTime)) changes := hcl.Diff(dh, original, formatted)